현재 사용중인 자동매매 알고리즘이 어떻게 하면 최적의 효율을 낼 수 있을지 분석하기 위해 백테스트를 진행했다.
일주일동안 500여 종목에 대한 2~3년치의 일봉 데이터를 쌓고, 현재 매매 알고리즘을 대략적으로 적용할 경우 수익률이 어떻게 나오는지를 다양하게 테스트했다. 물론 백테스트는 백테스트일 뿐, 실제 매매할때 상황과 완벽하게 맞아 떨어지는 것은 아니다. 하지만 구체적인 수치들에 대한 설정이나, 대략적인 수익률이 어느 정도 발생할 지 참고할 수는 있을 것이다.
2020년, 2021년 2년치에 대한 백테스트를 진행했다.
각각의 idx는 다음과 같다.
2020년 : 521-274
2021년 : 273-25
원금은 2500만원, 1회 매수 50만원, 최대 7분할 매수로 설정했다.
각각의 필드명은 다음과 같다.
idx date deposit bought_money use_money stock_cnt multi oom
5% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120 등락률10%이상 변동oom
26 20211230 37778763 37040683 738080 13 55 (2년간 51.1%)
10% 7종목제한
275 20201229 31606330 9250765 22355565 7 19 (26.4%)
타겟10% 10종목제한 최대멀티3
275 20201229 30147942 19636680 10511262 10 40 (20.6%)
10% 15종목제한
275 20201229 28974365 20162335 8812030 15 42 (15.9%)
10% 7종목제한 MA20,60증가
275 20201229 31507067 11318130 20188937 7 23 (26%)
10% 7종목제한 MA20,60,120증가
275 20201229 31361305 10846012 20515293 7 22 (25.4%)
10% 15종목제한 MA20,60,120증가
275 20201229 33072134 21496713 11575421 15 44 (32.3%)
10% 15종목제한
26 20211230 29240633 28762893 477740 15 5 (17%)
10% 15종목제한 이평선간격늘어남60->120
26 20211230 30160910 29815721 345189 15 12 (20.6%)
10% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120
275 20201229 32875908 19595650 13280258 15 40 (31.5%)
26 20211230 31627747 31363168 264579 14 64 (26.5%)
15% 10종목제한 MA20,60,120증가 이평선간격늘어남60->120
26 20211230 29208559 23585850 5622709 10 48 (16.8%)
15% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120 등락률10%이상
275 20201229 34656391 21844459 12811932 15 45 (38%)
26 20211230 33161142 27630642 5530500 15 57 (32%)
15% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120 등락률15% 이상
26 20211230 31879257 29282641 2596616 15 60 (27.5%)
15% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120 등락률10%~15% 사이
26 20211230 32328737 26383206 5945531 12 54 (29.3%)
15% 20종목제한 MA20,60,120증가 이평선간격늘어남60->120
26 20211230 32480633 32351040 129593 20 3 (29.9%)
20% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120
275 20201229 36082559 23053236 13029323 15 47 (44.3%)
26 20211230 32877406 30803132 2074274 15 63 (31.5%)
25% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120 등락률10%이상 변동oom [2년]
274 20201230 37082174 28222214 8859960 15 47 741643 (48.3%)
26 20211230 48814882 48172984 641898 15 59 976297 (31.6%)
이 중에서 현재 채택한 설정은 아래와 같다.
15% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120 등락률10%이상 변동oom [2년]
274 20201230 35728670 28874304 6854366 15 47 714573 (42.9%)
26 20211230 48676602 46605150 2071452 15 54 973532 (36.2%)
위까지의 테스트들은 모두 보수적으로 잡기 위해 종가를 기준으로 목표가를 넘었을 때 매도하도록 했다.
채택한 설정을 고가 기준으로 다시 테스트한 결과는 아래와 같다.
15% 15종목제한 MA20,60,120증가 이평선간격늘어남60->120 등락률10%이상 변동oom high매도 [2년]
274 20201230 38838997 24360498 14478498 15 39 776779 (55.3%)
26 20211230 58426438 55466610 2959828 15 57 1168528 (50.4%)
아래는 테스트 결과를 해석하면서 느낀 부분들이다.
추가매수를 적용하는 것이 좋다.
종목수 제한을 거는 편이 좋다.
종목수 제한을 7에서 15로 늘리니 이평선 증가가 의미가 있다. (특히 120)
60-120이평선간격늘어남은 약간의 효과가 있다. 포착종목이 너무 많이 발생하기 때문에 필터링으로서의 의미도 있다.
목표가는 기존처럼 짧은것보다 10%이상으로 잡는게 좋다. 특히 2020년 같은 대세 상승장의 경우 목표가는 25% 이상 높을수록 수익률이 높았다. 하지만 2021년의 경우 목표가가 15%일때보다 20%일때가 수익이 줄었다. 2021년은 상반기는 상승이 정점에 달하고 하반기는 하락을 시작한 시기이다. 균형적으로 10~15%가 적당한 것 같다.
올해 2022년은 기준금리 인상으로 대세하락이 예상되는 해이다. 백테스트 데이터를 더 쌓아서 대세하락장에 대한 테스트를 진행할 필요가 있다.