このエントリーをはてなブックマークに追加


Coincheckレバレッジ取引のポジション一覧を取得するサンプルコード(PHP)

PHPを使って Coincheck レバレッジ取引のポジション一覧(情報)を取得するPHPサンプルコードおよび実行結果を以下に記します。


当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。
当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。
あらかじめご了承ください。



スポンサーリンク

関連記事

ポジション一覧APIの仕様

ポジション一覧APIはPrivate APIのため、 Coincheck の口座開設が必要となります。

ポジションAPIの仕様(Coincheck APIページから抜粋)
https://coincheck.com/ja/documents/exchange/api#order-positions

ポジション一覧

レバレッジ取引のポジション一覧を表示します。レバレッジ取引の注文は 新規注文 から行えます。
HTTP REQUEST

GET /api/exchange/leverage/positions
PARAMETERS
    status "open", "closed" を指定できます。
<省略>
RESPONSE ITEMS
   id ID
   pair 取引ペア
   status ポジションの状態 ( "open", "closed" )
   created_at ポジションの作成日時
   closed_at ポジションの決済完了日時
   open_rate ポジションの平均取得価格
   closed_rate ポジションの平均決済価格
   amount 現在のポジションの数量(BTC)
   all_amount ポジションの数量(BTC)
   side ポジションの種類 ( "buy", "sell" )
   pl 利益
   new_order 新規注文についての情報
   close_orders 決済注文についての情報

新規注文APIサンプルソースを使用する前の準備

本サンプルソースには、$ACCESS_KEY, $SECRET_ACCESS_KEY にAPIキーを設定していません。
APIキーを準備してください。

// Please set ACCESS_KEY and SECRET_ACCESS_KEY
$ACCESS_KEY = "";
$SECRET_ACCESS_KEY = "";

APIキーの作成に関しては以下の記事を参考にしてください。

本サンプルコードを実行するには、APIキーのパーミッションとして「ポジション一覧」にチェックが必要です。

01.png
 

APIキーを作成すると、以下のスクリーンショットのように「アクセスキー」「アクセスシークレットキー」が作成されるので、
サンプルソースの $ACCESS_KEY, $SECRET_ACCESS_KEY に設定してください。

02.png
 

レバレッジ取引・ポジション取得PHPサンプルコード

以下にレバレッジ取引・ポジション取得のPHPサンプルコードを記します。

<?php
// API doc : https://coincheck.com/ja/documents/exchange/api#order-positions
// API url : https://coincheck.com/api/exchange/leverage/positions

// Please set ACCESS_KEY and SECRET_ACCESS_KEY
$ACCESS_KEY = "";
$SECRET_ACCESS_KEY = "";

// coincheck leverage positions api url
$url =  "https://coincheck.com/api/exchange/leverage/positions";

// proxy settings
$proxy      = ""; 
$proxy_port = ""; 

// check arguments
if (!check_arguments($argc, $argv)) {
    usage();
    exit(1);
}

if ($argc == 2) {
    $url = $url . "?status=" . $argv[1];
}

// create signature
$nonce = time();
$message = $nonce . $url;
$signature = hash_hmac("sha256", $message, $SECRET_ACCESS_KEY);

// header
$headers = array(
    "ACCESS-KEY: {$ACCESS_KEY}",
    "ACCESS-SIGNATURE: {$signature}",
    "ACCESS-NONCE: {$nonce}",
    );

$curl = curl_init();
if ($curl == FALSE) {
    fputs(STDERR, "[ERR] curl_init(): " . curl_error($curl) . PHP_EOL);
    die(1);
}
// set proxy server settings
if (!empty($proxy) && !empty($proxy_port)) {
    curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 1); 
    curl_setopt($curl, CURLOPT_PROXY, $proxy . ":" . $proxy_port);
    curl_setopt($curl, CURLOPT_PROXYPORT, $proxy_port);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($curl);
if ($response == FALSE) {
    fputs(STDERR, "[ERR] curl_exec(): " . curl_error($curl) . PHP_EOL);
    die(1);
}
curl_close($curl);

// json decode
$json_decode = json_decode($response, true);
if ($json_decode == NULL) {
    fputs(STDERR, "[ERR] json_decode(): " . json_last_error_msg() . PHP_EOL);
    die(1);
}

// output json_decode
print_r($json_decode);

exit(0);

//--------------------------------------------------
// functions
//--------------------------------------------------
function check_arguments($argc, $argv) {
    if (($argc != 1) and ($argc != 2)) { return FALSE; }
    if ($argc == 1) { return TRUE; }

    $opts = array("open", "closed");
    if (!in_array($argv[1], $opts)) { return FALSE; };
    return TRUE;
}

function usage() {
    print("Usage: php positions.php [open|closed]" . PHP_EOL .
          "    open   : show open positions." . PHP_EOL .
          "    closed : show closed postions." . PHP_EOL .
          "    nothing : show open and closed positions." . PHP_EOL
    );
}

サンプルコードの使い方

本サンプルコードのusageは以下の通りです。

Usage: php positions.php [open|closed]
    open   : show open positions.
    closed : show closed postions.
    nothing : show open and closed positions.

オプションは以下の通りです。

  • open
    オープンポジションを取得し表示します。
  • closed
    クローズポジションを取得し表示します。
  • オプションなし(コマンド引数なし)
    オプションポジション、クローズポジション両方を取得し表示します。

サンプルコード実行例

オープンポジション取得

オープンポジションの取得実行例です。
オプションにopenを渡して実行しました。

$ php positions.php open
Array
(
   [success] => 1
   [pagination] => Array
       (
           [limit] => 10
           [order] => desc
           [starting_after] => 
           [ending_before] => 
       )

   [data] => Array
       (
           [0] => Array
               (
                   [id] => 1111111
                   [pair] => btc_jpy
                   [status] => open
                   [created_at] => 2017-12-10T23:59:59.000Z
                   [closed_at] => 
                   [open_rate] => 1700000.0
                   [closed_rate] => 
                   [amount] => 0.005
                   [all_amount] => 0.005
                   [side] => buy
                   [pl] => 1234.1234
                   [new_order] => Array
                       (
                           [id] => 222222222
                           [side] => buy
                           [rate] => 
                           [amount] => 
                           [pending_amount] => 0
                           [status] => complete
                           [created_at] => 2017-12-10T23:59:59.000Z
                       )

                   [close_orders] => Array
                       (
                       )

               )
      )
)
  • Web画面
    03.png

クローズポジション取得

クローズポジションの取得実行例です。
オプションにclosedを渡して実行しました。

$ php positions.php closed
Array
(
   [success] => 1
   [pagination] => Array
       (
           [limit] => 10
           [order] => desc
           [starting_after] => 
           [ending_before] => 
       )

   [data] => Array
       (
<省略>
           [9] => Array
               (
                   [id] => 1234567
                   [pair] => btc_jpy
                   [status] => closed
                   [created_at] => 2017-12-08T01:48:39.000Z
                   [closed_at] => 2017-12-08T02:00:17.000Z
                   [open_rate] => 2060000.0
                   [closed_rate] => 1900000.0
                   [amount] => 0.0
                   [all_amount] => 0.009
                   [side] => buy
                   [pl] => -3000.123
                   [new_order] => Array
                       (
                           [id] => 123456789
                           [side] => buy
                           [rate] => 
                           [amount] => 0.009
                           [pending_amount] => 0
                           [status] => complete
                           [created_at] => 2017-12-08T01:48:38.000Z
                       )

                   [close_orders] => Array
                       (
                           [0] => Array
                               (
                                   [id] => 123123123
                                   [side] => sell
                                   [rate] => 
                                   [amount] => 0.009
                                   [pending_amount] => 0
                                   [status] => complete
                                   [created_at] => 2017-12-08T02:00:17.000Z
                               )
                       )
               )
       )
)

オプションなしの実行例

数が多いのでgrepにてstatusのみ抽出しました。
openとclosedの両方の情報が取得できます。

$ php positions.php  | grep -e open -e closed | grep status
                   [status] => open
                   [status] => closed
<省略>

以上、Coincheckのpositions APIをつかってレバレッジ取引・ポジション情報を取得するサンプルコードの紹介でした。


スポンサーリンク

添付ファイル: filepositions.php.zip 310件 [詳細] file03.png 313件 [詳細] file02.png 332件 [詳細] file01.png 324件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-12-11 (月) 23:40:54