API/coincheck/レバレッジ取引注文(PHP)
の編集
Top
/
API
/
coincheck
/
レバレッジ取引注文(PHP)
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
API
API/Bitfinex
API/Bitfinex/Tickerの取得(API v1)(PowerShell)
API/Bitfinex/ファンディング情報を取得する(API v1)(PowerShell)
API/Bitfinex/取引情報を取得する(API v1)(PowerShell)
API/Bitfinex/指定した通貨ペアの取引量を取得する(API v1)(PowerShell)
API/Bitfinex/板情報(注文一覧)を取得する(API v1)(PowerShell)
API/Bitfinex/通貨ペアのシンボル一覧の取得(API v1)(PowerShell)
API/bitFlyer
API/bitFlyer/Tickerの取得(PowerShell)
API/bitFlyer/マーケットの一覧の取得(PowerShell)
API/bitFlyer/板情報の取得(PowerShell)
API/coincheck
API/coincheck/APIキー生成手順
API/coincheck/ティッカー(PHP)
API/coincheck/ティッカー(PowerShell)
API/coincheck/ポジション一覧(PHP)
API/coincheck/レバレッジアカウントの残高取得
API/coincheck/レバレッジ取引注文(PHP)
API/coincheck/レート取得(PHP)
API/coincheck/全取引履歴(PHP)
API/coincheck/新規注文・現物売買(PHP)
API/coincheck/最近の取引履歴の取得(PHP)
API/coincheck/板情報(PHP)
API/coincheck/板情報の取得(PowerShell)
API/coincheck/残高確認(PHP)
API/coincheck/販売レート取得(PHP)
API/CoinExchange.io
API/CoinExchange.io/MarketID一覧を取得する・getmarkets(PowerShell)
API/CoinExchange.io/マーケットサマリ情報取得・getmarketsummaries(PowerShell)
API/CoinExchange.io/マーケット一覧情報取得・getmarkets(PowerShell)
API/CoinExchange.io/仮想通貨一覧を取得・getcurrencies(PowerShell)
API/CoinExchange.io/指定した通貨の通貨情報を取得する・getcurrency(PowerShell)
API/CoinExchange.io/指定した通貨ペアのマーケットサマリ情報を取得・getmarketsummary(PowerShell)
API/CoinExchange.io/指定した通貨ペアの売買注文一覧の取得・getorderbook(PowerShell)
API/GMOコイン
API/GMOコイン/銘柄の最新レートを取得(Bash)
API/GMOコイン/銘柄の最新レートを取得(PowerShell)
API/NEM(XEM)
API/NEM(XEM)/スーパーノード一覧を取得するサンプルコード(PHP)
API/NEM(XEM)/ハーベストの有効・無効状態を取得するサンプルコード(PHP)
API/zaif
API/zaif/APIキー生成手順
API/zaif/currencies(PHP)
API/zaif/currency_pairs(PHP)
API/zaif/currency_pairs・通貨ペア情報を取得する方法(PowerShell)
API/zaif/depth(PHP)
API/zaif/last_price(PHP)
API/zaif/ticker(PHP)
API/zaif/trades(PHP)
API/zaif/取引通貨一覧の取得(PHP)
API/zaif/新規注文・現物売買・trade(PHP)
API/zaif/残高確認・get_info, get_info2(PHP)
API/環境構築
AutoTicketLinkName
BracketName
FrontPage
ICO/COMSA
InterWiki
MenuBar
RecentDeleted
お約束
ウォレット
ウォレット/BRD,CoinbaseウォレットをElectrumウォレットに移行する手順
ウォレット/Bread walletをElectrumに移行する
ウォレット/Debian用に公開されたYenten-QTを動かしてみた
ウォレット/KotoウォレットをDebian, Ubuntu系にインストール
ウォレット/Nano Wallet
ウォレット/SHIELD-QT v3ウォレットで残高がおかしい場合の対処方法
プライバシーポリシー
マイニング
マイニング/CentOSでBitZenyをマイニング
マイニング/CentOSでYentenをマイニングする
マイニング/cpuminerとUbuntuでモナーコインを採掘してみる
マイニング/GUIでマイニング・MinerGate
マイニング/UbuntuでBitZenyをマイニング
マイニング/UbuntuとGPU(NVIDIA)でMonaコインをマイニングしてみる
マイニング/Windows64bitマシンでモナーコインを採掘してみる
マイニング/WindowsでZcashをマイニング
仮想通貨サイト
仮想通貨取引所
仮想通貨取引所/2段階認証のバックアップ
仮想通貨取引所/Poloniex登録方法
最初にお読みください
用語集
#navi(../) * coincheckの新規注文API(orders)のレバレッジ取引注文サンプルコード(PHP) [#k23179a6] PHPを使って&htmlinsert(coincheck.html);のBTC現物注文・[[新規注文API>https://coincheck.com/ja/documents/exchange/api#order-new]]のサンプルコードを以下に記します。 ---- &color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。}; ---- #contents #htmlinsert(cc-top.html) * 関連記事 [#w97fc32f] -[[API動作環境構築>API/環境構築]] -[[ティッカー(PHP)>API/coincheck/ティッカー(PHP)]] -[[全取引履歴(PHP)>API/coincheck/全取引履歴(PHP)]] -[[板情報(PHP)>API/coincheck/板情報(PHP)]] -[[レート取得(PHP)>API/coincheck/レート取得(PHP)]] -[[販売レート取得(PHP)>API/coincheck/販売レート取得(PHP)]] -[[CoincheckのAPIキー生成手順>API/coincheck/APIキー生成手順]] -[[アカウントの残高確認(PHP)>API/coincheck/残高確認(PHP)]] -[[新規注文・現物売買(PHP)>API/coincheck/新規注文・現物売買(PHP)]] -[[レバレッジアカウントの残高サンプル(PHP)>API/coincheck/レバレッジアカウントの残高取得]] -[[レバレッジ取引注文サンプルコード(PHP)>API/coincheck/レバレッジ取引注文(PHP)]] -[[レバレッジ取引のポジション一覧を取得する・positions(PHP)>API/coincheck/ポジション一覧(PHP)]] -[[最近の取引履歴を取得する(PHP)>API/coincheck/最近の取引履歴の取得(PHP)]] * 新規注文APIの仕様 [#l5cefc6a] 残高APIはPrivate APIのため、&htmlinsert(coincheck.html);の口座開設が必要となります。~ 本PHPサンプルコードでは、BTCのレバレッジ取引のサンプルコードを公開しています。~ order_typeをレバレッジ取引にした程度で、現物の新規注文とほとんど同じサンプルコードとなります。 -[[新規注文・現物売買(PHP)>API/coincheck/新規注文・現物売買(PHP)]] ''新規注文APIの仕様''(Coincheck APIページから抜粋)~ 新規注文 取引所に新規注文を発行します。 たとえば、10 BTC を 30000 JPY/BTC で買いたい場合は、以下のように指定します。 rate: 30000, amount: 10, order_type: "buy", pair: "btc_jpy" 買い注文の場合、指定した価格よりも低い価格での売り注文が既に存在していれば、その売り注文を安い順に決済します。売り注文が足りなかった場合は未決済の注文として残ります。売り注文の場合も同様です。 注文方法について order_type は全部で8つあります。 "buy" 指値注文 現物取引 買い "sell" 指値注文 現物取引 売り "market_buy" 成行注文 現物取引 買い "market_sell" 成行注文 現物取引 売り "leverage_buy" 指値注文 レバレッジ取引新規 買い "leverage_sell" 指値注文 レバレッジ取引新規 売り "close_long" 指値注文 レバレッジ取引決済 売り "close_short" 指値注文 レバレッジ取引決済 買い <省略> POST /api/exchange/orders PARAMETERS *pair 取引ペア。現在は "btc_jpy" のみです。 *order_type 注文方法 rate 注文のレート。(例)28000 amount 注文での量。(例)0.1 market_buy_amount 成行買で利用する日本円の金額。(例)10000 position_id 決済するポジションのID stop_loss_rate 逆指値レート ( 逆指値とは? ) <省略> * 新規注文APIサンプルソースを使用する前の準備 [#x9be2781] 本サンプルソースには、$ACCESS_KEY, $SECRET_ACCESS_KEY にAPIキーを設定していません。~ APIキーを準備してください。~ // Please set ACCESS_KEY and SECRET_ACCESS_KEY $ACCESS_KEY = ""; $SECRET_ACCESS_KEY = ""; APIキーの作成に関しては以下の記事を参考にしてください。~ -[[CoincheckのAPIキー生成手順>API/coincheck/APIキー生成手順]] 本サンプルソースを実行するには、APIキーのパーミッションとして「新規注文」にチェックが必要です。~ #ref(01.png) #br APIキーを作成すると、以下のスクリーンショットのように「アクセスキー」「アクセスシークレットキー」が作成されるので、~ サンプルソースの $ACCESS_KEY, $SECRET_ACCESS_KEY に設定してください。 #ref(02.png) #br * レバレッジ取引(BTC/JPY) PHPサンプルソース [#p3f20721] 以下に&htmlinsert(coincheck.html);の残高APIを呼び出すサンプルソースを記します~ 上記に記述しましたが、「アクセスキー」「アクセスシークレットキー」を準備してください。 このサンプルコードでは、注文入力を行い(leverage_order_ui.php)、レバレッジ注文を行う(leverage_order.php)の2つのサンプルコードファイルから構成されています。~ また、新規注文を行う(leverage_order.php)サンプルコードでは、POSTするデータ形式をクエリー文字列または、JSONを選択できるようになっています。~ POSTする注文内容は、クエリー文字列でもJSONでも問題なく動作しました。~ JSONの場合は、ヘッダーに Content-Type: application/json が必要になります。 ** レバレッジ取引注文入力 [#acef3cc6] #ref(src.zip) leverage_order_ui.phpはBTCの数量、価格等を入力するファインクション群のサンプルコードです。 - leverage_order_ui.php <?php //---------------------------------------- // leverage order ui functions //---------------------------------------- function leverage_order_ui() { $rate = input_rate(); $amount = input_amount(); $order_type = input_leverage_buy_sell(); printf( "Rate[BTC/JPY] : %d" . PHP_EOL . "Amount[BTC] : %f" . PHP_EOL . "Price[JPY] : %f" . PHP_EOL . "Order type : %s" . PHP_EOL , $rate, $amount, $rate*$amount, $order_type); if(!yes_no_quit()) { die(0); } $order = array('rate'=>$rate, 'amount'=>$amount, 'order_type'=>$order_type); return $order; } //---------------------------------------- function input_amount() { while(TRUE) { print("Amount[BTC](quit if empty): "); $n = trim(fgets(STDIN)); if(empty($n)) { print("Quit." . PHP_EOL); die(0); } elseif(!is_numeric($n)) { printf("[ERROR] " . $n . " is not numeric." . PHP_EOL); } else { break; } } return $n; } //---------------------------------------- function input_rate() { while(TRUE) { print("Rate[BTC/JPY](quit if empty): "); $rate = trim(fgets(STDIN)); if(empty($rate)) { print("Quit." . PHP_EOL); die(0); } elseif(!ctype_digit($rate)) { printf("[ERROR] " . $rate . " is not integer." . PHP_EOL); } else { break; } } return $rate; } //---------------------------------------- function input_leverage_buy_sell() { while(TRUE) { print("Order type [long/short](quit if empty): "); $type = trim(fgets(STDIN)); if(empty($type)) { print("Quit." . PHP_EOL); die(0); } elseif(!strcasecmp($type, "short")) { $type = "leverage_sell"; break; } elseif(!strcasecmp($type, "long")) { $type = "leverage_buy"; break; } else { print("Please check the input." . PHP_EOL); } } return strtolower($type); } //---------------------------------------- function yes_no_quit() { while (TRUE) { print("OK? [yes/no/quit] :"); $ok = trim(fgets(STDIN)); if(!strcasecmp($ok, "yes")) { $ok = TRUE; break; } elseif(!strcasecmp($ok, "no")) { print("Order canceled." . PHP_EOL); $ok = FALSE; break; } elseif(!strcasecmp($ok, "quit")) { print("Quit." . PHP_EOL); $ok = FALSE; break; } else { print("Please check the input." . PHP_EOL); } } return $ok; } ** BTC/JPYレバレッジ取引注文・サンプルコード [#q2e42e1e] 以下のサンプルコードでは、上記のleverage_order_ui.phpを呼び出し、レバレッジ注文内容を入力後、~ BTC/JPYのレバレッジ売買発注を行うサンプルコードになります。 #ref(src.zip) - leverage_order.php <?php // API doc : https://coincheck.com/ja/documents/exchange/api#order-new // API url : https://coincheck.com/api/exchange/orders // order ui require("./leverage_order_ui.php"); // Please set ACCESS_KEY and SECRET_ACCESS_KEY $ACCESS_KEY = ""; $SECRET_ACCESS_KEY = ""; // BTC/JPY only $currency_pair = "btc_jpy"; // proxy settings $proxy = ""; $proxy_port = ""; // coincheck order api url $url = "https://coincheck.com/api/exchange/orders"; // Post data type $json = FALSE; // $json ? POST data is JSON : POST data is Query string // input order $order = leverage_order_ui(); // post data $postdata_array = array( "rate" => $order["rate"], "amount" => $order["amount"], "order_type" => $order["order_type"], "pair" => $currency_pair); if($json) { $postdata = json_encode($postdata_array); // POST data is JSON } else { $postdata = http_build_query($postdata_array); // POST data is Query string } // create signature $nonce = time(); $message = $nonce . $url . $postdata; $signature = hash_hmac("sha256", $message, $SECRET_ACCESS_KEY); // header $headers = array( "ACCESS-KEY: {$ACCESS_KEY}", "ACCESS-SIGNATURE: {$signature}", "ACCESS-NONCE: {$nonce}", ); if ($json) { // $json ? POST data is JSON : POST data is Query string array_push($headers, "Content-Type: application/json"); } $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); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); $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); * 実行結果 [#p5659bff] 以下に、上記サンプルコードを実行した結果を記します。 ** Long(買い)注文 [#h6f3d914] レバレッジLongの注文内容を入力している時の出力です。 $ php leverage_order.php Rate[BTC/JPY](quit if empty): 1500000 Amount[BTC](quit if empty): 0.005 Order type [long/short](quit if empty): long Rate[BTC/JPY] : 1500000 Amount[BTC] : 0.005000 Price[JPY] : 7500.000000 Order type : leverage_buy OK? [yes/no/quit] :yes 以下、yesを入力しEnterキーを押すことによりレバレッジ注文(long)が発注されました。 Array ( [success] => 1 [id] => 111111111 [amount] => 0.005 [rate] => 1500000.0 [order_type] => leverage_buy [pair] => btc_jpy [created_at] => 2017-12-12T15:15:15.100Z [market_buy_amount] => [stop_loss_rate] => ) 以下、&htmlinsert(coincheck.html);のWeb画面です。~ 発注されているのが確認できます。~ &color(red){もちろんWebページでキャンセル可能です。}; #ref(03.png) ** Short(売り)注文 [#mdd3ec5b] $ php leverage_order.php Rate[BTC/JPY](quit if empty): 1900000 Amount[BTC](quit if empty): 0.005 Order type [long/short](quit if empty): short Rate[BTC/JPY] : 1900000 Amount[BTC] : 0.005000 Price[JPY] : 9500.000000 Order type : leverage_sell OK? [yes/no/quit] :yes 以下、yesを入力しEnterキーを押すことによりレバレッジ(short)注文が発注されました。 Array ( [success] => 1 [id] => 111111112 [amount] => 0.005 [rate] => 1900000.0 [order_type] => leverage_sell [pair] => btc_jpy [created_at] => 2017-12-12T13:13:13.500Z [market_buy_amount] => [stop_loss_rate] => ) 以下、&htmlinsert(coincheck.html);のWeb画面です。~ 発注されているのが確認できます。~ &color(red){もちろんWebページでキャンセル可能です。}; #ref(04.png) * 新規注文APIのエラーについて [#fc98ccc8] 以下によく発生すると思われるエラーについて記します。 ** invalid authentication エラーになった場合 [#x6b88283] 以下のようにERRORが出た場合は、APIキーの設定に誤りがないか確認してください。 $ php balance.php [ERROR] : invalid authentication ** This api is not permitted... エラーになった場合 [#o3df32d2] APIキーの設定を確認してください。~ 新規注文にチェックが入っていないためパーミッションエラーとなっています。 $ php balance.php [ERROR] : This api is not permitted, Please set permission. https://coincheck.com/api_settings ** 注文エラー [#ue9aafe4] その他にも以下のように数量不足や残高不足などのエラーも出力されます。 -最低量を下回っている場合のエラー出力 $ php leverage_order.php Rate[BTC/JPY](quit if empty): 1600000 Amount[BTC](quit if empty): 0.001 Order type [long/short](quit if empty): long Rate[BTC/JPY] : 1600000 Amount[BTC] : 0.001000 Price[JPY] : 1600.000000 Order type : leverage_buy OK? [yes/no/quit] :yes Array ( [success] => [error] => Amount 注文量が最低量(0.005 BTC)を下回っています ) -所持金が足りない場合のエラー出力 $ php leverage_order.php Rate[BTC/JPY](quit if empty): 1700000 Amount[BTC](quit if empty): 1 Order type [long/short](quit if empty): short Rate[BTC/JPY] : 1700000 Amount[BTC] : 1.000000 Price[JPY] : 1700000.000000 Order type : leverage_sell OK? [yes/no/quit] :yes Array ( [success] => [error] => Amount insufficient balance ) 以上、&htmlinsert(coincheck.html);の新規注文APIを使ってBTC/JPYレバレッジ注文をするサンプルコードおよび実行結果でした。 #htmlinsert(cc-btm.html)
タイムスタンプを変更しない
#navi(../) * coincheckの新規注文API(orders)のレバレッジ取引注文サンプルコード(PHP) [#k23179a6] PHPを使って&htmlinsert(coincheck.html);のBTC現物注文・[[新規注文API>https://coincheck.com/ja/documents/exchange/api#order-new]]のサンプルコードを以下に記します。 ---- &color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。}; ---- #contents #htmlinsert(cc-top.html) * 関連記事 [#w97fc32f] -[[API動作環境構築>API/環境構築]] -[[ティッカー(PHP)>API/coincheck/ティッカー(PHP)]] -[[全取引履歴(PHP)>API/coincheck/全取引履歴(PHP)]] -[[板情報(PHP)>API/coincheck/板情報(PHP)]] -[[レート取得(PHP)>API/coincheck/レート取得(PHP)]] -[[販売レート取得(PHP)>API/coincheck/販売レート取得(PHP)]] -[[CoincheckのAPIキー生成手順>API/coincheck/APIキー生成手順]] -[[アカウントの残高確認(PHP)>API/coincheck/残高確認(PHP)]] -[[新規注文・現物売買(PHP)>API/coincheck/新規注文・現物売買(PHP)]] -[[レバレッジアカウントの残高サンプル(PHP)>API/coincheck/レバレッジアカウントの残高取得]] -[[レバレッジ取引注文サンプルコード(PHP)>API/coincheck/レバレッジ取引注文(PHP)]] -[[レバレッジ取引のポジション一覧を取得する・positions(PHP)>API/coincheck/ポジション一覧(PHP)]] -[[最近の取引履歴を取得する(PHP)>API/coincheck/最近の取引履歴の取得(PHP)]] * 新規注文APIの仕様 [#l5cefc6a] 残高APIはPrivate APIのため、&htmlinsert(coincheck.html);の口座開設が必要となります。~ 本PHPサンプルコードでは、BTCのレバレッジ取引のサンプルコードを公開しています。~ order_typeをレバレッジ取引にした程度で、現物の新規注文とほとんど同じサンプルコードとなります。 -[[新規注文・現物売買(PHP)>API/coincheck/新規注文・現物売買(PHP)]] ''新規注文APIの仕様''(Coincheck APIページから抜粋)~ 新規注文 取引所に新規注文を発行します。 たとえば、10 BTC を 30000 JPY/BTC で買いたい場合は、以下のように指定します。 rate: 30000, amount: 10, order_type: "buy", pair: "btc_jpy" 買い注文の場合、指定した価格よりも低い価格での売り注文が既に存在していれば、その売り注文を安い順に決済します。売り注文が足りなかった場合は未決済の注文として残ります。売り注文の場合も同様です。 注文方法について order_type は全部で8つあります。 "buy" 指値注文 現物取引 買い "sell" 指値注文 現物取引 売り "market_buy" 成行注文 現物取引 買い "market_sell" 成行注文 現物取引 売り "leverage_buy" 指値注文 レバレッジ取引新規 買い "leverage_sell" 指値注文 レバレッジ取引新規 売り "close_long" 指値注文 レバレッジ取引決済 売り "close_short" 指値注文 レバレッジ取引決済 買い <省略> POST /api/exchange/orders PARAMETERS *pair 取引ペア。現在は "btc_jpy" のみです。 *order_type 注文方法 rate 注文のレート。(例)28000 amount 注文での量。(例)0.1 market_buy_amount 成行買で利用する日本円の金額。(例)10000 position_id 決済するポジションのID stop_loss_rate 逆指値レート ( 逆指値とは? ) <省略> * 新規注文APIサンプルソースを使用する前の準備 [#x9be2781] 本サンプルソースには、$ACCESS_KEY, $SECRET_ACCESS_KEY にAPIキーを設定していません。~ APIキーを準備してください。~ // Please set ACCESS_KEY and SECRET_ACCESS_KEY $ACCESS_KEY = ""; $SECRET_ACCESS_KEY = ""; APIキーの作成に関しては以下の記事を参考にしてください。~ -[[CoincheckのAPIキー生成手順>API/coincheck/APIキー生成手順]] 本サンプルソースを実行するには、APIキーのパーミッションとして「新規注文」にチェックが必要です。~ #ref(01.png) #br APIキーを作成すると、以下のスクリーンショットのように「アクセスキー」「アクセスシークレットキー」が作成されるので、~ サンプルソースの $ACCESS_KEY, $SECRET_ACCESS_KEY に設定してください。 #ref(02.png) #br * レバレッジ取引(BTC/JPY) PHPサンプルソース [#p3f20721] 以下に&htmlinsert(coincheck.html);の残高APIを呼び出すサンプルソースを記します~ 上記に記述しましたが、「アクセスキー」「アクセスシークレットキー」を準備してください。 このサンプルコードでは、注文入力を行い(leverage_order_ui.php)、レバレッジ注文を行う(leverage_order.php)の2つのサンプルコードファイルから構成されています。~ また、新規注文を行う(leverage_order.php)サンプルコードでは、POSTするデータ形式をクエリー文字列または、JSONを選択できるようになっています。~ POSTする注文内容は、クエリー文字列でもJSONでも問題なく動作しました。~ JSONの場合は、ヘッダーに Content-Type: application/json が必要になります。 ** レバレッジ取引注文入力 [#acef3cc6] #ref(src.zip) leverage_order_ui.phpはBTCの数量、価格等を入力するファインクション群のサンプルコードです。 - leverage_order_ui.php <?php //---------------------------------------- // leverage order ui functions //---------------------------------------- function leverage_order_ui() { $rate = input_rate(); $amount = input_amount(); $order_type = input_leverage_buy_sell(); printf( "Rate[BTC/JPY] : %d" . PHP_EOL . "Amount[BTC] : %f" . PHP_EOL . "Price[JPY] : %f" . PHP_EOL . "Order type : %s" . PHP_EOL , $rate, $amount, $rate*$amount, $order_type); if(!yes_no_quit()) { die(0); } $order = array('rate'=>$rate, 'amount'=>$amount, 'order_type'=>$order_type); return $order; } //---------------------------------------- function input_amount() { while(TRUE) { print("Amount[BTC](quit if empty): "); $n = trim(fgets(STDIN)); if(empty($n)) { print("Quit." . PHP_EOL); die(0); } elseif(!is_numeric($n)) { printf("[ERROR] " . $n . " is not numeric." . PHP_EOL); } else { break; } } return $n; } //---------------------------------------- function input_rate() { while(TRUE) { print("Rate[BTC/JPY](quit if empty): "); $rate = trim(fgets(STDIN)); if(empty($rate)) { print("Quit." . PHP_EOL); die(0); } elseif(!ctype_digit($rate)) { printf("[ERROR] " . $rate . " is not integer." . PHP_EOL); } else { break; } } return $rate; } //---------------------------------------- function input_leverage_buy_sell() { while(TRUE) { print("Order type [long/short](quit if empty): "); $type = trim(fgets(STDIN)); if(empty($type)) { print("Quit." . PHP_EOL); die(0); } elseif(!strcasecmp($type, "short")) { $type = "leverage_sell"; break; } elseif(!strcasecmp($type, "long")) { $type = "leverage_buy"; break; } else { print("Please check the input." . PHP_EOL); } } return strtolower($type); } //---------------------------------------- function yes_no_quit() { while (TRUE) { print("OK? [yes/no/quit] :"); $ok = trim(fgets(STDIN)); if(!strcasecmp($ok, "yes")) { $ok = TRUE; break; } elseif(!strcasecmp($ok, "no")) { print("Order canceled." . PHP_EOL); $ok = FALSE; break; } elseif(!strcasecmp($ok, "quit")) { print("Quit." . PHP_EOL); $ok = FALSE; break; } else { print("Please check the input." . PHP_EOL); } } return $ok; } ** BTC/JPYレバレッジ取引注文・サンプルコード [#q2e42e1e] 以下のサンプルコードでは、上記のleverage_order_ui.phpを呼び出し、レバレッジ注文内容を入力後、~ BTC/JPYのレバレッジ売買発注を行うサンプルコードになります。 #ref(src.zip) - leverage_order.php <?php // API doc : https://coincheck.com/ja/documents/exchange/api#order-new // API url : https://coincheck.com/api/exchange/orders // order ui require("./leverage_order_ui.php"); // Please set ACCESS_KEY and SECRET_ACCESS_KEY $ACCESS_KEY = ""; $SECRET_ACCESS_KEY = ""; // BTC/JPY only $currency_pair = "btc_jpy"; // proxy settings $proxy = ""; $proxy_port = ""; // coincheck order api url $url = "https://coincheck.com/api/exchange/orders"; // Post data type $json = FALSE; // $json ? POST data is JSON : POST data is Query string // input order $order = leverage_order_ui(); // post data $postdata_array = array( "rate" => $order["rate"], "amount" => $order["amount"], "order_type" => $order["order_type"], "pair" => $currency_pair); if($json) { $postdata = json_encode($postdata_array); // POST data is JSON } else { $postdata = http_build_query($postdata_array); // POST data is Query string } // create signature $nonce = time(); $message = $nonce . $url . $postdata; $signature = hash_hmac("sha256", $message, $SECRET_ACCESS_KEY); // header $headers = array( "ACCESS-KEY: {$ACCESS_KEY}", "ACCESS-SIGNATURE: {$signature}", "ACCESS-NONCE: {$nonce}", ); if ($json) { // $json ? POST data is JSON : POST data is Query string array_push($headers, "Content-Type: application/json"); } $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); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); $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); * 実行結果 [#p5659bff] 以下に、上記サンプルコードを実行した結果を記します。 ** Long(買い)注文 [#h6f3d914] レバレッジLongの注文内容を入力している時の出力です。 $ php leverage_order.php Rate[BTC/JPY](quit if empty): 1500000 Amount[BTC](quit if empty): 0.005 Order type [long/short](quit if empty): long Rate[BTC/JPY] : 1500000 Amount[BTC] : 0.005000 Price[JPY] : 7500.000000 Order type : leverage_buy OK? [yes/no/quit] :yes 以下、yesを入力しEnterキーを押すことによりレバレッジ注文(long)が発注されました。 Array ( [success] => 1 [id] => 111111111 [amount] => 0.005 [rate] => 1500000.0 [order_type] => leverage_buy [pair] => btc_jpy [created_at] => 2017-12-12T15:15:15.100Z [market_buy_amount] => [stop_loss_rate] => ) 以下、&htmlinsert(coincheck.html);のWeb画面です。~ 発注されているのが確認できます。~ &color(red){もちろんWebページでキャンセル可能です。}; #ref(03.png) ** Short(売り)注文 [#mdd3ec5b] $ php leverage_order.php Rate[BTC/JPY](quit if empty): 1900000 Amount[BTC](quit if empty): 0.005 Order type [long/short](quit if empty): short Rate[BTC/JPY] : 1900000 Amount[BTC] : 0.005000 Price[JPY] : 9500.000000 Order type : leverage_sell OK? [yes/no/quit] :yes 以下、yesを入力しEnterキーを押すことによりレバレッジ(short)注文が発注されました。 Array ( [success] => 1 [id] => 111111112 [amount] => 0.005 [rate] => 1900000.0 [order_type] => leverage_sell [pair] => btc_jpy [created_at] => 2017-12-12T13:13:13.500Z [market_buy_amount] => [stop_loss_rate] => ) 以下、&htmlinsert(coincheck.html);のWeb画面です。~ 発注されているのが確認できます。~ &color(red){もちろんWebページでキャンセル可能です。}; #ref(04.png) * 新規注文APIのエラーについて [#fc98ccc8] 以下によく発生すると思われるエラーについて記します。 ** invalid authentication エラーになった場合 [#x6b88283] 以下のようにERRORが出た場合は、APIキーの設定に誤りがないか確認してください。 $ php balance.php [ERROR] : invalid authentication ** This api is not permitted... エラーになった場合 [#o3df32d2] APIキーの設定を確認してください。~ 新規注文にチェックが入っていないためパーミッションエラーとなっています。 $ php balance.php [ERROR] : This api is not permitted, Please set permission. https://coincheck.com/api_settings ** 注文エラー [#ue9aafe4] その他にも以下のように数量不足や残高不足などのエラーも出力されます。 -最低量を下回っている場合のエラー出力 $ php leverage_order.php Rate[BTC/JPY](quit if empty): 1600000 Amount[BTC](quit if empty): 0.001 Order type [long/short](quit if empty): long Rate[BTC/JPY] : 1600000 Amount[BTC] : 0.001000 Price[JPY] : 1600.000000 Order type : leverage_buy OK? [yes/no/quit] :yes Array ( [success] => [error] => Amount 注文量が最低量(0.005 BTC)を下回っています ) -所持金が足りない場合のエラー出力 $ php leverage_order.php Rate[BTC/JPY](quit if empty): 1700000 Amount[BTC](quit if empty): 1 Order type [long/short](quit if empty): short Rate[BTC/JPY] : 1700000 Amount[BTC] : 1.000000 Price[JPY] : 1700000.000000 Order type : leverage_sell OK? [yes/no/quit] :yes Array ( [success] => [error] => Amount insufficient balance ) 以上、&htmlinsert(coincheck.html);の新規注文APIを使ってBTC/JPYレバレッジ注文をするサンプルコードおよび実行結果でした。 #htmlinsert(cc-btm.html)
テキスト整形のルールを表示する
添付ファイル:
04.png
407件
[
詳細
]
03.png
603件
[
詳細
]
02.png
606件
[
詳細
]
01.png
436件
[
詳細
]
src.zip
358件
[
詳細
]