<1. 시가 총액/PER/PBR 기준 변동성 돌파 전략 분석 프로그래밍 - 개요>
이 포스트를 시작으로 여러 번에 걸쳐 시가 총액/PER/PBR 기준으로 변동성 돌파 전략을 분석할 것이다. 분석을 위한 코드 또한 설명한다. 해당 포스트 시리즈를 읽기 전에 알아야 할 게 몇 가지 있다.
먼저, 변동성 돌파 전략을 알아야 한다. 모른다면 아래 링크된 블로그를 보길 바란다.
기본적으로 이 시리즈에서 진행할 변동성 돌파 전략 알고리즘 아래와 같다.
매수 : ( 전일 고가 - 전일 저가 ) * Scope + 시초가 <= 현재가 [ Scope : 0.2 ~ 1.4 (0.1 간격) ]
* ( 전일 고가 - 전일 저가 )가 0 이상이어야 함.
매도 : 다음 날 시초가
분석을 위해선 상장되 있는 모든 주식의 일봉 데이터(시가, 고가, 저가)와 분기별 시가총액/PER/PBR 데이터가 필요하다. 이 데이터에 대해선 이전 포스트에 설명했다. 데이터는 MySQL에 저장되있다.
<퀀트를 위한 주식 데이터 수집(2007년~2018/01/10 데이터)>
Scope 값은 0.2에서 1.4 사이의 숫자로 한다. 종목마다 기간 범위 내에서 최적의 Scope 값을 계산해 적용할 것이다. 예로 2017년 1월 1일부터 2017년 12월 31일까지 "삼성전자"를 변동성 돌파 전략으로 백테스팅한다고 하자. 그러면 삼성전자의 2016년 1월 1일부터 2016년 12월 31일까지 Scope를 0.2부터 시작해 0.1씩 늘려가며 1.4까지 적용해 각각의 총 수익률을 구한다. 수익률이 가장 높았던 Scope 값을 2017년 1월 1일부터 2017년 12월 31일까지 적용할 백테스팅의 Scope 값으로 설정할 것이다. 이 기간은 3,6,12,24개월을 적용한다. 또한 모든 주식 종목의 전체 기간 Scope를 0.5, 1.0으로 설정해서 테스트해볼 것이다. 각기 다른 Scope 값을 적용한 수익률 데이터 또한 MySQL에 저장되있다. 아래 포스트를 읽어보면 어떻게 이 데이터를 수집했는 지 알 수 있다.
<파이썬을 이용한 주식 변동성 돌파 전략 분석을 위한 최적화 변수 계산(1)>
<파이썬을 이용한 주식 변동성 돌파 전략 분석을 위한 최적화 변수 계산(2)>
프로그래밍 언어은 파이썬을 사용한다. 파이썬에 대한 기본 지식 설명은 안 한다. 또한 데이터가 MySQL에 저장되 있기에 SQL 문에 대해서 알아야 한다.
다음 사진은 "시가 총액과 PBR 하위 10%의 변동성 돌파 전략 분석 프로그래밍"의 최종 결과물이다. 매 년마다 시가총액 PBR 기준으로 하위 10%로 리밸런싱했으며 2008년 1월 1일부터 2017년 12월 31일까지 백테스팅했다.(수수료 및 슬리피지는 0.004%로 했다.) 참고로 이번 시리즈에서 설명한 코드를 이해하면 코드 한 두 줄로 백테스팅 기간, 시가 총액/PBR/PER으로 종목을 몇 등분 할지, 어떻게 조합할 지 등을 사용자 마음대로 수정할 수 있다.
참고로 필자는 컴퓨터 공학과를 재학 중인 대학생입니다. 따라서 코드가 완벽할 수 없습니다. 알고리즘이나 코드가 비효율적이거나 오류가 있다면 댓글 달아주세요..
'주식 프로그래밍(시스템 트레이딩)' 카테고리의 다른 글
3. 각 지표 순위별 수익률 백테스팅 프로그래밍(파이썬) - (2) (0) | 2018.01.23 |
---|---|
2. 각 지표 순위별 수익률 백테스팅 프로그래밍(파이썬) - (1) (0) | 2018.01.23 |
파이썬을 이용한 주식 변동성 돌파 전략 분석을 위한 최적화 변수 계산(2) (1) | 2018.01.19 |
파이썬을 이용한 주식 변동성 돌파 전략 분석을 위한 최적화 변수 계산(1) (0) | 2018.01.19 |
퀀트를 위한 주식 데이터 수집(2007년~2018년/01/10 데이터) (144) | 2018.01.12 |