자동 거래 시스템

마지막 업데이트: 2022년 2월 25일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
korbit

자동 거래 시스템

안녕하세요 오늘부터 여러분에게 비트 코인 자동매매 프로그램 만드는 방법을 알려드릴 코시트의 우종선입니다 .

제가 유튜브나 이런 저런 채널에 프로그래밍 강의를 녹화해서 여러 분들께 공유 해드리고 있는데요 .

강의를 보신 분들 중에 많은 분들께서 비트 코인을 포함한 코인을 사고 팔 수 있는 프로그램 만드는 방법을 문의하시는 분들이 많았습니다 .

주식 시장같은 금융 시장에서도 자동매매 프로그램에 대한 수요가 많아요 .

그런데 코인은 금융 시장보다 더 자동매매 프로그램에 대한 필요성이 크다는 생각이 들었습니다 .

왜냐하면 주식 시장과는 다르게 코인 거래소는 24 시간 거래 할 수 있습니다 .

이런 특징은 원할 때 언제든 거래 할 수 있다는 장점이 될 수도 있습니다 .

하지만 반대로 투자자 입장에서는 언제나 시장을 봐야 한다는 부담이 될 수도 있습니다 .

투자 후에 자동 거래 시스템 마음 편히 잠에 들 수 없는 것이죠

코인 투자를 하시는 분들은 동감하실 거라고 생각해요 .

이런 코인 시장은 자동매매 프로그램에 대한 필요가 더 크다고 생각합니다 .

한정된 시간 안에 제가 현실적으로 많은 분들이 요청하시는 프로그램을 다 만들어 드릴 수는 없었어요 .

많은 사람들의 이런 문제를 해결 할 방법을 생각했습니다 .

그러다 누구나 의지만 있다면 쉽게 자신만의 자동매매 프로그램을 만들 수 있도록 영상을 만들게 되었어요 .

이 영상은 가상화폐 자동매매 시스템을 구축 하기 위한 입문 과정인데요 .

앞으로 프로그램을 통해서 어떻게 코인을 거래하는지 살펴 볼 거에요 .

이 영상은 이런 분들에게 도움이 될 것 같아요 .

1. 코인 거래를 편리하게 하고 싶으신 분

2. 프로그램을 통한 거래를 해보고 싶은 분

3. 코인 자동매매 프로그램을 만들어보고 싶은 분

영상을 통해서 여러분은 이런 것들을 얻으실 수 있어요 .

첫 번째로 파이썬 언어에 조금 익숙해질 거에요 . 파이썬 언어를 통해 자동 매매 시스템을 구축하는 기반을 다져요 .

두 번째로 영상을 통해 프로그램으로 코인을 거래 하는 방법을 알아 볼 거에요 . 영상을 통해 간단하게 프로그램으로 코인을 거래 해 볼 거에요 .

세 번째로 API 에 익숙해 지실 거에요 . 많은 증권사 , 코인 거래소들은 가격 데이터 , 거래량 데이터 등을프로그램으로 요청 할 수 있게 해두었습니다 . 프로그램으로 데이터를 요청 할 때는 API 를 사용해요 . 입문 편 영상을 통해 여러분은 이렇게 데이터를 요청하는 API 를 살펴볼 거에요 . 다른 코인 API 도 이렇게 하면 사용 할 수 있겠다는 자신감이 생기실 거에요 .

자동 거래 시스템의 다른 유형은 무엇입니까?

자동 거래 시스템을 분류하는 방법에는 두 가지가 있습니다. 하나는 알고리즘의 공개 여부에 기초합니다. 알고리즘이 공개되면, 시스템을 "공개 시스템"이라고합니다. 공개되지 않은 자동 거래 시스템을 "블랙 박스"시스템이라고합니다. 이러한 시스템을 자동 거래 시스템 분류하는 두 번째 방법은 사용 된 알고리즘 유형을 기반으로합니다.

사이클 연구, 변동성 분석 및 가격 분석이 가장 인기있는 알고리즘입니다. 사이클 연구는 상하를 예측하기 위해 서로 다른 길이의 사이클을 결합합니다. 변동성 분석 시스템은 일반적으로 주식 또는 상품의 변동성이 낮은시기에 초점을 맞춘 다음 변동성 증가에 따라 시장에 진입합니다. 가격 분류 시스템은 일정 기간 동안 최고 가격과 최저 가격을 추적 한 다음 더 높거나 더 낮은 가격이 자동 거래 시스템 책정되면 시장에 진입합니다.

자동 거래 시스템이 포지션에 들어간 후에는 해당 포지션을 언제 종료해야하는지 결정해야합니다. 일부 시스템은 이동 평균을 사용하는 반면 다른 시스템은 자동 거래 시스템 일정 기간 동안 유지 한 다음 종료됩니다. 다른 접근 방식은 포지션이 수익성이있는 즉시 종료하거나 특정 수준의 수익성에 도달 한 후 종료하는 것입니다. 대부분의 시스템에는 시스템이 허용하도록 설계된 최대 손실 인 고정 된 손실량이 있습니다. 그 금액의 용어는 "중지 손실"입니다.

블랙 박스 거래 전략으로 판매되는 많은 컴퓨터 프로그램이 있습니다. 대부분은 "백 테스팅"을 기준으로 판매됩니다. 실시간 거래의 실질적인 이력이 없거나 시스템을 사용하여 Monte Carlo 시뮬레이션과 같은 백 테스트 데이터 이외의 데이터에 대해 많은 양의 좋은 결과가있는 경우 실제 돈으로 주요 도박이다. 몇 가지 규칙을 조합 한 다음 5 년 또는 10 년 동안 거래 데이터를 통해 시스템을 최적화하여 시선을 사로 잡는 결과를 산출하는 것은 어렵지 않지만 이러한 시스템은 실제 거래에서 수익성이 없을 것입니다.

수익성있는 자동 거래 시스템이 존재합니다. 그것들은 시장이 어떻게 작동하는지 잘 이해하는 사람들과 함께 일하는 물리학에 대한 매우 깊은 지식을 가진 사람들에 의해 만들어졌습니다. 제작자는 대부분 저소득층을 유지하는 투자 또는 거래 그룹을 위해 일합니다. 모든 거래 또는 시장 투자 분야와 마찬가지로, 돈을 알고리즘적이고 자동화 된 거래 시스템에 맡기는 것은 상당한주의를 기울여 상당한 연구를 거쳐야합니다.

ScienceON Chatbot

차익거래 자동매매 시스템 개발 및 퀀트 전략 연구 : 주식과 선물 BASIS의 퀀트 분석을 중심으로 원문보기

The Development of Automated Arbitrage Trading System and the Analysis of Quant Strategies : The Development of Automated Quant Strategy Arbitrage Trading System of Stocks and Futures and the Study of Quant Analysis of Basis Data

금융 산업이 성장할수록 현업에서는 다양한 매매기법과 고도화된 첨단 시스템을 사용하여 수익을 창출하고 있다. 주식과 선물을 활용한 차익거래는 국내 증권사의 핵심 업무 중 하나이며, 다양한 수익업무 중에서도 높은 수익의 원천으로 자리매김하고 있다. 우정사업본부 차익거래는 국내 유일 비과세 차익거래로써 외국인 주체들에 의한 가격 쏠림 현상을 예방해주고, 주식에 대한 헷지(Hedge)를 필요로 하는 많은 주체들의 슬리피지 비용을 줄여주는 긍정적인 효과를 창출하고 있다.
증권사에서는 이러한 차익거래 수익을 올리기 위해 자동 거래 시스템 고도화된 장비 .

금융 산업이 성장할수록 현업에서는 다양한 매매기법과 고도화된 첨단 시스템을 사용하여 수익을 창출하고 있다. 주식과 선물을 활용한 차익거래는 국내 증권사의 핵심 업무 중 하나이며, 다양한 수익업무 중에서도 높은 수익의 원천으로 자리매김하고 있다. 우정사업본부 차익거래는 국내 유일 비과세 차익거래로써 외국인 주체들에 의한 가격 쏠림 현상을 예방해주고, 주식에 대한 헷지(Hedge)를 필요로 하는 많은 주체들의 슬리피지 비용을 줄여주는 긍정적인 효과를 창출하고 있다.
증권사에서는 이러한 차익거래 수익을 올리기 위해 고도화된 장비 도입과 전문가 채용을 통하여 차익거래 수익을 극대화하고 있지만, 아직 퀀트 전략과 자동매매에 대한 수요는 적은 편이다. 해외에 비하면 퀀트 전문 육성 기관이 드물고, 퀀트 업무의 활용도가 낮은 이유도 있겠지만, 자동매매에 대한 사고 경험과 다양한 전산오류를 경험하며 생긴 경계심으로 예상된다. 하지만 다양한 사고를 경험하며 오류를 검증하는 방법 또한 다양해졌고, 컴퓨터공학 기술의 발달로 전산오류의 발생 빈도가 현저히 줄어들었다. 추가로 하드코딩을 통하여 지금까지 발생한 모든 사고, 전산오류, 예상 가능한 사고를 모두 사전에 방지할 수 있도록 프로그래밍한다면 100%는 아니어도, 적어도 사람이 하는 실수보다는 현저히 그 빈도가 줄어들 것으로 사료된다.
그동안 현업에서는 금융공학적 지식에 경험과 순간적인 판단을 더하여 진입과 청산의 베이시스(Basis) 값을 결정하였다. 본 연구에서는 과거데이터에 퀀트 분석을 통하여 합리적인 베이시스값을 자동으로 도출한다. 프로그램이 스스로 과거데이터를 학습하고, 실시간 데이터를 분석하여 자동매매를 수행할 수 있도록 코딩하였다.
최근의 베이시스를 실시간으로 분석하여 콘탱고(contange) 데이터의 평균값을 구하여 그 평균 콘탱고 베이시스에서 매수차익거래를 진입하고, 반대로 평균 백워데이션(back-wardation)의 베이시스에서 매도차익거래로 청산한다. 만기일에도 잔고가 남아있다면 매도차익거래로 청산한다.
거래대금과 거래량 기준으로 상위 5종목을 추려서 5종목 Pair를 선별하여 시뮬레이션하였다. 시뮬레이션 기간은 최근 30개월(만기 30번, 2년 6개월)이며, 손익을 30구간으로 나눠서 분석하였고 그 기준은 만기일이다. 만기일 다음 영업일에 시작하여서 만기일 종가까지가 하나의 구간이며, 이렇게 총 30구간(30번의 만기)동안 시뮬레이션하였다.
연구결과 모두 우상향하는 수익을 확인할 수 있었다. 차익거래 자체가 No Arbitrage Bounds를 넘어서는 콘탱고 Basis에서 매수차익거래를 진입하면 만기일의 수익이 확정되는 것이 특징이기 때문에 체결이 되었다면 우상향을 기대할 수 있는 안정적인 매매이지만, 본 연구의 차익거래 퀀트전략 자동매매 시스템은 안정적인 수익구조를 유지하면서도 수익을 극대화하는 것이 목표이기 때문에 매매 가능한 진입시점과 청산시점을 모두 포착하며 매매하도록 하였다는데 기존 연구들과 차이점을 둔다.
향후 연구 과제는 현실에 더 가까운 데이터로 분석하는 것이다. 본 연구의 데이터는 현재가를 기준으로 베이시스를 산출하였지만, 향후 연구에서는 실시간 상대호가와 잔량을 고려해야 하며 수수료와 슬리피지를 고려해야 한다. 여기에 퀀트분석 기간이나 진입과 청산의 값을 전진분석(Walk Forward Testing) 시뮬레이션 기법을 도입하여 분석하는 것이 더욱 합리적이고 수익률을 극대화하는 향후의 연구 과제이다.

Abstract

While arbitrage trading has been one of the main profit sources for securities firms, many have relied on experience and intuition to calculate basis, the benchmark for entry and liquidation of arbitrage transactions. This study focused on developing a quant strategy-based program that allows automa.

While arbitrage trading has been one of the main profit sources for securities firms, many have relied on experience and intuition to calculate basis, the benchmark for entry and liquidation of arbitrage transactions. This study focused on developing a quant strategy-based program that allows automated trading using data analysis.
An analysis of basis data of two and a half years revealed pendulum motions with regularity, and the quant strategy was established based on them. The program carries out cash-and-carry arbitrage at the mean value of contango basis over a certain period and carries out reverse cash-and-carry arbitrage at the mean value of backwardation basis.
The study showed an upward trend in profits in all cases. Even though arbitrage trading is relatively low-risk when exercised at contango basis, the Automated Quant Strategy Arbitrage Trading System is unique in that it aimed to maximize profit while maintaining a stable profit structure.
This study calculated basis based on close price, but in practice, basis should be calculated based on the real-time best order price and the remaining portion. In addition, further research is needed to reflect slippages and fees in trading strategies.

#차익거래 자동화 자동매매 퀀트 주식 자동 거래 시스템 주식선물 선물 파생상품 전략 개발 Arbitrage trading Basis Stocks Futures Quant algorithmic trading Automated trading system;

주식 자동매매 프로그램이 무엇일까? (개발이야기)

블로그 이미지

HTS / MTS는 주식을 투자하기 위한 매개체입니다. 매매를 하기 위해서는 주식시장에 오프라인으로 참여하지 않는 이상 무조건 해당 증권사에서 제공하고 있는 프로그램을 이용하여 자동 거래 시스템 거래를 하여야만 하며, 자신이 가지고 있는 돈을 입금하고 출금하는 행위도 해당 프로그램을 이용하여 진행할 수 있습니다. 미국의 주식 트레이딩 비율의 약 70%는 자동 거래 시스템 현재 자동화 시스템 매매가 이루어지고 있다는 사실을 알고 계신가요?

사람이 거래를 하는 행위는 기술적 매매에 한해서 심리적인 동요가 발생하기 때문에 객관적이고 보다 정확한 데이터를 인풋 및 아웃풋을 할 수 없다는 치명적인 단점이 존재합니다. 물론 이런 심리적 동요가 존재하기 때문에 다른 투자자들의 마음을 분석하는데 도움이 되며 자신의 투자방향을 대중과의 방향과 맞출 것인지 엇나갈 것인지를 선택할 수 있지만, 수익을 낼 수 있는 완벽한 기술적 매매 조건방법을 알고 있다면 이러한 인간의 단점은 배제하는 것이 더욱 중요한 과제일 것입니다.

이전부터 키움증권 등 다양한 증권사에서는 HTS의 API를 제공하고 있었습니다. Open API는 쉽게 말해 코딩을 할 수 있는 개발자 도구로 API를 제공하고 있는 해당 프로그램에 접근할 수 있는 권한을 가지게 함을 의미함과 동시에 적절한 코드만 작성한다면 프로그램의 자동 클릭 / 동작 / 정지 등을 구현해낼 수 있습니다.

(2) 주식 매매 자동화 프로그램의 진실

특히나 많은 사람들은 '파이썬' 프로그래밍 프로그램을 이용하여 자신만의 자동화 프로그램을 개발하거나 소형회사들이 직접 수익전략을 분석하고 개발하여 판매하는 경우도 비일비재합니다.

하지만 유료로 제공되고 있는 주식 자동 매매 프로그램의 대다수는 자신이 다양한 경우의 수를 가지고 있는 조건식을 일일이 설정하여 투자방식을 설정해야하는 사용자의 의견 개입이 대부분인 경우가 허다합니다.

따라서 해당 프로그램을 구매하더라도 기대할만한 수익을 추구하기에는 무리가 있어 보입니다. 결국 주식투자라는 것은 기술적이 되었든 장기적인 가치를 비교하는 투자가 되었던지 '학습'이 자동 거래 시스템 필요하다는 것 만큼은 확실합니다.

종목에 대한 정보를 분석하는 재무제표를 읽는 방법은 물론 세상에 지금까지 역사적인 데이터를 바탕으로한 확률 높은 투자 기법들을 분석하고 해석하며 시시각각 변하는 시장의 흐름을 가장 잘 추종할 수 있는 방식을 강구해야만 합니다.

이 과정이 어렵기 때문에 자동 매매 프로그램이 그렇게나 많음에도 엄청난 수익을 실현하였다는 말이 적은 이유가 있다고 생각합니다.

작년 말부터는 인터넷 재능마켓(크몽/클원)과 유튜브에서는 이러한 자동화 프로그램을 실제로 구현할 수 있는 방식을 강의형식으로 제공하기도 하고 있습니다. 앞서 말했던 바를 다시 되새겨본다면 해당 프로그램을 완벽하게 구현할 수 있는 프로그래밍 능력을 기른다고 하더라도 자신만의 전략이나 시장의 흐름에 대응할 수 있는 통찰력이 없다면 결국 수동적인 투자방식과의 수익률 차이는 거의 없을 것으로 판단됩니다.

만약 자동화 프로그램을 이용하여 자신의 자동 거래 시스템 시간을 투자하지 않고 손안대고 코를 풀려는 낙천적인 사고를 가지고 있었다면 접근법을 달리해야할지 모르겠습니다.

우선 기반이 되는 것은 기업 분석과 투자 기법을 익혀둔 다음 접근하는 것을 추천드리며, 프로그램의 개발은 그 이후의 것이라고 생각하시면 되겠습니다.

(3) 그러나 무한한 가능성의 프로그래밍

Open API가 제공되는 이상 우리에게 자동 거래 시스템 제한되는 것은 불법적인 투자를 막기 위해 해당 증권사에서 짧은 시간 동안 너무 많은 거래량이 매매되는 것을 금지하는 것 외에는 모든 것을 컨트롤할 수 있습니다. 그 말인 즉슨 원하는 매매방법이나 종목 선정 등을 프로그램에 맡길 수 있는 환경을 개발하는 것이 가능하다는 의미이며, 성공적인 투자기법의 조건식만을 입력할 수 있다면 충분히 원하는 수익을 올릴 수 있다는 것으로 귀결됩니다.

시간이 날 때마다 해당 프로그램의 개발과 방식에 대한 설명을 시리즈별로 자동 거래 시스템 업로드할 예정입니다. 다양한 투자방식이 존재하고 시장은 계속해서 변하기 때문에 저도 그에 맞는 시뮬레이션을 거치며 당분간은 자동 매매 프로그램의 개발과 검증에 몰두해보고자 합니다.

'파이썬' 프로그래밍 언어를 이용하여 개발할 예정이며, 시리즈별로 각 투자방식과 시뮬레이션 결과 등을 보여드리며 확률높은 싸움을 위한 지속적 탐구를 열중해보도록 하겠습니다.

자동 거래 시스템

퇴사 후 시간이 생겨 비트코인 자동 거래 시스템에 많은 시간을 쓸 수 있었다. 조금은 지체되었던 개발속도를 빠르게 하기 위해 노력하고 있다. 배포와 웹에서 해당 시스템을 trigger할 수 있도록 하기 위해서는 시간이 그렇게 많지 않다. 따라서 친구들을 만나는 시간을 제외하고는 모든 시간을 시스템 개발에 사용하고 있다.

Trading Module을 구현하였다. 해당 모듈의 알고리즘은 간단하다.

1. 현재 가격으로 코인을 산다.

2. 가격이 오르면 코인을 판다.

핵심 알고리즘은 위와 같지만 세부적으로 보면 간단하진 않다.

매수요청을 한 후 매수가 완료되었을 때 매도요청을 해야한다. 이 과정은 1초에 한번씩 계속 실행되어야한다. 그렇다면 조금 더 세부적으로 알고리즘을 작성해보자.

1. 해당 코인으로 매수신청을 한다.

- 매수신청 상태: PURINPRO

2. 매수신청이 완료됨을 확인한다.

- 매수완료 상태: BUYORDCOM

3. 매수신청이 자동 거래 시스템 완료된 주문들만을 대상으로 매도신청을 진행한다.

- 매도신청 상태: SELORDSTA

4. 매수신청된 주문들을 대상으로 주문상태를 확인한다. 매도가 완료되었으면 history 데이터베이스에 데이터를 옮겨준다.

- 매도완료 상태: SELORDCOM

거래소는 자신이 선택하기 나름이다. 필자의 경우에는 코빗거래소를 사용하였다.

korbit

매수 신청 모듈은 간단하다. 사려고 하는 코인의 통화쌍을 적어 주문하면 된다. 문제는 어느수준의 양을 주문하냐는 것인데, 나같은 경우는 지금 가지고 있는 한화(krw)에 10% 양의 돈으로 주문하도록 하였다. 트레이딩 알고리즘을 훨씬 잘 알고있는 사람은 아마 더 좋은 전력을 세우겠지만 나는 아직 시작단계이니 간단한 수준으로 알고리즘을 작성하였다.

참고로 내가 사는 코인은 '루나'라는 코인으로. 성장세와 자동 거래 시스템 코인의 크기(시중에 얼마나 많은 코인이 풀려있는지)를 참고하여 결정하였다. 물론 여러가지의 코인을 주문할 수 있지만 아직 해당 기능은 구현하지 자동 거래 시스템 않았다. 다음은 소스코드이다.

코드의 알고리즘은 간단하다. 최근의 코인가격을 그대로 주문하고, 가지고있는 돈의 10% 수준의 양으로 구입할 수 있는 코인의 양을 매수한다. 매수주문 후 리컨되는 json형식 그대로 내 데이터베이스에 넣어주어 저장한다.

만약 10%의 가격이 5천원이 되지 않는다면 매수주문을 하지 않도록 하였다. 5000원 이하의 돈으로 매수주문을 하면 오류가 발생해 시스템이 다운되기 때문이다.

매도주문에 필요한 정보는 어느 가격에 어느정도의 코인 양을 매도할지이다. 나같은 경우는 약 10%의 가격이 올랐을 때 내가 구입한 코인을 그대로 매도할 수 있도록 하였다.

매도주문은 매수가 완료된 주문들을 목표 가격과 코인 양을 입력하면 된다. 여기서 주의할점은 수수료 후의 실질적으로 구입된 코인의 양을 타겟으로 넣어주어야 한다는 것이다. 그렇지 않으면 가지고 있는 코인 양보다 더 많은 코인을 매도하기 때문에 에러가 발생한다.


0 개 댓글

답장을 남겨주세요