봇(Bot) - API

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