richmanbtcさんの「機械学習ボットのチュートリアル」手法で実際にトレードするbotのサンプルプログラム(bitflyer)
どうもはじめましてtemcoと申します。先日richmanbtcさんの著書を読みまして、自分もbotterになってみたいと一念発起しbotの開発をスタートしました。
チュートリアル部分ではモデルの学習とバックテストまでが扱われていましたが、実際に取引する部分はネットで調べてね、とのことで色々試行錯誤してみたのですが、やはり一筋縄ではいかずに色々とハマるポイントも多かったです。
今回の記事では色々ハマった末にできた実際にトレードするbotのサンプルプログラムを紹介したいと思います。(以下サンプルbot)
サンプルbotはJupyterNotebook形式になっております。
前提条件として
・richmanbtc氏のチュートリアルを動かせる環境があること
が必要となります。
学習に使用している特徴量などはチュートリアルそのままとなりますので、氏もおっしゃっているようにこのままでは儲からない可能性があります。(もちろん儲かる可能性もあります。特徴量をいくつか変更してしばらく運用してみたところ利益が出ました。)
動作のアルゴリズムの概略は以下の通りです。
メインスレッド
過去データを取得し、作業用DFを生成する
15分に一度最新の15分足を取得してDFに追加する
取得した15分足に対して特徴量を計算し、利益のy_pred_sell, y_pred_buyを予測する
y_pred_sell, y_pred_buyが正の値だった場合、値が大きかった方のポジションでエントリーする(取引スレッドを起動する)
2.に戻ってループ
取引スレッド
ATRから計算したbuy_price, sell_priceの値でエントリー指値注文を出す(量はとりあえず0.01で固定)
エントリー指値注文が約定するまで待つ
約定したら、約定価格とATRから注文価格を計算し、エグジット指値注文を出す
エグジット指値注文が約定するまで待つ
スレッドを終了する
という流れになっております。
ccxtとcryptowatchを使用しているため、bitflyer以外の取引所にも比較的簡単に移植できると思います。
APIの仕様でハマりまくって(とっかかりとして文系でもわかる!BitcoinのBOT自動売買トレードの始め方さんの内容を参考にさせていただいたのですが、ccxtのAPIで動かなくなっているものがいくつかあったり)なんだかんだで開発に3週間近くかかってしまいました。本質ではない部分にハマる前に、時間の短縮に購入されてみてはいかがでしょうか?
※botを動作させるまでのトラブルシューティングやサポートは致しかねますのでご注意ください。
※botの動作により利益も損失も発生し得ます。ご自身の判断と責任の上でご購入、ご利用ください。
※有料部分について他者との共有や転売、転載など一切を禁止します。
ここから先は
¥ 500
この記事が気に入ったらサポートをしてみませんか?