사업지속

키움 증권 open api 와 연계된 영웅문 종목 조건검색 식 실적 악화 보완 위한 성과검증(백테스팅) 로직 추가 계획

자바라머신러닝 2022. 6. 7. 20:24

cybosplus에서 제공하는 크레온 api 자동매매를 시작한 지 1년 후 적용한 키움 증권 open api 자동매매 프로그램 실행한 지 6주 경과했습니다. -0.77% 손실을 보면서 조건 검색식의 종목 선택 오류를 인정하고 백테스팅 결과가 없으면 매수하지 방법을 적용할 계획입니다.

 

  • 경과

1년 전에 책 한 권을 사서 처음 접하는 python으로 cybosplus에서 제공하는 크레온 api로 적용한 코딩을 열심히 하여 자동매매 프로그램을 실행했었습니다. 1년 동안 2.7% 수익을 얻으면서 괜찮은 파이프 라인이고 생각했고 2번째 자동매매 프로그램을 가동하였습니다. 크레온 api 보다는 수수료가 비싸지만 많은 참조 자료가 있는 키움 증권 open api 를 선택했습니다. 그레서 2번째는 키움 증권 open api를 phython 코딩하는 방법을 인터넷에서 열심히 찾아보고 시행착오를 거치면서 결국 6주 전부터 가동할 수 있었습니다.

 

  • 작동원리 및 단기결과

매수 종목은 영웅문에서 제공하는 조건 검색식에서 검색된 종목들을 목표수익률과 손절률을 정하여 매수/매도를  자동매매하는 간단한 로직을 적용하였습니다.

조건검색식에서 검색된 종목을 매수하는 로직
조건검색식에서 검색된 종목을 매수하는 로직

처음 가동된 시점인 4월 25일 즈음에는 적은 금액으로 테스트를 하면서 상한가 종목도 찾으면서 테스트 치고는 괜찮은 수익률 보였습니다.

1주차 부터 괜찮은 종목들을 선별하여 자동매매한 결과
1주차 부터 괜찮은 종목들을 선별하여 자동매매한 결과

 

그리고 매주 성과검증(1516) 기능을 통해 백테스팅을 실시하였고 괜찮은 결과를 보였습니다.

RSI 20~60 설정시 2주 단위 백테슽 결과 6.85% 수익 성과검증 결과 (가동 2주 경과)
RSI 20~60 설정시 2주 단위 백테슽 결과 6.85% 수익 성과검증 결과 (가동 2주 경과)

  • 수익률 하락 및 손실 가중

초기 투자금액을 5배 증액하면서 경과를 지켜봤습니다. 그러나 어설픈 욕심이 화를 부르더군요. 3주 전부터 성과 검증 결과가 조회되지 않으면서 자동매매 수익률도 하락하기 시작했습니다.

3주전부터 성과결과과 조회가 안되고 있는 상태
3주전부터 성과결과과 조회가 안되고 있는 상태

그러면서 수익도 손실을 보면서 시간이 경과할 수록 손실률을 커지고 있습니다. 매수/매도 타이밍은 phython에서 제어한다고 해도 결국 좋은 종목 선정은 조건 검색 식에 의존하는 데 잘못된 종목들을 선별하니 수익률이 떨어진다고 결론을 내렸습니다. 즉 백테스팅 결과가 없거나 손실을 보는 조건 검색식으로 발굴한 종목들은 당연히 손실을 볼 수밖에 없단 상관관계를 갖는다고 결론을 내렸습니다.

 

  • 방안

성과검증에 의한 백테스팅 없는 조건검색식이 결국은 손절을 유발한다는 가설을 검증하기 위해 일단 자동매매는 멈춘 상태입니다. 어차피 조건 검색식을 잘 만들 실력도 되지 않기 때문에 이런 결과가 나온 것을 인정하며 다른 조건 검색식을 만들기 전에 로직 보완을 검토해 보았습니다. 로직 흐름은 1516 코드를 사용하여 "검색된 종목이 없습니다."라는 메시지가 나오거나 상승종목 비율 또는 시장대비 수익률이 null 일 경우에는 해당 조건 검색 식으로 선별된 종목은 매수하지 않는 로직을 구현할 생각입니다. 인터넷을 찾아봐도 영웅문 1516 코드 구현 사례가 없어 많은 시행착오가 예상됩니다. 

해결 (로직 개선) 방법은 영웅문 키움 증권 open api 구현 및 테스트 후 다음 포스팅에서 기술하겠습니다.