Python3 bitFlyer秒足チャート&ティッカーリアルタイム表示スクリプトのソースコード
こんにちは。magito(@magimagi1223)です。
最近、暗号通貨BOT界隈では高頻度取引(High-frequency trading : HFT)が大きな注目を集めているようですね。その代表例がマーケットメイカーBOT(MMBOT)ですが、ごく最近では指値ではなく成行注文でHFTを繰り返すテイカーBOT(界隈では俗にMTBOTと呼称されているようです)も登場しており、まさにBOTトレーダー同士の「アルゴリズム戦争」が激化の一途を辿っているといったところです。
ちなみにHFTというと、株取引ではマイクロ秒(100万分の1秒)オーダーの戦いが繰り広げられているそうですが、暗号通貨では取引所インフラや市場参加者の技術が未成熟であるため、現状では速くてもせいぜいミリ秒(1000分の1秒)オーダーが限界で、裁量トレードを含めて主戦場は数秒〜数分(この領域はHFTというよりは秒スキャですね)のようです。
僕も以前から高頻度BOTの実装について考えを巡らせており、そのために「秒足チャート」をうまく利用できないかを、界隈のトレーダーのみなさんと時々議論させていただいています。
このような1分足未満のローソクチャートは、TradingViewでは表示することができないため、「今すぐ秒足を使った戦略を研究してみたい!」と思っても、なかなか手をつけにくいというのが現状です。
そこで、超短期トレードに関心の集まっている今、秒足チャートを表示させるスクリプトは意外に需要があるのでは?と思いまして、今回のnoteでは、僕がPython3にて作成した秒足チャート表示スクリプトのソースコードを紹介し、その使用方法を解説することにしました。
ご紹介するスクリプトでは、ビットフライヤーBTC-FXの任意の時間スケール(1〜60秒)のローソク足、Buy/Sell別出来高、ティッカー(ask/bid/midprice)といった情報をRealtimeAPIにて取得し、Matplotlibというライブラリを使用してリアルタイム表示できるようにしています。実際の秒スケールの値動きを視覚的に観察することで、有効な指標やロジックを見つけるために役立つのではないかと思います。
1秒足チャートの動作イメージ(Mac)↓
動作イメージの通り、デフォルトで表示できる情報は最小限です。その他の情報(テクニカル指標など)については、必要に応じてご自身で追加いただく必要がありますが、掲載するサンプルコードの意味が理解できればそれほど難しくないと思います。
なお、今回のnoteは「既成アプリケーションの配布や使用方法の解説」ではなく、「目的の機能(=秒足チャート表示)を実装するためのサンプルコードの提供」という位置付けとなっています(もちろん最低限の解説は入れていますが)。そのため、対象読者は「プログラミングに関して初歩的、もしくはそれ以上の知識を有する方」とさせていただきます。(ご自身で動くBOTを作成されている方なら技術レベル的に問題ないはずです!)
このような理由から必然的にBOTトレーダー向きの内容となりますが、プログラミングに明るい方であれば裁量トレーダーの方でも役立てられる内容かと思います。(機会があれば、誰でも使えるEXE形式で配布もアリかなと考えているのですが、、、現時点ではソースコードのみということでご容赦ください。)
また、僕自身もプログラミングが専門というわけではないので、コードに欠陥や不備、冗長な部分があるかもしれません。その場合は、ご指摘やご意見をいただけると大変助かります。
参考サイト
「サンプルコード見ずに自分でつくるよ!」という方に向けて、以下に参考サイト様をご紹介しておきます。もちろん、購入された方が読んでも理解が深まると思うのでGOODです!
bitFlyer RealtimeAPI(JSON-RPC)で情報取得するためのライブラリ
Pandas Series/Dataframeの作成方法
Matplotlib(mpl_finance)によるローソク足チャートの表示方法
Matplotlibによるリアルタイム描画方法
寄付について
本noteは「有料」に設定させていただきました。本noteでの収益は、先日の「北海道胆振東部地震」の被災地域への支援募金(Yahoo!基金)に全額寄付させていただきます。以下に寄付の要領を記します。
<寄付の要領>
①本note公開日9/16(日)から5日後の9/21(金)の18:00に公開終了&収益集計。
②note運営による手数料を差し引いた収益金額の全額を、次の窓口経由で寄付。
平成30年北海道胆振東部地震 緊急災害支援募金(Yahoo!基金)
https://donation.yahoo.co.jp/detail/1630037/
③振り込みタイミングは場合に応じて以下の2通りとする。
(1)合計収益が50000円未満の場合は9/22(土)までに全額を寄付。
(2)合計収益が50000円以上の場合は9/22(土)までに50000円を寄付、
翌月10/31(水)までに残りの全額を寄付(売上払い出し日を考慮)。
④寄付完了後、その旨を本noteおよびTwitter(@magimagi1223)にて報告させていただきます。
いつもは無料公開が僕の基本スタンス(?)なのですが、もし自分の書いたものに少しでも価値があるとして、それがトレーダーだけでなく、災害で困っている方々の助けにもなるのであれば行動しない手はないと考えまして、このような形をとるに至りました。ご理解いただければと思います。
ー09/22追記ー
上記の要領に沿って、note販売終了、収益の全額寄付を完了いたしました。
・2名の方から寄付依頼のサポートを頂きましたので、その合計を収益に加算いたしました。
・収益の払い出しは来月以降ですが、建て替えにて寄付いたしました。
・50000円以上は分割としていましたが、一括で寄付いたしました。
たくさんのご購入、本当にありがとうございました!
<免責事項>
以下をしっかりお読みいただき、すべての項目に同意いただける方のみご購入ください。
・本noteのスクリプトは、あくまでトレードのための「補助ツール」に過ぎません。スクリプトにて表示した情報をトレードに使用したからといって必ずしも利益を出るとは限りませんので、ご了承ください。投資は自己責任でお願いします。
・ソースコードの不備、もしくは取引所側の遅延や不具合により、スクリプトが意図せぬ動作を起こす可能性があります。その場合に生じた損失等については一切責任を負いかねますのでご了承ください。ご自身でソースコードを確認いただき、その動作ロジックについて十分にご理解いただいた上での利用をお願いします。
・本noteのスクリプトは、ローカルPCでの動作を前提としています。クラウドサーバ上などで使用する場合は、ご自身でカスタマイズしていただく必要があります。
・Pythonやpipなど、実行環境は整っている前提で進めさせていただきます。整っていない方は、各自で導入をお願いします。(本noteでは導入方法の説明はいたしません。)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
目次
1. 準備
2. 処理フロー
3. サンプルコード
4. さいごに
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
↓ここから有料パートになります↓
ここから先は
¥ 500