[2019] 딥러닝 주식종목 랭킹모델 백테스팅

2020-06-28 • quant딥러닝, 주식종목, 랭킹, 백테스팅, deep learning, stock, ranking, back test • 4 min read

이번 포스트에서는 최근 구축한 주식종목 랭킹모델의 2019년도 1년치 백테스팅 결과를 정리합니다.

백테스팅 환경

퀀티랩의 주식종목 랭킹모델은 PER/PBR/ROE 등의 기본적 분석 지표, OHLCV/MACD/RSI 등의 기술적 분석 지표, 수익률, 변동성, 거래규모 등을 종합적으로 고려하여 학습했습니다.

이렇게 학습한 모델의 출력 값이 높을 수록 매수 고려 대상 종목이 되는 매매 전략을 세웠습니다. 매수, 익절, 손절 등의 기준은 다음과 같습니다.

  • 매수: 종목 랭킹 결과 Top 5 종목
  • 익절: 60%
  • 손절: -60%
  • 청산: 과거 평가 수익 고점 대비 -20%
  • ...

이러한 기준으로 종가 매매를 진행하며 최대 10개 종목을 보유할 수 있도록 제한했습니다.

자본금은 1억원으로 정하고 종목당 1천만원까지 매수할 수 있도록 했습니다.

매수/매도 거래 비용을 다음과 같이 현실적으로 적용했습니다.

  • 거래세: 0.25%
  • 매매 수수료: 0.015%

백테스팅 결과

비교 대상(baseline)을 코스피 인덱스로 정하여 백테스팅 결과를 차트로 그려보면 다음과 같습니다.

백테스팅 결과

진한 검정 선이 포트폴리오 가치(PV)를, 연한 회색 선이 코스피 인덱스를 보여줍니다.

동일한 스케일로 표시하기 위해 PV, 코스피 인덱스의 처음 값을 0으로 두고 변화율을 표시했습니다.

그 결과 퀀티랩 주식 종목 랭킹 모델은 약 15% 수익을, 코스피 Buy & Hold 전략 수익률은 약 9% 로 구해졌습니다.

매매 종목

백테스팅 과정에서 매매한 종목들의 내역은 다음과 같습니다.

date action code name price amount profitloss eval
20190102 buy 042110 에스씨디 1,455 6,872 99,998,500
20190102 buy 028300 에이치엘비 76,300 131 99,997,000
20190102 buy 095190 이엠코리아 7,430 1,345 99,995,501
20190102 buy 011320 유니크 7,720 1,295 99,994,002
20190103 buy 017900 광전자 2,245 4,454 99,188,832
20190103 buy 115440 우리넷 7,270 1,375 99,187,332
20190103 buy 225570 넷게임즈 9,580 1,043 99,185,834
20190103 buy 041960 코미팜 19,310 517 99,184,336
20190104 buy 004720 우리들제약 8,770 1,140 101,308,762
20190104 buy 041140 넥슨지티 9,770 1,023 101,307,262
20190110 sell 225570 넷게임즈 10,500 1,043 9.60% 104,164,638
20190110 buy 039830 오로라 10,150 985 104,163,138
20190116 sell 041140 넥슨지티 12,750 1,023 30.50% 110,248,684
20190116 buy 007720 대명소노시즌 2,585 3,868 110,247,184
20190117 sell 095190 이엠코리아 10,200 1,345 37.28% 114,231,397
20190117 sell 011320 유니크 12,800 1,295 65.80% 114,187,471
20190117 buy 108230 톱텍 9,970 1,003 114,185,971
20190117 buy 036200 유니셈 4,095 2,442 114,184,471
20190117 buy 007390 네이처셀 11,744 851 114,182,972
20190131 sell 039830 오로라 10,300 985 1.48% 117,832,543
20190219 sell 042110 에스씨디 1,895 6,872 30.24% 127,255,406
20190219 buy 008370 원풍 4,050 2,469 127,253,906
20190219 buy 250000 보라티알 8,650 1,156 127,252,406
20190308 sell 036200 유니셈 4,125 2,442 0.73% 118,311,856
20190325 sell 028300 에이치엘비 78,000 131 2.23% 120,028,982
20190325 buy 056080 유진로봇 4,475 2,234 120,027,483
20190325 buy 208860 엔지스테크널러지 6,900 1,449 120,025,983
20190411 sell 041960 코미팜 20,540 517 6.37% 121,651,076
20190423 sell 007390 네이처셀 11,744 851 0.00% 117,992,185
20190423 buy 097230 한진중공업 12,036 830 117,990,686
20190423 buy 000440 중앙에너비스 8,380 1,193 117,989,187
20190520 sell 017900 광전자 2,435 4,454 8.46% 99,035,671
20190524 sell 097230 한진중공업 8,150 830 -32.29% 103,109,920
20190524 buy 083640 인콘 3,200 3,125 103,108,420
20190524 buy 010660 화천기계 2,490 4,016 103,106,920
20190610 sell 115440 우리넷 9,990 1,375 37.41% 106,821,419
20190628 sell 010660 화천기계 3,120 4,016 25.30% 108,235,770
20190628 buy 004540 깨끗한나라 2,415 4,140 108,234,270
20190628 buy 004830 덕성 3,200 3,125 108,232,770
20190628 buy 019540 일지테크 3,150 3,174 108,231,270
20190708 sell 083640 인콘 2,185 3,125 -31.72% 108,047,706
20190711 sell 019540 일지테크 4,275 3,174 35.71% 112,418,803
20190725 sell 056080 유진로봇 3,090 2,234 -30.95% 108,903,860
20190725 buy 230980 솔트웍스 3,800 2,631 108,902,361
20190725 buy 002070 남영비비안 1,545 6,472 108,900,861
20190726 sell 007720 대명소노시즌 1,790 3,868 -30.75% 110,587,888
20190729 sell 004720 우리들제약 5,960 1,140 -32.04% 112,485,768
20190729 sell 002070 남영비비안 2,605 6,472 68.61% 112,441,090
20190729 buy 012700 리드코프 6,950 1,438 112,439,591
20190729 buy 000140 하이트진로홀딩스 12,000 833 112,438,091
20190729 buy 012610 경인양행 9,400 1,063 112,436,592
20190731 sell 004830 덕성 3,300 3,125 3.12% 111,465,379
20190801 sell 250000 보라티알 9,000 1,156 4.05% 107,712,924
20190801 buy 036030 KTH 5,340 1,872 107,711,424
20190801 buy 207760 미스터블루 7,430 1,345 107,709,925
20190801 buy 086980 쇼박스 4,050 2,469 107,708,425
20190805 sell 000440 중앙에너비스 5,620 1,193 -32.94% 105,756,923
20190805 sell 230980 솔트웍스 2,445 2,631 -35.66% 105,739,876
20190806 sell 208860 엔지스테크널러지 4,690 1,449 -32.03% 105,802,627
20190806 buy 041960 코미팜 11,550 865 105,801,129
20190806 buy 007390 네이처셀 6,900 1,449 105,799,629
20190807 sell 004540 깨끗한나라 3,180 4,140 31.68% 106,554,466
20190819 sell 207760 미스터블루 9,690 1,345 30.42% 107,638,863
20190819 buy 006090 사조오양 9,600 1,041 107,637,364
20190819 buy 189860 서전기전 3,790 2,638 107,635,865
20191011 sell 189860 서전기전 3,920 2,638 3.43% 109,339,291
20191024 sell 007390 네이처셀 9,470 1,449 37.25% 115,558,718
20191024 buy 056080 유진로봇 3,000 3,333 115,557,218
20191024 buy 028300 에이치엘비 163,984 60 115,555,742
20191024 buy 039830 오로라 12,650 790 115,554,243
20191213 sell 028300 에이치엘비 87,044 60 -46.92% 114,112,748
20191217 sell 012700 리드코프 7,110 1,438 2.30% 113,575,584
20191219 sell 036030 KTH 5,410 1,872 1.31% 113,394,701
20191219 buy 000440 중앙에너비스 8,630 1,158 113,393,202
20191219 buy 000520 삼일제약 22,700 440 113,391,704
20191223 sell 041960 코미팜 15,450 865 33.77% 113,165,219

향후 계획

모델을 지속적으로 발전시켜 나가며 종목 랭킹 결과 및 운용 시뮬레이션 결과를 퀀티랩에서 제공할 계획입니다.