ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코인레일 API Python 모듈 공유합니다.
    programing/봇만들기 2017. 10. 19. 14:24

    API를 필요로 하시는 분들에게 유용한 정보를 알려드리려고 합니다. 코인레일에 대해서 포스팅을 할 예정인데 그 이 전에 Python을 이용한 봇을 만들고 싶으신 분들에게 python 소스코드를 공개합니다. 내용은 아래와 같으며, 해당 소스는 github에서 다운로드 받을 수 있습니다.


    코인레일

    제가 봇을 제작하면서 여러가지 문제점이 있어서 고객센터에 문의를 했는데 친절하게 소스코드와 함께 답변이 와서 여러분들과 함께 공유하고자 합니다. 소스코드는 전적으로 코인레일에서 작성한 내용이며, 본인에게 맞는 형식으로 수정해서 사용하면, 보다 더 유용하게 쓸 수 있을 것입니다.


    1. 오더북 조회

    1
    2
    3
    4
    5
    6
    7
    8
    9
    import httplib2
     
    url = 'https://api.coinrail.co.kr/public/orderbook'
    currency = 'btc-krw'
     
    if __name__   == "__main__":
      http = httplib2.Http()
      response, content = http.request(url+'?'+'currency='+currency, 'GET')
      print content
    cs


    2. 잔고 조회

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    import base64
    import simplejson as json
    import hashlib
    import hmac
    import httplib2
    import time
     
    ACCESS_KEY = ''
    SECRET_KEY = ''
     
    def get_encoded_payload(payload):
      dumped_json = json.dumps(payload)
      encoded_json = base64.b64encode(dumped_json)
      return encoded_json
     
    def get_signature(encoded_payload, secret_key):
      signature = hmac.new(str(secret_key), str(encoded_payload), hashlib.sha512);
      return signature.hexdigest()
     
    def get_response(url, payload):
      encoded_payload = get_encoded_payload(payload)
      headers = {
        'content-type''application/json',
        'X-COINRAIL-PAYLOAD': encoded_payload,
        'X-COINRAIL-SIGNATURE': get_signature(encoded_payload, SECRET_KEY)
      }
      http = httplib2.Http()
      response, content = http.request(url, 'POST', headers=headers, body=encoded_payload)
      return content
     
    def get_balance():
      url = 'https://api.coinrail.co.kr/balance'
      payload = {
        "access_key": ACCESS_KEY,
        "timestamp" : int(round(time.time() * 1000))
      }
     
      response = get_response(url, payload)
      print response
      content = json.loads(response)
     
      return content
     
    if __name__   == "__main__":
        print get_balance()
    cs


    3. 일반 매수

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    import base64
    import simplejson as json
    import hashlib
    import hmac
    import httplib2
    import time
     
    ACCESS_KEY = ''
    SECRET_KEY = ''
    currency = 'btc-krw'
     
    def get_encoded_payload(payload):
      dumped_json = json.dumps(payload)
      encoded_json = base64.b64encode(dumped_json)
      return encoded_json
     
    def get_signature(encoded_payload, secret_key):
      signature = hmac.new(str(secret_key), str(encoded_payload), hashlib.sha512);
      return signature.hexdigest()
     
    def get_response(url, payload):
      encoded_payload = get_encoded_payload(payload)
      headers = {
        'content-type''application/json',
        'X-COINRAIL-PAYLOAD': encoded_payload,
        'X-COINRAIL-SIGNATURE': get_signature(encoded_payload, SECRET_KEY)
      }
      http = httplib2.Http()
      response, content = http.request(url, 'POST', headers=headers, body=encoded_payload)
      return content
     
    def limit_buy():
      url = 'https://api.coinrail.co.kr/order/limit/buy'
      payload = {
        "access_key": ACCESS_KEY,
        "currency": currency,
        "price" : 4900000,
        "qty" : 0.1,
        "timestamp" : int(round(time.time() * 1000))
      }
     
      response = get_response(url, payload)
      print response
      content = json.loads(response)
     
      return content
     
    if __name__   == "__main__":
        print limit_buy()
    cs


    4. 일반 매도

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    import base64
    import simplejson as json
    import hashlib
    import hmac
    import httplib2
    import time
     
    ACCESS_KEY = ''
    SECRET_KEY = ''
    currency = 'btc-krw'
     
    def get_encoded_payload(payload):
      dumped_json = json.dumps(payload)
      encoded_json = base64.b64encode(dumped_json)
      return encoded_json
     
    def get_signature(encoded_payload, secret_key):
      signature = hmac.new(str(secret_key), str(encoded_payload), hashlib.sha512);
      return signature.hexdigest()
     
    def get_response(url, payload):
      encoded_payload = get_encoded_payload(payload)
      headers = {
        'content-type''application/json',
        'X-COINRAIL-PAYLOAD': encoded_payload,
        'X-COINRAIL-SIGNATURE': get_signature(encoded_payload, SECRET_KEY)
      }
      http = httplib2.Http()
      response, content = http.request(url, 'POST', headers=headers, body=encoded_payload)
      return content
     
    def limit_sell():
      url = 'https://api.coinrail.co.kr/order/limit/sell'
      payload = {
        "access_key": ACCESS_KEY,
        "currency": currency,
        "price" : 4900000,
        "qty" : 0.1,
        "timestamp" : int(round(time.time() * 1000))
      }
     
      response = get_response(url, payload)
      print response
      content = json.loads(response)
     
      return content
     
    if __name__   == "__main__":
        print limit_sell()
    cs


    5. 거래내역 확인

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    import base64
    import simplejson as json
    import hashlib
    import hmac
    import httplib2
    import time
     
    ACCESS_KEY = ''
    SECRET_KEY = ''
    currency = 'strat-krw'
     
    def get_encoded_payload(payload):
      dumped_json = json.dumps(payload)
      encoded_json = base64.b64encode(dumped_json)
      return encoded_json
     
    def get_signature(encoded_payload, secret_key):
      signature = hmac.new(str(secret_key), str(encoded_payload), hashlib.sha512);
      return signature.hexdigest()
     
    def get_response(url, payload):
      encoded_payload = get_encoded_payload(payload)
      headers = {
        'content-type''application/json',
        'X-COINRAIL-PAYLOAD': encoded_payload,
        'X-COINRAIL-SIGNATURE': get_signature(encoded_payload, SECRET_KEY)
      }
      http = httplib2.Http()
      response, content = http.request(url, 'POST', headers=headers, body=encoded_payload)
      return content
     
    def get_trade_history():
      url = 'https://api.coinrail.co.kr/trade/completed'
      payload = {
        "access_key": ACCESS_KEY,
        "currency": currency,
        "offset" : 0,
        "count" : 20,
        "timestamp" : int(round(time.time() * 1000))
      }
     
      response = get_response(url, payload)
      print response
      content = json.loads(response)
     
      return content
     
    if __name__   == "__main__":
        print get_trade_history()
    cs


    추후에 API에 관련된 내용과 자동 거래봇을 만드는 방법에 대해서 자세하게 다룰 예정이니 많은 관심 부탁드립니다. 댓글로 부족하거나 잘못된 정보 혹은 궁금한 내용들이 있으면, 해당 주제로 자세하게 포스팅 하겠습니다.


    코인레일 홈페이지: https://coinrail.co.kr

    코인레일 소개: 최적화된 서비스에 집중한 거래소


    Github에서 소스코드 다운로드 받으세요 

    https://github.com/newsters/coinrail


Designed by Tistory.