<2. DB 구축 (키움 open api 주식 알고리즘 테스트 프로그래밍)>


: 이번 포스트에서는 우리가 구현한 주식 알고리즘을 테스트하기 위해 필요한 데이터들을 저장할 DB를 구축할 것이다. KODEX 코스닥 150 레버리지 일봉, 분봉 데이터를 이용해 알고리즘을 테스트한다. 약 100일치의 데이터를 통해 테스트할 것이므로 분봉의 경우 약 5만개의 데이터가 요구된다. 이를 프로그램 실행 때마다 네트워크로 불러오기에는 지연이 많이 된다. 따라서 db에 데이터를 저장한다. 그리고 매수와 매도에 대한 정보, 수익률 정보도 db에 기록한다. db에 기록해야 알고리즘을 테스트한 후에 검증이 편리하다. 


=> 우리가 생성할 db의 테이블은 다음과 같다.  


1. kosdaq_leve 테이블

: KODEX 코스닥 150 레버리지 분봉 데이터를 저장한다. 칼럼으로는 분봉 시간, 분봉 종가, 분봉 저가를 가진다. 



2. kosdaq_leve_day 테이블

: KODEX 코스닥 150 레버리지 일봉 데이터를 저장한다. 칼럼으로는 일봉 날짜, 일봉 시가, 일봉 종가를 가진다.



3. kosdaq_start 테이블

: KODEX 코스닥 150 레버리지 일봉 시가를 저장한다. 알고리즘을 구현하는 데 시가 데이터를 자주 사용해서 따로 저장한다.  




4. buy, sell 테이블

: buy 테이블은 매수 정보, sell 테이블은 매도 정보를 가진다. price는 매도/매수 가격이고 reason은 매수/매도한 이유이다. 수익율을 계산하기 위해서는 매수와 매도 정보를 가져야 한다. 또한 매수한 주식은 그 주식의 매도 정보와 관계를 맺어야 한다. 그래서 buy_id, sell_id 칼럼을 만들고 관계를 맺어준다. buy_id와 sell_id에 autoincrement 속성을 추가해 자동으로 값이 증가하고 sqlite_sequence라는 테이블이 생긴다. sqlite_sequence가 무엇인지 신경 쓰지 않아도 된다.




5. optimize_profit 테이블

: 알고리즘이 여러 변수에 의해 수익율이 계산된다. 변수에 여러 값을 대입하면서 최대 이익을 얻을 수 있는 최적화된 값을 찾아야 한다. 빨간색으로 마크된 부분이 해당 변수이다.




우리가 사용할 전체적인 DB 구조를 보았다. 다음 포스트에서는 파이썬 코드로 해당 테이블들을 실제로 만들 것이다. 

+ Recent posts