CCXTライブラリでBitflyerに注文を出す方法をマスターするさて、前々回の記事ではBitflyerのAPIを使って買い注文を出す方法を紹介しました。このとき注文を出すだけでも結構長いコードを書かなければならなかったのを覚えているでしょうか?CCXTライブラリを使えば、これを1行で書くことができます。最低注文単位は0.01BTCからです。現在(2018年4月)のレートでいうと9000円くらいですね。そのため、口座には最低1万円以上の資金が必要です。今回はレバレッジ無しで最低単位の注文をします。一応テストなので、約定しないように注意しながら、現在価格から10%以上離れた場所に指値を入れます。それをキャンセルするところまでプログラムしてみます。bitFlyerのアカウント登録がまだの方は、ぜひこちらから登録してください。2018年4月から最低注文単位が0.01BTCに引き上げられました。この記事はそれ以前に作成したものなので、画像が0.001BTCのままになっています。文字部分は修正しています。現在のBTC-FX価格を取得する前々回の記事では、BTC-FXの画面にログインして目視で価格を確認しました。今回はより本格的に、価格を調べるところもすべてPythonのプログラムでやりましょう。エディタを起動して以下のように記載してください。})pprint(ticker)コードの解説1行目と2行目でccxtライブラリとpprintライブラリをimportします。これは前回の記事と同じですね。pprintライブラリは配列を綺麗に表示するために使います。ccxt.bitflyer()」は、ビットフライヤーで関数を使うために必ず最初に書かなければならないコードです。準備のようなものだと思ってください。4行目でティッカー情報を取得しています。学んだように、ティッカー情報の取得はパブリックAPIなので、この時点ではAPIキーやシークレットは必要ありません。Bitflyerの場合は、FXでは「product_code」を「FX_BTC_JPY」に指定するのを忘れないようにしてください。黒い画面に表示しています。実行結果それでは、上記のコードをpythonファイルで保存して、Anacondaプロンプトで実行してみましょう。以下のように表示されました。None}この中で、最終取引価格(=現在価格)だけ知りたければ、「last」の部分を見ればOKです。この記事の執筆時点では、903111円(90万3111円)ですね。bid(買い板の中の最高価格)を見てもいいです。売買BOTのアルゴリズムで買いシグナルが出た場合、指値注文を入れるのであれば、この「bid」か「last」のどちらかの価格で指値を入れることが多いと思います。この取得したJSONデータから最終取引価格(last)だけ取り出したければ、先ほどのpythonのプログラムの5行目を以下のように書けばOKです。)これは「JSON形式のデータから欲しい数字だけを取り出そう!」の復習なので、わからない方はこちらを読んでください。FXの証拠金残高を確認する次にポジション管理のために、FXの証拠金残高などを取得してみましょう。エディタに以下のコードを書いてください。今回はプライベートAPIを使うので、APIキーとAPIシークレットを準備する必要があります。4行目・5行目の’**********’の部分に各自のAPIキー・シークレットをそれぞれ入力してください。証拠金残高を取得する共通の関数がありません。そのため、ここではBitflyerの「v1/me/getcollateral」というAPIを使っています。(collateralは英語で「担保」という意味です)。BitflyerのAPIドキュメントこのようにCCXTライブラリでは、共通のメソッドが見つからない場合に、各取引所で個別に提供されているAPIを、直接使うこともできます。具体的な方法については、以下の記事で紹介しています。他の場面でも困ったら参考にしてみてください。コードをAnacondaプロンプトで実行してみましょう。以下のような結果が表示されます。・預入証拠金の評価額(collateral)・ポジションの評価損益(open_position_pnl)・現在の必要証拠金(require_collateral)・現在の証拠金維持率(keep_rate)です。自動売買BOTでは、証拠金の残高から取得可能なポジションのサイズを自動計算させて、可変ロットで注文を出すこともできます。この方法は第7回の「資金管理編」で詳しく解説するので楽しみにしていてください。初心者の方は、まずは固定ロット(0.1BTCなど)でちゃんと売買できるようになりましょう!買い注文を出す今回はテストなので、最終取引価格が90万円のところ、10%以上離して80万円で買い指値を入れてみます。数量は最低単位の0.01BTCにします。注文には、「create_order()」というCCXTの共通の関数を使います。エディタを起動して以下のコードを書いてください。出すための関数、買い注文・売り注文を出すための関数もありますが、上記のように、create_order()で詳細を指定すれば、全パターンの注文を出せますので、この1つだけ書き方を覚えたほうが簡単です。以下だけ覚えてください。各取引所のAPIに渡せるパラメーターBitflyerでは、「product_code」を「FX_BTC_JPY」に指定するのを忘れないようにしてください。これを忘れると現物注文になります。6行目で、Bitflyerのサーバーに注文を出すと、サーバーから注文IDが返ってきます。この注文IDは、今後、注文状況を確認したりキャンセルするときに使います。そのため、返ってきた値は、orderという変数で受け取り、それをpprint()で画面に表示しています。実行結果それでは、上記のコードをpythonファイルで保存して、Anacondaプロンプトで実行してみましょう。以下のように表示されれば成功です。実際にBitflyerのFX画面でも、注文が通っていることが確認できます。今回の記事はここまでです。PMtyotaさん、いつも勉強させていただきありがとうございます。一箇所誤植?と思われる部分がありましたので、コメントさせていただきます。`apiKey’というエラーが出てしまいます。‘*************’})と変更して、apiキーとシークレットを渡してやることで上手くいきました。AM私も写経をしていて上記の方と同じエラーが出て困ってました。AMリョータさん有益な情報を丁寧に解説頂きありがとうございます。多少Pythonでのトレードの勉強を本などで行っていますが、知らないことが多く勉強になっています。一点、今日写経してエラーになった内容を報告します。(エラー修正しなくても次に進めるので解決法の探索をスキップしましたが。)『現在のBTC-FX価格を取得する』内にある以下のコード部でエラーが発生しています。コメントをキャンセルメールアドレスが公開されることはありません。