今年に入り、トレードbotをBinance取引所で動かしてシステムトレードをやってきましたが、どうしても勝てません。市場の調子が悪くなっても大きく負けることはなく、逆に売りシステムで勝つ場面もありましたが、資産の目減りが続きました。
そこで、思い出すことがありました。この本です。
部分的に要約すると、
取引所を変えただけで勝てるようになることもあります。私はbitFlyerにしました。他のbotterもbitFlyerにした人が多いです。取引銘柄はBTC一択です。
---- botterのリアル著者 richmanbtc
本当なのか!?藁にもすがる想いで、Binanceをあきらめ、botterが集うというbitFlyerにシステムを移行してみました。ETHとかXRPは取引しないの?株式投資の場合は、銘柄を分散させるのが基本のはずですが...。疑問はありましたが、すごい人の真似はしてみようと思いました。
各取引所はそれぞれAPIを提供しています。買うとか売るとか、残高の確認を行うなどの機能をAPIから呼び出すことができます。しかし本来、APIの取引所間の互換性はありません。A取引所からB取引所に移ったら、B取引所用のプログラムを書かなければなりません。
それをある程度吸収してくれるのが、ライブラリ「ccxt」です。ccxtにも買い、売り、残高の確認などの機能があり、ccxtに準拠してbotを作っておけば、取引所の移行に伴うプログラム修正を最小化できます。やっててよかったccxt。
BinanceからbitFlyerに移行してbotが期待通り動き出すまで、約二週間かかりました。ccxtを使っていなかったら、三~四週間かかっていたかもしれません。
bitFlyerでの最大の問題は、Binanceでは問題なくできた「ohlcvデータ」の取得ができないことです。ohlcvとはそれぞれ、
o: Open 始値
h: High 高値
l: Low 安値
c: Close 終値
v: Volume 取引量
のことです。時間と合わせ、以下のようなデータです。この例は通貨ペアはBTC/JPYのデータです。
私のbotは(世間の多くのbotもそうだと思いますが)、このohlcvデータの分析によって動きます。例えば有名な「ドンチャン・チャネル・ブレイクアウト戦術」だと、
・現在価格が足50本の最高値であり、かつ200本SMA以上なら買い
・現在価格が足50本の最安値であり、かつ200本SMA以下なら売り
の計算はこのohlcvデータを使って行います。bitFlyerでは、ccxtを使ってもAPIを使ってもohlcvデータが取れないのです。
そこで、苦肉の策として、外部サイトからohlcvデータを取得することで代替しました。Cryptowatch.chというありがたいサイトがあり、無料の範囲でもデータを取得してこられます。Cryptowatchが提供しているAPIを実行し、bitFlyerのヒストリカルデータをohclv形式で取得できるのです。
無料の範囲では、あまり頻繁にデータを取ってこられません。Binanceでは以下のように、各botがそれぞれ好きなタイミングで好きな時間枠のデータを取得できました。システムの安定性・機能性という意味では、Binanceはかなり優秀です。
Cryptowatchでは、以下のようにしました。ohlcvデータを取得する代表のプログラムがohlcvデータをDBまたはファイルの形でローカルにプールし、各botはプールされたローカルデータにアクセスします。
この方式だと、Binanceのときのように各botが好きな時間枠のデータを取得できません。代表プログラムの設定で、5分足としました。仮にbotが1時間足のデータで動きたければ、自分でデータを集計する必要があります。
余談ですが、Cryptowatchはデータ取得のためにアカウントを作成しなくていいのですが、アクセス元のIPアドレスを判断し、データを返送するか判断しているようです。同じIPアドレスからの返送要求が頻繁だと、一定時間データを返しません。IPアドレスを変えれば、違う時間枠のデータが取得できるはずです。例えば、複数の事務所がありそれぞれネットワークが異なるのであれば、IPアドレス体系は事務所ごとに異なるはずです。それぞれの事務所で、異なる時間枠で異なるbotを動かすことが可能になります。
Binanceの取引手数料は買い0.075%、売り0.075%です(取引量に応じて変わってくる)。bitFlyerのLightningは現物とFXがあり、FXの方は手数料がタダです。FXでは対象通貨はBTCのみです。FXは売りから入ることができ、売りと同じ量を買えば手仕舞いすることができます。レバレッジは2倍かけられます。現物はETHやXRPもありますが、手数料なしは魅力なので必然的にFXを選びました。ちなみに、現物の手数料も低い方だと思います(取引量によって変わってくる)。
Binanceのマージン取引も、売りから入ることはできました。厳密には、借りる→売り→買い→返済という手順となります。bitFlyerのFXでは、単に売り→買いとするだけでいいので、プログラムがシンプルになります。買いより売りが高くなるようにします。
bitFlyerのFXトレードbotにより、少しずつ利益が出てきました。取引手数料は意外と大きなファクターだったようです。以下は2022年6月からの損益グラフです。いや、お恥ずかしい。今、証拠金50万円ちょっとしかないもので...。プログラムのバグの後始末は手動で行ったものの、それ以外は全部botでの売買によるものです。botがちゃんと動いたことを確認できたので、これから他の取引所から送金して元手を増やすつもりです。
それから、
刻み値幅が大きい取引所は「ドカンドカン」という値動きになりますが、bitFlyerは刻み値幅が細かいため「カタカタカタ...」という値動きになります。
---- botterのリアル著者 richmanbtc
これも大きいのかもしれません。複数のbotを動かすと一日に何度も注文を出します。例えば買いだと、Binanceは約定価格が思ったより高い(高く買ってしまった)ように感じることがありました。bitFlyerはあまりそのような印象はありません。こういうのをスリッページというんでしょうか。いまだに用語がよくわかっていない部分があり、精進が必要です。
以上