5.5 일봉 저장·조회하기
이 절에서는 앞서 생성한 유니버스에 속하는 종목들의 일봉 데이터를 얻어 와 데이터베이스에 저장하고 조회하는 코드를 만들겠습니다. 이 역시 유니버스 저장·조회와 마찬가지로 전략 초기화 함수에서 구현합니다. 다만 염두에 두어야 할 것은 데이터 구성 시점입니다.
유니버스는 단순히 테이블의 존재 여부를 확인하고 유니버스를 새로 생성할지 결정했습니다(물론 유니버스도 생성 시점에 따라 재구성이 필요할 수 있다고 설명했습니다). 하지만 일봉 데이터는 계속 축적되는 데이터이기 때문에 단순히 테이블이 있다고 해서 끝이 아니라 최근 일자까지 가격 데이터를 저장하고 있는지 확인해서 추가할 데이터가 있는지도 판단해야 합니다.
➊ 일봉 데이터가 아예 없는 경우: 프로그램 최초 실행으로 데이터가 아예 존재하지 않는 경우 최근 거래일까지 일봉 데이터를 가져와 저장합니다. 주의해야 할 점은 프로그램을 최초 실행하는 시점이 거래가 일어나는 장 중이라면 이 작업은 수행하지 않습니다. 장 중에는 금일 종가, 고가, 저가가 확정되지 않아서 장 마감 후에 확정된 데이터를 저장해야 하기 때문입니다. 이때 장 마감 전이라도 전 영업일까지 데이터를 먼저 저장해 놓고 장 마감 후 다시 금일 데이터만 저장하는 방법도 있지만, 여기서는 장 마감 후에만 데이터를 저장하도록 만들겠습니다.