Data Analysis for Investment & Control
[Prometheus] 백테스팅 도구 'Simulator' 개발 현황 본문
[Prometheus] 백테스팅 도구 'Simulator' 개발 현황
아슈람 2016. 10. 30. 12:56Prometheus Framework를 기반으로 개발 중인 백테스팅 도구, Simulator에 대한 개발이 진행 중이다.
목적은 가상의 주식 투자자를 설정하고 매매전략을 설정한 후, 투자 기간을 정해주면 설정한 룰에 따라 매매가 이루어지면서 전략의 유효성을 검증하는 것이다.
현재까지 진행된 사항은 다음과 같다.
- 가상의 투자자 설정과 전략 설정 인터페이스 : 초기 투자자금, 매수조건/매도조건 설정, 최대 보유 종목 수 설정 등
- 스크리닝 조건 설정 인터페이스 : 스크리닝 방법을 마법공식을 적용할지 다른 분석 조건을 설정할지 선택. 현재는 마법공식만...
- 백테스팅 결과 UI : 각 투자자 별 투자 기간 동안 매일 매일의 보유 자산 및 보유 주식 상황 그리고 어떤 동작을 수행했는지 등에 대한 내용 확인
구현된 프로그램에 대해 간단히 일부 내용을 설명하면 다음과 같다.
백테스팅 시뮬레이션 결과 (클릭하면 크게 볼 수 있음)
위의 그림은 가상의 투자자 Trader1과 Trader2에 각각의 매매전략을 설정하고 2016년 4월 4일 ~ 2016년 10월 21일 사이에 매매를 수행한 결과이다. 초기 투자금액은 각각 1억씩 할당 하였고, 가치투자적 접근을 통해 매수 종목을 선별하였으나 Max 보유기간을 짧게 설정해 놓아 수익률은 좋지 않았다.
상단의 왼쪽으로는 투자자를 선택할 수 있고, 시뮬레이션 한 날짜를 선택하여 해당 날짜에 보유주식 상황을 알 수 있게 하였으며, 오른쪽으로는 각 투자자별 추정 보유 자산이 어떻게 움직이는지 차트로 표현했다. 하단의 왼쪽에는 선택된 날짜에 이루어진 매매를 나타내며, 오른쪽에는 선택된 날짜에 스크리닝한 결과가 어떻게 되는지를 상위 10개만 표시하도록 했다. 이런 UI를 통해 Daily Action이 어떻게 되는지 파악할 수 있다.
이제 기초적인 내용은 개발이 어느정도 되었으나 마법공식과 같은 장기간의 시뮬레이션이 필요한 방법을 위해 장기간의 재무 데이터가 필요하다. 이를 확보하는대로 좀 더 정확한 검증을 할 수 있을 것 같다.
또한 2000개 내외의 기업 분석을 매일 수행해야 하는 일이기 때문에 연산량이 꽤 된다. 좀 더 효율적으로 개선할 수 있는 부분이 있는지 찾아보고 개선할 예정이다. 아니면 추후 엔비디아 CUDA를 도입하여 병렬처리를 하는 방법도 고민해 볼 수 있다.
'Investment Assistant Tools > Prometheus' 카테고리의 다른 글
[Prometheus] Analyzer v0.3.0b (PrometheusReport -> Analyzer) (4) | 2016.02.14 |
---|---|
[PrometheusReport] PrometheusReport v0.2.0a (1) | 2015.06.13 |
[PrometheusReport] 질의응답 및 개선사항 요청 (8) | 2015.06.09 |
[PrometheusReport] 분석 지표 설명 (0) | 2015.06.09 |
[PrometheusReport] PrometheusReport v.0.1.0a (0) | 2015.06.04 |