2. 해외선물/2-1. 해외선물 자동매매 연구

(키움증권 해외선물 자동매매 파이썬) 1. 자동매매 개념 및 글의 방향

봄이오네 2023. 9. 3. 20:41
반응형
목 차
1. 들어가며
2. 해외선물 자동매매 개념
3. 글의 방향
4. 마치며

 

1. 들어가며

국내주식, 해외주식, 해외선물 등의 분야에서 "자동매매"를 통한 수익 창출은 누구나 원하는 꿈같은 일이다. 장시간 차트와 호가창, 거래량 등을 지켜봐야 하는 인내심, 수익에 대한 압박, 손실에 대한 우려/스트레스 등 내가 아닌 존재가 차트를 보며 자동매매를 해준다면 얼마나 좋은 일일까?

 

이러한 꿈과는 반대로 자동매매를 하기 위한 길은 멀고도 험해 보인다. 파이썬이라는 낯선 언어, 매월 지급해야 하는 OpenAPI-W 월 사용료, 자동매매 구축 후에도 커지는 손실 등 당초 사용자의 생각과는 달리 진행되는 자동매매 앞에 무력해지는 본인을 발견했을 때 상당히 당황할 것이다.

 

인터넷에서 "자동매매"를 찾고 있다는 것은 현재 자신의 매매 결과가 만족스럽지 않다고 볼 수 있다. 필자도 하루종일 차트를 보다가 손실이 크게 났을 때, 내 자산을 믿지 못하게 되고 자동매매를 구현하고자 하는 생각이 강했다. 본인이 수익을 얻고 있을 때는 자동매매보다 본인의 기법을 더 믿게 된다. 본인만의 매매/기법으로 안정적 수익을 낸다면 굳이 자동매매를 할 필요는 없어보인다.

 

이 글을 읽는다고 해외선물 매매에서 안정적 수익이 난다는 보장은 없다. 해선은 언제나 그렇듯, 정신없는 가격 변화로 투자자를 혼란에 빠뜨린다. 영화 속 슈퍼컴퓨터처럼 완벽한 알고리즘으로 안정적 수익을 낸다면 얼마나 좋겠는가? 또한 이 글에서는 수익내는 방법을 설명하는 것도 아니다. 필자가 수익을 내고 있다면, 지금쯤 요트를 타고 피서를 즐기고 있지 않겠는가? 인터넷이라는 개방된 공간에서 어떤 사람이 본인의 필살기인 "수익 내는 법"을 알려주겠는가?

 

필자도 수익내는 알고리즘을 계속 찾고 있다. 수익을 내는 알고리즘은 사용자 스스로 공부해서 찾는 것이다. 필자는 알고리즘을 만들고 적용/검증하는 방법 등을 알려줄 것이다.

 

이 글은 파이썬 초보자를 대상으로 설명해 나갈 것이다. 그렇다고 파이썬의 개발자, 발전역사 등을 기술하지는 않는다.

 * 사용자의 pc에 아나콘다(언어)와 파이참이 깔려있다는 전제하에 글을 쓴다.

 


2. 해외선물 자동매매 개념

해외선물 자동매매는 키움증권 측에 월 사용료 185달러를 지급하고, 키움측에서 제공하는 데이터를 활용하여 코딩을 통해 만들어진 시스템으로 자동매매하는 것을 말한다. 받아온 데이터를 통해 알고리즘 패턴을 만들고, 설정한 수익/손실에 도달하면 청산하는 절차로 시스템이 이루어진다.

 

자동매매는 키움측에서 제공하는 함수인 setinputvalue(데이터 입력) - commrqdata(데이터 요청) - getcommdate(데이터 수신) 등의 함수를 이용한다. 데이터 입력-요청-수신의 3과정을 통해 자료를 사용자 pc에 가져온 이후 신속하게 알고리즘을 계산하고, 진입/청산 여부를 결정한다.

 

나중에 설명하겠지만, 이 글을 읽는 사용자가 고민할 필요가 있는 내용은 미리 화두를 던져 두고자 한다.

수익/손실은 얼마 정도를 생각하는지?

진입 후 몇 시간 내 수익/손실을 못내면(횡보) 청산할 것인지?

시장 개장전/후 거래량 및 가격변화량이 상이할텐데, 각각 수익/손실 규모 및 거래 횟수?

장 개장 직후(summer 22:30)에 거래가 급증할 때 거래를 할 것인가?

본인의 투자성향/성격/거래종목/투자금 등 종합적으로 고려하여 생각할 부분이다.

 

필자는 모의투자를 통해 미니 나스닥(NQU23)을 거래 중이다. 아래 < 그림1 >은 미니 나스닥(NQU23) 1거래량의 결과이다. 모의계좌이니 수익은 크게 신경쓸 필요는 없다. 실제계좌는 계좌 앞자리가 5로 시작하고, 모의계좌는 7로 시작한다.

 

필자가 당초 설정한 알고리즘에 맞으면 수익이 나고, 반대의 경우 손실이 난다. 아래 <그림1>의 수익에 지나치게 일희일비 하지 않는다. 어차피 모의계좌이니깐. 필자에게 중요한 설정한 알고리즘에 맞는지 검증이다. 그렇게 하기 위해서는 검증을 위한 시간이 필요할 뿐이다.

 

< 그림1-1 >은 모의계좌의 미니 나스닥(NQU23)의 자동매매의 실현손익 4,486,493원('23.9.1.금)이다. 1거래가 물린건 조금 아쉽다. 깨끗이 청산했으면 좋았을 것이다.

그림1-1. 미니 나스닥(NQU23) 1거래 결과('23.9.1.금 기준)

 

< 그림1-2 >는 모의계좌 미니 나스닥 자동매매의 순손익이다. 3,395달러('23.9.1.금)이다. 아래에서 확인가능하겠지만, 거래가 상당히 많다. 수익/손실을 조금은 손봐야 하지 않을까 생각된다.

그림1-2. 미니 나스닥(NQU23) 1거래 청산 결과

 

 <그림1-1> 실현수익은 4,486,493원이며, <그림1-2> 순속익은 3,395달러이다. <그림1-1>의 실현수익 단위는 "원"이며, <그림1-2>의 순손익의 단위는 "달러"이기 때문에 숫자에 약간의 차이가 있다. 모의계좌는 수수료 할인이 안되는 것일까? 1거래 진입/청산시 수수료 7.5달러씩 2회인 15달러가 나가는게 눈에 띈다. 실제계좌이고 수수료 할인 이벤트 지원시 수수료는 더 낮아진다. 직접매매(편도 2.5달러), API매매(편도 2.3달러)이다.

 

< 그림1-3 >은 미니 나스닥(NQU23)의 9월1일의 1분봉 차트 중 일부를 발췌(9.2일 01:01분~04:30분)이다. < 그림1-3 >에서 최저점은 01:02분 15454이며 최고점은 15523.25이다. 최고점 및 최저점간 약 70p 정도 차이가 눈에 띈다.

그림1-3. 미니 나스닥(NQU23)의 1분봉 차트('23.9.2.토, 01:01분~04:30분)

 

파이썬 언어를 몰랐을 때는 파이썬(언어)에 대한 두려움이 앞섰다. 과연 내가 파이썬 언어를 숙지할 수 있을까? 무슨 말인지 잘 모르겠고, 내가 파이썬 언어를 활용하여 코드를 작성할 수 있을까? 막연한 걱정이 앞섰던 것도 사실이다.

 

다만, 해외선물 관련해서 어느 정도 파이썬에 익숙해지니, 이제는 수익 알고리즘 패턴 만들기 분야에서 고민하고 있다. 파이썬에 처음 입문했던 '22년 상반기에는 파이썬 언어 자체를 공부했다면, '23년 현재(9월)는 언어보다는 수익 알고리즘에 신경을 쓰고 있는 것이다.

 

분명 파이썬(언어)에 대한 진입장벽은 존재한다. 필자처럼 코딩에 지식이 없는 사람은 6개월 정도 인내심을 가지고 하루에 1개씩 파이썬(언어)에 익숙해지면, 본인이 원하는 코드 정도는 자력(自力)으로 작성할 수 있을 것이다.

 


3. 글의 방향

이 글은 아래 < 그림2 >의 순서에 의해 글을 진행할 것이다. 필자는 현재 모의계좌로 자동매매를 돌리고 있으며, 자동매매의 시스템 구축 내용을 기반으로 설명할 것이다.

 

  • 첫번째, < 개요 >에서는 자동매매를 위해 필요한 pc사양, 알고리즘 딜레마, 사용할 러이브러리 등을 설명
  • 두번째, < 데이터요청 >에서는 tr을 이용하여 데이터 요청-수신 받는 방법 설명
  • 세번째, <보조지표 구하기 >에서는 rsi, 볼린저밴드 등 보조지표 구하는 방법 설명
  • 네번째, <시간 관리 >에서는 시간현행화, 진입~청산까지 기다리는 시간 등을 설명
  • 다섯번째, 알고리즘 만들기, 검증, 파이참에 적용하기 등을 설명

 

그림2. 해외선물 자동매매 설명


4. 마치며

향후에는 해외선물 자동매매 시스템에 대해 알아볼 것이다. '23년 9월말까지 글 완성을 목표로 하고 있다. 물론 중간에 더 좋은 내용이 생각나면 작성(예정)일이 뒤로 밀릴 수 있겠지만, 늦어도 10월 중까지는 완성할 예정이다.

 

인내심을 가지고, 해외선물 자동매매에 대해 공부해 보는 것도 나쁘지 않다.

자동매매로 수익을 낼 수 있는 그날까지 해선 자동매매 공부는 계속할 것이다.

 

투자 결과에 대해서는 전적으로 본인의 책임이며, 이 글은 해외선물 투자를 권장하는 글이 아님을 미리 밝힌다.

 

반응형