Bitflyer BFFX用いなごBotを作ってみた

初めに

本記事に記載されているプログラムはemoiの日記様のブログに記載されていた綺麗なプログラムに色々と継ぎ足したものになります。emoiの日記様、貴重なコードをありがとうございます。

r17u.hatenablog.com

また、本プログラムを使用して被った損失に対して一切の責任を持ちません。その点はご了承ください。 

 

変更点

  • ポジションを持つ際に、成行注文ではなく、指値注文を行うようにしました。取引が行われた最終価格を指値にします。ポジションを持つ条件に一致しない状況になっても取引が成立していなかった場合、指値注文をキャンセルします
  • 建玉の決済の際に、注文時に指定した数量と同数の反対注文を行うのではなく、所持している建玉を全て決済するように反対注文を行います
  • 売買アルゴリズムの変更

 

売買アルゴリズム 

  1. ポジションを持っていなければ2. へ。持っていたら3. へ。
  2. 1時間、15分、5秒の買い(売り)ボリュームがそれぞれ売り(買い)のボリュームよりも高ければ買い(売り)ポジ
  3. 買い(売り)ポジション持っている時に、15分、5秒の買い(売り)がそれぞれ売り(買い)よりも低くなったら買い(売り)ポジ解消
  4. 1. に戻る

 

動作環境

  • python:python 3
  • ライブラリ:numpy gen pybitflyer pubnub pandas

 

自動売買Botプログラム

公開用Bot.py · GitHub

 

 

プログラムについの補足

18行目〜20行目の下記3箇所だけは各自適当な値を入れてください。

my_order_size = 0.001

API_KEY = "Your_API_KEY"

API_SECRET = "Your_API_SECRET"

売買アルゴリズムはプログラム中のbuy_or_sell関数で実装されており、marginの値などを変更してみると色々と違った結果になります。

 

最後に

Botの開発をやろうと思いましたが、本格的にやるのは断念しました。サーバーの遅延やら、APIのLimit対策や、切断などの全ての状況を考えるのは、非常に面倒そうだと思ったのが理由です。BFFXでのBotは諦めて、手動で頑張っていくことにします。