더북(TheBook)

5.5 일봉 저장·조회하기

이 절에서는 앞서 생성한 유니버스에 속하는 종목들의 일봉 데이터를 얻어 와 데이터베이스에 저장하고 조회하는 코드를 만들겠습니다. 이 역시 유니버스 저장·조회와 마찬가지로 전략 초기화 함수에서 구현합니다. 다만 염두에 두어야 할 것은 데이터 구성 시점입니다.

유니버스는 단순히 테이블의 존재 여부를 확인하고 유니버스를 새로 생성할지 결정했습니다(물론 유니버스도 생성 시점에 따라 재구성이 필요할 수 있다고 설명했습니다). 하지만 일봉 데이터는 계속 축적되는 데이터이기 때문에 단순히 테이블이 있다고 해서 끝이 아니라 최근 일자까지 가격 데이터를 저장하고 있는지 확인해서 추가할 데이터가 있는지도 판단해야 합니다.

일봉 데이터가 아예 없는 경우: 프로그램 최초 실행으로 데이터가 아예 존재하지 않는 경우 최근 거래일까지 일봉 데이터를 가져와 저장합니다. 주의해야 할 점은 프로그램을 최초 실행하는 시점이 거래가 일어나는 장 중이라면 이 작업은 수행하지 않습니다. 장 중에는 금일 종가, 고가, 저가가 확정되지 않아서 장 마감 후에 확정된 데이터를 저장해야 하기 때문입니다. 이때 장 마감 전이라도 전 영업일까지 데이터를 먼저 저장해 놓고 장 마감 후 다시 금일 데이터만 저장하는 방법도 있지만, 여기서는 장 마감 후에만 데이터를 저장하도록 만들겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.