시스템 트레이딩 알고리즘 구현하다. . ㈜공유인베스트 ☞도깨비방망이

2019. 10. 22. 15:55도깨비방망이

728x90
반응형

드디어 완성한 시스템 트레이딩 프로그램

도깨비방망이

수 없이 만든 시스템 트레이딩 프로그램

작년 이 맘 때쯤 시작한 코딩은

릴리스한 모델만 120개가 넘도록 수 없이 만들고 실패하기를 반복했다.

시행착오를 겪으면서 오차가 줄어들고 수익이 나는 모델을 간혹 발견하고

발견한 모델을 다듬으면서 여기까지 오게 되었다.

지난주부터 실전 투자를 시작했는데

성과가 예상보다 좋으니 지난 1년간의 인고가 다 씻겨져 내리는 듯하다.

도깨비방망이 구성 파일

코스피 200과 코스닥 150에 투자할 수 있는 도깨비방망이는

.NET Framework 4.8과키움 OpenAPI으로 제작하였다.

중간에 Python을 이용도 해보고 대신 CybosPlus으로도 코딩해보았지만

스레드의 강자 C# .NET Framework와 국내 시장 1위 점유율 키움 OpenAPI로

돌아온 판단은 정말 현명했다.

앞으로 해외 투자상품과 타 증권사 API로도 구현해볼 계획이지만

Python는 조금 회의적이다.

Python만의 강점이 분명히 존재하지만

어차피 원도우만 지원하고 32bit만 작성할 수 있는 우리나라 거래소 현황상

Python의 오픈 소스들로 누릴 수 있는 장점은 많이 줄어드는 듯하다.

도깨비방망이 Select Box

시스템 트레이딩의 강점은 역시 BackTesting이다.

수차례 알고리즘을 작성하여 시도해도

수익이 나는 모델을 찾는 것은 매우 어렵다.

머릿속으로 구현하고 그것을 코딩하고

디버깅한 뒤에 수익이 나지 않으면 몰려드는 회의감은 너무나 크다.

그래서 다양한 변수를 설정할 수 있게 알고리즘을 작성하고

그 모델을 BackTesting을 통하여 연산하니 코딩하는 시간이 급격하게 줄기 시작했다.

지난 1년 동안 자는 시간과 먹는 시간을 제외하면 계속 코딩만 했으니

완성되는 프로그램은 가속도가 붙으며 수없이 많은 모델들이 쌓이기 시작했다.

결국 Trading과 BackTesting만 남게 되니

진입부는 2가지 중에 선택할 수 있게 작성했다.

도깨비 방망이 Trading 도입부

Trading을 시작하기 전

장 마감 이후 오전 7시까지 분석한 BackTesting결과를 보여준다.

마지막 날짜 거래 현황부터 일주일, 2주, 한 달, 누적 수익을

수없이 많은 연산 종류 중 선택하면 된다.

차후 이 선택과정도 머신러닝을 통해 나의 동반자 도깨비방망이에게 맡겨야는데...

역시 갈 길은 끝이 없구나.

OpenAPI 로그인

역시 개미는 키움이다.

이건 불변의 진리인 듯...

매수 방식 선택

로그인을 마치면 매수 방식을 선택해야 한다.

모의투자는 시장가와 지정가 2가지 방식만 지원이 되어

구현 과정에서 조금 힘들었다.

결국 시장가, 최유리 지정가, 최유리 지정가에서 한 틱 높은 가격으로 매매할 수 있게 작성하였다.

도깨비방망이 컨트롤러

이제 모든 과정은 도깨비방망이가 알아서 한다.

다만 혹시 모를 변수를 대비하여

매매를 중단할 수 있는 버튼을 하나 구현했다.

도깨비방망이 컨트롤러 Push화면

버튼이 해제되면서 텍스트가 빨갛게 변하고

알고리즘은 돌아가지만 매매만 하지 못하도록 설정한다.

도깨비방망이 컨트롤러 체결메세지

꼭 필요하다고 생각되는 정보만 전달하도록 했다.

어차피 자세한 내역은 HTS를 통해 확인하는 게 더 좋으니. . .

도깨비방망이 트레이딩 화면

로그인을 마치면 실제 할 일은 없고

떠나자니 불안하니

유튜브를 볼 수 있도록 구현했다.

도깨비방망이 데이터 불러오기

장이 종료되면 자동으로 그 날 데이터를 불러오도록 구현했지만

혹시 누락되거나 수동으로 받아야 할지 모르는 상황을 대비하여

데이터 불러오는 함수를 넣어놨다.

도깨비 방망이 BackTesting 화면

마지막으로 BackTesting 화면이다.

역시 멍 때리기 심심하니 유튜브를 볼 수 있게 구현했다.

왼쪽 하단 ProgressBar에 연두색 진행률이 화면 하단을 가득 채워야 끝이 난다.

장 종료부터 다음 날 개시까지 약 15시간 정도 있기 때문에

그 시간에 맞추어 진행할 수 있도록 구현했다.

키움 OpenAPI 를 이용한 알고리즘 트레이딩 시스템 도깨비방망이

조만간 배포해봐야지. . .

728x90
반응형