저희가 "시스템트레이딩 프로그램 만들기" 사업를 시작한지 여러해가 되었고, 지금까지 고객분들께서 요청한 API 주문 제작과 다양한 시스템트레이딩 프로그램 주문 제작을 진행해 보았습니다만 자동매매 프로그램을 개발하는데는 많은 노력과 에너지가 필요합니다.
자동매매 프로그램을 개발하는 방식은 증권사 API를 활용하는 방식과 증권사에서 제공해주는시스템트레이딩 플랫폼을 활용해제작하는 방식에 있으며, 이를 활용하여 프로그램을 제작하는 방법에는
1. 언어를 배워서 직접 개발을 하는 방법
2. 개발자에게 의뢰하여 주문제작 하는 방법
3. 언어를 자동으로 완성해주는 툴을 사용하는 방법이 있습니다.
아래 내용은 언어를 배워서 직접 개발을 진행 하려고 하시는 분들께서 특히 참고해 보시기 바랍니다.
[API를 활용한 자동매매 프로그램 제작]
일반적은 증권사 API를 사용한 자동매매 프로그램을 만들려면, 다음의 기능들을 직접 구현해야 됩니다.
1. 조회성 시세 정보 요청 처리
2. 실시간 시세 정보 요청 처리
3. 주문 전달 처리
4. 주문 응답정보 처리
5. 시세 정보 저장 및 관리
6. 시세 정보 가공 처리
7. 사용자 입력 화면
기술적 지표 같은 시계열 정보를 처리하려면, 기간별 시세 정보를 요청하고 수신된 정보를 받아 계산하는 별도의 가공 데이터 처리를 해야합니다.
증권사가 모든 기술적 지표에 대한 정보를 갖고 있지 않고, 원천 정보인 기간별 시고저종 가격에 대한 정보만 갖고있기 때문입니다.
따라서 직접 매매 프로그램을 개발할 경우, 전략구현이 가공된 시세정보를 많이 사용하게 되면 개발하기 녹록치 않습니다.
또한 실시간 시세 정보 처리나 주문 오류 방지 방법, 잔고 처리의 무결성, 가공 시세의 검증, 주문 검증 등 능숙한 개발 실력이 뒷받침 되야 구현이 가능한 부분도 있습니다.
단순히 시세 정보의 이용과 주문 응답 처리가 필요치 않는다면, 아주 간단한 기능만 구현해도 됩니다.
하지만 그것도 어느정도 능숙한 개발자가 아니면, 완성도 있는 프로그램을 개발하는데 많은 난관에 봉착할 수 밖에 없습니다.
프로그래밍에 익숙치 않은 사람들을 위한 여러 프로그래밍 강습과 온라인 강좌, 스터디 모임이 있지만, 실제 '돈'을 거래하는 자동매매 프로그램을 목표로 한다면 프로그래밍 언어 외에도 알아야 할 내용들이 많습니다.
파이썬 같은 언어가 배우기 쉽다고 하지만, 위에 제시한 기능을 구현하는건 언어를 익히는 난이도와 관계가 없습니다.
개발자가 구현할 기능을 만들 정도로 처리 과정에 대한 이해도가 얼마나 높은지, 수많은 방법 중 어떤 효율적인 방법을 선택하는지에 달려있죠. 또한 시세 정보의 각종 양식에 대한 이해와 주문 처리 흐름에 대한 관련 업무지식도 매우 중요합니다.
이렇게 자동매매 프로그램을 만들려면 신경쓰고 알아야 할 내용이 너무도 많아, 결국 전략개발에 투입할 시간 보다 그 외에 것들을 만드는데 더 많은 시간이 소요되게 됩니다.
[자동매매 플랫폼을 활용한 프로그램 만들기]
하지만 시중에 전략개발에만 집중할 수 있도록, 완성된 자동매매 플랫폼 제품들이 여러가지 있습니다.
이들 플랫폼으로는 TradeStation, MultiChart, MetaTrader, YesStock, GoSu 등이 있습니다.
이 중 가장 먼저 나왔고 널리 퍼진 플랫폼이 TradeStation이고, EasyLanguage라는 독자적인 언어를 지원합니다.
하지만 EasyLanguage도 플랫폼 특성에 대한 이해와 시스템트레이딩 지식을 요구하기에, 그렇게 쉽게 익숙해지지는 않습니다.
프로그래밍 언어적인 특징은 파이썬 같은 언어들에 비해 오히려 더 적을 수 있지만, TradeStation을 바탕으로 실행되다보니 고유의 기능과 특징을 이해해야만 합니다.
고객분들이 프로그램 작성과 관련된 부분은 신경쓰지 말고, 전략개발에만 집중하도록 우리는 전략코드를 자동으로 작성하는 EasyMaker을 개발하게 된 것입니다.
전략코드를 직접 작성하면, 각종 오류를 해결하는 일 부터 정확한 기능을 완성하기까지 쉽지가 않습니다.
따라서 이런 부분은 자동으로 완성된 코드에 맡기고, 전략연구와 빠른 검토를 통해 개발에 시간을 낭비하지 않고도 자신의 전략을 만들 수 있는 것이죠.
이지메이커를 사용하실 의향이 없으시다 하더라도, 프로그래밍 언어를 익히시는 목적이 시스템트레이딩이라면, 파이썬을 비롯한 다른 언어를 배우시기 보다는 EasyLanguage를 익히시길 또한, EasyLanguage를 본딴 Yes Stock의 Yes Language를 익히시는 것이 더 효과적일 것 같습니다.
이상 "증권사 API"를 활용한 시스템트레이딩 프로그램 만들기 와 "자동매매 플랫폼"을 사용한 프로그램 만들기에 대해 생각해 보았습니다.