암호통화 API2018. 1. 12. 05:00

 

 

API 접속 주소 (URL)

 

: 고팍스의 REST API는 계정/주문 관리 및 공개 마켓 데이터에 대한 엔드포인트를 제공합니다.

 

https://api.gopax.co.kr

 

 

1. 요청/응답 형식

 

: 모든 요청 및 응답의 content-type 은 application/json 이며, 통상적인 HTTP 상태코드를 준수합니다.

 

: 예를 들어 성공적으로 접속한 경우에는 200의 상태코드가 반환됩니다.

 

 

2. 오류

 

: 접속 장애 등의 문제가 있을 경우 그에 준하는 HTTP 상태코드가 반환됩니다.

 

 

HTTP 오류코드

 

오류코드 

 

설명

 

400

 

잘못된 요청 - 요청 형식이 유효하지 않음

 

401

 

권한 없음 - 잘못된 API Key

 

403

 

금지됨 - 요청한 리소스에 대한 접근 권한이 없음

 

404

 

찾을 수 없음

 

500

 

내부 서버 오류 - 서버에 문제가 발생함

 

요청 처리 중 논리적인 오류가 발생했을 경우 HTTP 상태코드는 여전히 200으로 반환되지만, 응답 내용이 항상 다음의 형식으로 반환됩니다.

 

 

     {

           errormsg: '[오류 내용에 대한 설명]'

     }

 

 

 

3. 페이지 처리

 

: 고팍스는 REST 요청에 대한 응답이 배열(array)의 형태로 반환되는 경우 커서 페이지 처리가 적용됩니다.

 

: 대부분의 엔드포인트는 기본적으로 최신 항목을 반환하며, 추가적인 결과를 가져오려는 경우에는 이미 반환된 데이터를 기준으로 처리하고자 하는 페이지의 방향을 명시해야 합니다.

 

 

이름 

 

기본값

설명 

 

pastmax

 

 

본 페이지 ID 뒤의 (오래된) 페이지를 요청함

 

lastestmin

 

 

본 페이지 ID 앞의 (새로운) 페이지를 요청함

 

limit

 

100 

각 요청에 포함되는 결과의 갯수 (최대 100 / 기본 100)

 

 

4. 타임스탬프

 

 

2018-01-01T01:02:04.123456z 

 

 

: API의 모든 타임스탬프는 ISO 8601 형식에 따라 microsecond 단위로 반환됩니다.

 

: 대부분의 현대적 프로그래밍 언어 및 라이브러리에서 해당 형식이 지원됩니다.

 

 

5. API 호출 횟수 제한

 

: API 호출 횟수 제한을 초과하면 429 - 너무 많은 요청 상태코드가 반환됩니다.

 

: Public API 는 IP 당, Private API 는 API Key 당 호출 횟수가 제한됩니다.

 

: 각각 최근 10초의 구간 안에서 최대 60번의 API 호출이 가능합니다.

 

 

6. Private API 인증

 

: Private API에 인증하기 위해, REST 요청에 항상 다음의 HTTP 헤더가 포함되어야 합니다.

 

 

1. API-KEY : 발급받은 API KEY

 

2. SIGNATURE : 메시지 서명 값 (아래 별도 기술)

 

3. NONCE : 중복되지 않고 계속 증가하는 값 (통상적으로 TIMESTAMP)

 

같은 NONCE 값이 사용되면 서버에서 거부합니다.

 

HTTP 본문의 content-type은 application/json 으로 설정해야 합니다.

 

 

SIGNATURE 는 다음 과정에 따라 생성합니다.

 

1. 다음의 내용을 순서대로 문자열로 연결합니다.

    1. 헤더의 NONCE 값

 

    2. 2.HTTP Method(대문자로): 'GET', 'POST', 'DELETE' 등

 

    3. API 엔드포인트 경로 (예: '/orders', '/trading-pairs/ETH-KRW/book')

 

    4. SON 형식의 요청 변수 본문 (없을 경우 아무 문자열도 연결하지 마십시오)

 

2. 발급 받은 secret 을 base64 로 디코딩합니다.

 

3. 2번의 값을 secret key 로 사용하여 sha512 HMAC 으로 서명합니다

 

4. 3번의 값을 base64 로 인코딩합니다.

 

 

아래는 node.js 예제입니다.

 

 

     var crypto = require('crypto');


     var secret = 'PYPd1Hv4J6/7x...';


     var nonce = Date.now() / 1000;


     var method = 'POST';


     var requestPath = '/orders';


     var body = JSON.stringify({
       type: 'limit',
       price: '1.0',
       amount: '1.0',
       side: 'buy',
       tradingPairName: 'ETH-KRW'
     });


     // 필수 정보를 연결하여 prehash 문자열을 생성함
     var what = nonce + method + requestPath + body;


     // base64로 secret을 디코딩함
     var key = Buffer(secret, 'base64');


     // secret으로 sha512 hmac을 생성함
     var hmac = crypto.createHmac('sha512', key);


     // hmac으로 필수 메시지에 서명하고
     // 그 결과물을 base64로 인코딩함
     return hmac.update(what).digest('base64');

 

 

 

 

REST API 호출 목록

 

 

1. 인증이 필요한 호출

 

 

1. 잔액 조회하기

 

요청

 

 

     GET /balances 

 

 

응답

 

 

 [
       {
         asset: 'KRW',
         avail: 10000000000,
         hold: 5000000,
         pendingWithdrawal: 5000000
       },
       ...
     ]

 

 

 

2. 자산 이름에 따라 잔액 조회하기

 

요청

 

 

     GET /balances/<asset-name>

 

 

응답

 

 

     {
       asset: 'KRW',
       avail: 10000000000,
       hold: 5000000,
       pendingWithdrawal: 5000000
     } 

 

 

 

3. 주문 조회하기

 

요청

 

 

     GET /orders 

 

 

Query String Parameter

 

 

이름

 

설명

 

trading-pair-name

 

[선택] 유효한 거래쌍 이름(ETH-KRW, BTC-KRW, ... ) 

 

응답

 

 

     [
       {
         id: 98723,
         price: 2986,
         amount: 9,
         tradingPairName: 'ETH-KRW',
         side: 'buy',
         type: 'limit',
         createdAt: '2016-12-08T20:02:28.53864Z' // ISO 8601 타임스탬프
       },
       ...
     ]

 

 

 

4. 주문 ID로 주문 조회하기

 

요청

 

 

     GET /orders/<order-id>

 

 

응답

 

 

     {
       id: 98723,
       status: 'placed' // placed, cancelled, completed, updated
       side: 'buy' // buy 또는 sell
       type: 'limit' // limit 또는 market
       price: 2986,
       amount: 9,
       remaining: 10,
       tradingPairName: 'ETH-KRW',
       createdAt: '2016-12-08T20:02:28.53864Z', // ISO 8601 타임스탬프
       updatedAt: '2016-12-08T20:02:28.53864Z', // ISO 8601 타임스탬프
     }

 

 

 

5. 주문 등록하기

 

요청

 

 

     POST /orders

 

 

요청 본문

 

 

     {
       type: 'limit' // limit 또는 market
       side: 'buy' // buy 또는 sell
       price: 2986,
       amount: 9,
       tradingPairName: 'ETH-KRW'
     }

 

 

 

응답

 

 

     {
       id: 98723,
       price: 2986,
       amount: 9,
       tradingPairName: 'ETH-KRW',
       side: 'buy',
       type: 'limit',
       createdAt: '2016-12-08T20:02:28.53864Z' // ISO 8601 타임스탬프
     }

 

 

주문에는 지정가(limit)와 시장가(market) 두 종류가 있습니다.

 

계정에 충분한 잔액이 있는 경우에만 주문을 등록할 수 있습니다.

 

주문이 등록되면, 주문의 지속기간 동안 계정의 해당 잔액이 홀드됩니다.

 

홀드되는 잔액의 종류 및 금액은 오더 종류 및 명시된 매개변수에 따라 결정됩니다.

 

 

6. 주문 ID로 주문 취소하기

 

요청

 

 

     DELETE /orders/<order-id>

 

 

응답

 

 

     {

     }

 

 

 

7. 사용자 거래 기록 조회하기

 

요청

 

 

     GET /trades

 

 

Query String Parameter

 

 

이름

 

설명

 

trading-pair-name

 

[선택] 유효한 거래쌍 이름(ETH-KRW, BTC-KRW, ... ) 

 

응답

 

 

     [
       { id: 4154562,
         orderId: 5323195,
         amount: 0.5315267,
         fee: 0.00079729,
         price: 101385,
         timestamp: 1504610614,
         side: 'buy',
         tradingPairName: 'BTC-KRW'
       },
       ...
     ]

 

 

 

2. 인증이 필요하지 않은 호출

 

 

1. 자산 조회하기

 

요청

 

 

     GET /assets

 

 

응답

 

 

     [
       {
         id: 'KRW',
         name: 'Korean Won'
       },
       {
         id: 'ETH',
         name: 'Ethereum'
       },
       ...
     ]

 

 

 

2. 특정 종목 조회하기

 

요청

 

 

     GET /trading-pairs

 

 

응답

 

 

     [
       {
         name: 'ETH-KRW',
         baseAsset: 'ETH',
         quoteAsset: 'KRW'
       },
       ...
     ]

 

 

 

3. 특정 종목의 거래량 조회하기

 

요청

 

 

     GET /trading-pairs/<trading-pair-name>/ticker
 

 

응답

 

 

     {
       price: 979,
       ask: 1303,
       bid: 985,
       volume: 3966,
       time: '2016-12-08T20:02:28.53864Z' // ISO 8601 타임스탬프
     }

 

 

 

4. 특정 종목의 호가창 조회하기

 

요청

 

 

     GET /trading-pairs/<trading-pair-name>/book

 

 

Query String Parameter

 

 

이름

 

설명

 

level

 

 

호가창의 상세정보 수준

 

1 = 매수호가 및 매도호가

 

2 = 매수 및 매도 주문 각 50개

 

기타 = 호가창 전체

 

 

응답

 

 

     {
       bid: [
         [1, 2937, 2326], // id, 가격, 수량
         [2, 262, 2066],
         ...
       ],
       ask: [
         [1, 2937, 2326], // id, 가격, 수량
         [2, 262, 2066],
         ...
       ]
     }

 

 

 

5. 최근 체결 거래 조회하기

 

요청

 

 

     GET /trading-pairs/<trading-pair-name>/trades

 

 

Query String Parameter

 

 

이름

 

설명

 

limit 

 

반환되는 항목의 갯수 (최대 100)

 

pastmax 

 

이 ID보다 오래된 데이터를 제외함

 

latestmin 

 

이 ID보다 새로운 최신 데이터를 가져옴

 

after 

 

이 TIMESTAMP 이후의 데이터를 제외함 (밀리 세컨드 단위)

 

before 

 

이 TIMESTAMP 이전의 데이터를 제외함 (밀리 세컨드 단위) 

 

응답

 

 

     {
       id: 28374,
       price: 6234,
       amount: 22,
       side: 'buy' // buy 또는 sell
       time: '2016-12-08T20:02:28.53864Z' // ISO 8601 timestamp
       latestmin: 3092, // next cursor id to fetch newer data
       pastmax: 3022, // next cursor id to fetch older data
     }

 

 

 

6. 특정 종목의 최근 24시간 통계 조회하기

 

요청

 

 

     GET /trading-pairs/<trading-pair-name>/stats

 

 

응답

 

 

     {
       open: 34.19000000,
       high: 95.70000000,
       low: 7.06000000,
       volume: 2.41000000
     }

 

 

 

7. 특정 종목의 과거 기록 조회하기

 

요청

 

 

     GET /trading-pairs/<trading-pair-name>/candles

 

 

Query String Parameter

 

 

이름

 

설명

 

start

 

시작 시점 (밀리 세컨드 단위)

 

end

 

종료 시점 (밀리 세컨드 단위) 

 

interval

 

희망하는 시간 간격 (분 단위)

 

 

응답

 

 

     {
       // time, low, high, open, close, volume
       [ 1504681856031, 9588, 10500, 10234, 10355, 2833.85258576 ],
       ...
     }

 

 

 

GoPax_API_Guide_Korean.zip

GoPax_API_Guide_English.zip

 

 

reference by GoPAX

 

 

Posted by 투자의神
시스템 성과 합산2018. 1. 11. 18:00

 

 

 

 

1월물 옵션 만기일입니다.

 

 

그러거나 말거나 올해 최강의 한파를 온몸으로 느껴보고 싶은 생각도 들고 과연 이런날 낚시하러 온 제정신 아닌 필자와 같은 사람이 얼마나 되는지도 궁금해서 출조를 감행했습니다.

 

 

강추위는 몸에 붙이는 핫팩과 손에 쥘 수 있는 손난로 그리고 가스 스토브로 충분히 견딜 수 있지만 사방에서 불어오는 바람에 원하는 지점에 채비 투척이 힘들기도 하고 바람에 이리저리로 흩날리는 줄을 제어하기가 상당히 힘들었습니다만 여러명이 둘러 앉아 회를 먹을만큼은 잡아 왔기에 뿌듯합니다.

 

 

그러는 사이 시스템은 손실 거래를 했네요.

 

 

시스템이 구동되는 것을 지켜보고 앉아 있더라도 어차피 손실이 났을테고 또 수익이 나는 날도 마찬가지입니다.

 

 

어차피 시스템에 개입해서 영영 운용을 중단할 것이 아니라면 시스템은 계속 구동되도록 놔두는 일 이외에 할 수 있는 일이 없으니 지켜볼 필요가 없겠지요.

 

 

그저 만기일이라 다른점은 옵션의 시간 가치가 급속도로 감소된 상태이기 때문에 매매에 참여하지 않을 가능성이 매우 낮다는 것, 지수의 작은 움직임에도 옵션에서는 강한 추세가 나타날 수도 있다는 것과 만약 어느쪽이든 한쪽 방향으로 강한 추세를 보인다면 2017년 05월 08일이나 08월 03일처럼 강한 쏠림으로 장초반부터 장마감까지 큰 폭의 원웨이 흐름이 발생하여 큰 수익을 기대할 수 있다는 점 이외에는 별로 없습니다.

 

 

 

▲ 위탁 받은 내용중 일부를 공개하기로 하였기에 공개합니다.

 

▲ 아직까지 수익이 크지는 않지만 눈덩이처럼 불어나서 위탁을 의뢰한 독자분께 기쁨이 되었으면 좋겠습니다.

 

▲ 여러 부분을 가렸지만 실현손익과 누적실현손익은 그대로 두었습니다.

 

▲ 매매 내역은 자칫 로직을 유추할 수도 있기 때문에 제외하였으나 필요시 증권사에서 직접 출력받고 증권사 직인이 찍힌 자료를 오프라인상에서 열람하게 해드릴 수 있습니다.

 

 

박상기 법무부 장관의 "가상통화 거래소 폐쇄 추진" 이슈로 각종 매체들이 뉴스를 쏟아내기 바쁘고 가상통화 거래소에 상장된 종목들의 가격조정 흐름이 나타났습니다.

 

 

 

 

▲ 빗썸에서 거래중인 각종 가상통화 시세 전광판입니다.

 

 

모든 시세의 움직임은 '기대감'과 '우려감'으로 움직입니다.

 

 

주식의 경우를 보더라도 시세가 상승하는 종목은 어떤 기대감이 형성되어 있기 때문이지 이미 좋은 실적을 보였기 때문이 아닙니다.

 

 

부동산도 마찬가지입니다.

 

 

기차, 지하철, 고속도로 등의 교통편이 신설되는 경우에 기대감이 커지고 장기적으로 시세가 상승하게 됩니다.

 

 

공항도 마찬가지입니다.

 

 

김해와 대구가 신공항을 놓고 갑론을박일때 지가에 대한 호가가 상당히 뛰었지만 신공항 결정이 난 뒤로는 큰 움직임이 없습니다.

 

 

개인적으로 "가상통화 거래소 폐쇄" 뉴스는 "최악의 경우 가상통화 거래소 폐쇄 등을 포함한 강력한 규제를 추진"하겠다 정도로 받아 들이고 있습니다.

 

 

그에 따른 우려감으로 가상통화의 가치가 하락하고 있는것이며 이런 부분은 '단기 조정'의 측면에서 언급한바가 있습니다.

 

 

위 가상통화 시세 전광판을 보면 대략 20~30%의 범위에서 조정세를 보이고 있는데요.

 

 

주식의 경우에도 하한가가 전일종가 대비 -30%이며 주식의 특성상 '미수거래', '신용거래'로 레버리지를 사용 했을 경우 단 하루만에도 파산이 가능합니다.

 

 

가상통화 거래가 덜 위험하다거나 주식투자가 더 위험하다는 말이 아니라 모든 투자는 잘못된 판단을 했을 경우 위험할 수 있다는 뜻입니다.

 

 

개인적으로는 단기 버블을 걷어내는 1차 가격 조정 국면에 들어서고 있다고 보고 있으며 이후 시간 조정을 거쳐 다시 시세 폭발의 시점이 오리라 생각합니다.

 

 

필자가 약 반년째 보유중인 비트코인은 이런 조정속에서도 여전히 수익 보유중이며 (약 500% 가량 수익중) "추세추종 옵션 알고리즘 자동매매 시스템" 등의 수익금중 일부를 인출하여 투자 한 것이므로 앞으로 추가적인 조정이 오더라도 진입가격을 훼손하지 않는다면 계속 보유 예정입니다.

 

 

또한 큰 폭의 가격 조정 흐름이 이어진다면 이미 보유중인 비트코인을 제외한 각 종목별로 1천만원씩 다수 종목에 분산 투자 할 용의도 있습니다.

 

 

어쨌거나 수익금중 일부이기 때문에 가능한 것이고 수익을 낼 수 있는 기회로 보기 때문이지 가상통화 거래를 독려하는 부분이 아닙니다.

 

 

혹여 1~2억원 손실 본다고 망할 일도 없지만 망해도 제 몫, 흥해도 제 몫인 것이지요.

 

 

투자자는 노이즈 속에서 올바른 정보를 찾고 또한 리스크 속에서 기회를 찾는 직업이라고 생각하기 때문에 여한은 없습니다.

 

 

결과는 두고 보면 알겠지요.

 

 

남은 시간도 평안하길 바라며 호가창에서 뵙겠습니다.

Posted by 투자의神
시스템 09호2018. 1. 11. 17:50

 

 

 

 

 

'시스템 09호' 카테고리의 다른 글

2018.01.15 - 시스템 09호  (0) 2018.01.15
2018.01.12 - 시스템 09호  (0) 2018.01.12
2018.01.10 - 시스템 09호  (0) 2018.01.10
2018.01.09 - 시스템 09호  (0) 2018.01.09
2018.01.08 - 시스템 09호  (0) 2018.01.08
Posted by 투자의神
시스템 08호2018. 1. 11. 17:40

 

 

 

 

 

'시스템 08호' 카테고리의 다른 글

2018.01.15 - 시스템 08호  (0) 2018.01.15
2018.01.12 - 시스템 08호  (0) 2018.01.12
2018.01.10 - 시스템 08호  (0) 2018.01.10
2018.01.09 - 시스템 08호  (0) 2018.01.09
2018.01.08 - 시스템 08호  (0) 2018.01.08
Posted by 투자의神
시스템 07호2018. 1. 11. 17:30

 

 

 

 

 

'시스템 07호' 카테고리의 다른 글

2018.01.15 - 시스템 07호  (0) 2018.01.15
2018.01.12 - 시스템 07호  (0) 2018.01.12
2018.01.10 - 시스템 07호  (0) 2018.01.10
2018.01.09 - 시스템 07호  (0) 2018.01.09
2018.01.08 - 시스템 07호  (0) 2018.01.08
Posted by 투자의神
시스템 06호2018. 1. 11. 17:20

 

 

 

 

 

'시스템 06호' 카테고리의 다른 글

2018.01.15 - 시스템 06호  (0) 2018.01.15
2018.01.12 - 시스템 06호  (0) 2018.01.12
2018.01.10 - 시스템 06호  (0) 2018.01.10
2018.01.09 - 시스템 06호  (0) 2018.01.09
2018.01.08 - 시스템 06호  (0) 2018.01.08
Posted by 투자의神
시스템 05호2018. 1. 11. 17:10

 

 

 

 

 

'시스템 05호' 카테고리의 다른 글

2018.01.15 - 시스템 05호  (0) 2018.01.15
2018.01.12 - 시스템 05호  (0) 2018.01.12
2018.01.10 - 시스템 05호  (0) 2018.01.10
2018.01.09 - 시스템 05호  (0) 2018.01.09
2018.01.08 - 시스템 05호  (0) 2018.01.08
Posted by 투자의神
시스템 04호2018. 1. 11. 17:00

 

 

 

 

 

'시스템 04호' 카테고리의 다른 글

2018.01.15 - 시스템 04호  (0) 2018.01.15
2018.01.12 - 시스템 04호  (0) 2018.01.12
2018.01.10 - 시스템 04호  (0) 2018.01.10
2018.01.09 - 시스템 04호  (0) 2018.01.09
2018.01.08 - 시스템 04호  (0) 2018.01.08
Posted by 투자의神
시스템 03호2018. 1. 11. 16:50

 

 

 

 

 

'시스템 03호' 카테고리의 다른 글

2018.01.15 - 시스템 03호  (0) 2018.01.15
2018.01.12 - 시스템 03호  (0) 2018.01.12
2018.01.10 - 시스템 03호  (0) 2018.01.10
2018.01.09 - 시스템 03호  (0) 2018.01.09
2018.01.08 - 시스템 03호  (0) 2018.01.08
Posted by 투자의神
시스템 02호2018. 1. 11. 16:40

 

 

 

 

 

'시스템 02호' 카테고리의 다른 글

2018.01.15 - 시스템 02호  (0) 2018.01.15
2018.01.12 - 시스템 02호  (0) 2018.01.12
2018.01.10 - 시스템 02호  (0) 2018.01.10
2018.01.09 - 시스템 02호  (0) 2018.01.09
2018.01.08 - 시스템 02호  (0) 2018.01.08
Posted by 투자의神