봇(Bot) - API
kr·@holcoin·
0.000 HBD봇(Bot) - API
<html> <p>봇(Bot) 트레이딩을 이용할때 사전에 알아야 시스템 환경에 관한 일반적인 내용을 소개 합니다. 직접 봇(Bot) 을 제작하든, 유료서비스 봇 프로그램을 이용하든 알아야 할 기본적인 내용 입니다.</p> <p>대부분은 봇(Bot) 알고리즘 및 성능(수익률)에 관심이 갈 수 밖에 없지만, 시스템적인 요소 또한 봇(Bot) 트레이딩의 중요한 요소 이므로 알아두면 좋을 듯 싶습니다.</p> <h3>API (Application Programming Interface)</h3> <p><br></p> <p>봇(Bot) 트레이딩에서 필수적으로 등장하는 API 란 용어는 거래소 측에서 제공하는 주문 또는 데이타 조회등을 요청하여 이용할 수 있도록 제공되는 프로그램에 대한 요청 규칙 이라 할 수 있습니다.</p> <p>국내외 대부분 거래소에서 API 를 지원하고 있으며, 제공되는 API 서비스를 기반으로 봇(Bot) 프로그램을 제작할 수 있으며 또한 봇(Bot) 트레이딩을 지원하는 서비스 가능 한 것입니다.</p> <h3>API 종류</h3> <p><br></p> <p>API 를 어떤 방식으로 제공하는지에 대한 것으로 현재 거래소에서 제공하는 방식은 두가지 입니다. </p> <ul> <li>REST API</li> <li>WebSocket API</li> </ul> <p>용어나 기술적인 구현의 이해 보다는, 시세 데이타를 한번 요청하면 이후 지속적으로 발생되는 데이타를 전달해 주는 방식이 WebSocket API 며, REST API 는 한번 요청에 한번만 데이타를 조회(수신) 한다는 점이 가장 큰 차이점 입니다.</p> <p>이 차이를 좀더 쉽게 이해 하기 위해서 브라우저 주소 입력란에 아래 문구를 입력하면 데이타가 표시되는걸 확인 하실 수있으며, F5(재조회키)를 누르지 않는한 데이타는 변하지 않습니다. 이렇게 요청 할때만 데이타를 넘겨주는 방식을 REST API 방식이라 할 수 있습니다.</p> <blockquote>https://api.bithumb.com/public/ticker </blockquote> <blockquote>https://api.coinone.co.kr/ticker_utc/?format=json</blockquote> <p><img src="https://cdn.steemitimages.com/DQmbLZgVyQPguEhmFDRAgZDYjRjLytV5GZCBqLbfLojMdPw/image.png" width="760" height="107"/></p> <p>하지만 WebSocket API 방식은 데이타를 요청하면 이후 새로운 데이타가 생성될때 마다 사용자에게 자동으로 전달해주는 방식입니다. </p> <p>REST API 방식보단 WebSocket API 방식이 여러모로 더 유리하며, 암호화폐를 제외한 증권,선물/옵션, 해외 FX 등에서 시스템 트레이딩을 구현할때 Socket 방식으로 구현되는게 일반적 이며, 또한 기술적으로 WebSocket API 방식이 REST API 방식보단 데이타 수신이 빠르므로, 신속한 시세 데이타를 요구하는 경우 Socket 방식을 이용해서 트레이딩을 합니다.</p> <p>현재 국내 거래소에서는 대부분 REST API 방식만을 지원하지만, 해외 Bitfinex, Poloniex, houbi 등은 WebSocket API 방식도 같이 지원하고 있습니다.</p> <h3>Sample</h3> <p>빗썸 API 를 이용하여 간단하게 시세를 조회하는 예제로서, 구글 시트(스프레드)와 스크립트 도구를 이용 하였습니다.</p> <p><strong>STEP 1</strong></p> <p><a href="https://www.google.com/intl/ko_kr/sheets/about/">구글 스프레드 시트 </a>를 접속하여 시트를 만든후 A 열에 조회하고자 하는 심볼을 대문자로 입력한후, 스크립트 편집기를 클릭합니다.</p> <p><img src="https://cdn.steemitimages.com/DQmd8Ex3GmZkgM4gBSW47kRPqnyp7vzshVvLRfaFZbnM1jH/image.png" width="495" height="317"/></p> <p><strong>STEP 2</strong></p> <p>아래 스크립트 코드를 복사후 myfunction() 안에 붙여넣기를 합니다. 그리고 저장 버튼을 클릭 합니다.</p> <blockquote> var URL = "https://api.bithumb.com/public/ticker/all";</blockquote> <blockquote> var Response = UrlFetchApp.fetch(URL);</blockquote> <blockquote> var Data = Response.getContentText();</blockquote> <blockquote> var JSONfmt = JSON.parse(Data);</blockquote> <blockquote> var sheet = SpreadsheetApp.getActiveSheet();</blockquote> <blockquote> var datarange = sheet.getDataRange();</blockquote> <blockquote> var numRows = datarange.getNumRows();</blockquote> <blockquote> for (var i=1; i <= numRows; i++) {</blockquote> <blockquote> var Symbol = sheet.getRange(i,1).getValue();</blockquote> <blockquote> var Close = JSONfmt["data"][Symbol]["closing_price"];</blockquote> <blockquote> sheet.getRange(i, 2).setValue(Close); </blockquote> <blockquote>}</blockquote> <p><img src="https://cdn.steemitimages.com/DQmRmAHV5XS5fuJfs5vQGY19hSKrrGvefdubz9AESNGYQVR/image.png" width="617" height="432"/></p> <p><strong>STEP 3</strong></p> <p>아래 그림과 같이 트리거 버튼을 클릭후 작성한 스크립트 실행간격을 설정한후 저장을 합니다. 저장 과정에서 구글계정 인증이 필요할 수 있습니다.</p> <p><img src="https://cdn.steemitimages.com/DQmct7kXFy2jVrhxexzWxPEbraMVgrN9v5sJfqN4hmVbFAv/image.png" width="768" height="253"/></p> <p><strong>STEP 4</strong></p> <p>구글 시트를 확인해 보면 1분 간격으로 시세가 자동으로 업데이트 됩니다.</p> <p><img src="https://cdn.steemitimages.com/DQmWkHGS7eYerWKGCZYaeYW181iZUdGMU9XBagwiM2vEA7s/image.png" width="379" height="256"/></p> <p><br></p> <p>예제 에서는 구글 시트와 스크립트를 이용하였지만, 기타 엑셀(Excel), C++, Java 등 다양한 스크립트 언어 및 컴파일러(Complier)를 이용해서 시세 조회 및 주문을 실행하도록 API 를 사용 합니다.</p> <p>하지만 컴퓨터 프로그램 지식이 없는 분들은 접근이 어려우므로, 봇(Bot) 트레이딩을 지원하는 사이트나 도구(Tool)을 이용해서 매매 전략만을 작성하는 방식으로 이용해야 합니다.</p> <p>시스템 트레이딩 툴은 대표적으로 Yestrader(예스 트레이더),Cybos(대신 사이보스) 등은 국내툴이며, 해외 전문적인 툴로는 TradeStation(트레이드 스테이션), MultiChart(멀티차트), MetaStock(메타스톡) 등이 있습니다.</p> <p>전문적으로 암호화폐를 시스템 트레이딩 하시는 분들은 MultiChart 또는 TradeStaion 을 이용해서 트레이딩을 하고 있습니다. </p> <p>대표적인 웹 서비스 형태로는 (https://Kr.tradingview.com)이 있지만 데스크탑 툴인 (TradeStation,MultiChart..)등에 비하면 속도 & 확장성 등이 다소 제약이 있어 데스크탑 툴을 이용하는게 일반적 입니다.</p> <h3>글을 마치며</h3> <p><br></p> <p>API 를 이용해서 직접 봇(Bot) 트레이딩을 하려면 프로그래밍에 대한 지식이 필요하며, 지식이 전무한 상태에서는 웹 서비스 형태를 이용하는게 일반적 입니다.</p> <p> 봇(Bot) 트레이딩을 전문적으로 하기 위해서 프로그램에 대한 지식을 요구 하므로, 이와 관련된 공부를 별도로 하실 필요가 있으며, 잠시 호기심에 접근 하는 수준이라면 웹 서비스 형태로 이용하여 개념을 잡는데는 도움이 될 수 있습니다.</p> <p><br></p> </html>