こんにちは、higoxです。今回は長年頭を悩ませていたアービトラージの「設定値」に関する問題を解決することができましたので、そのご報告になります。
これまでの問題
これまで私が使用していたアービトラージBOTは、利用者自身(人間)が固定値として定めた「取引所間の価格差が十分広がったとみなす価格差の値」と、「取引所間の価格差が十分閉じたとみなす価格差の値」の2つの値に基づいて取引動作をしているものでした。
従来、BTCの価格は変動が大きく、それに伴う取引所間の価格差もボラティリティの大きなものであったため、設定値が「固定値」であってもある程度の成果をあげることができていました。しかし、直近、このボラティリティに変化が現れ、これまでの方法では成果が思うようにあげられなくなってきています。
※過去の収益記録は「こちら」から確認することができます。
それをハッキリと感じられたのが、2018年9月のアービトラージの成果をまとめている時です。9月は取引動作回数が過去数ヶ月と比較し、半分以下にまで落ち込んでおり、このために過去最低の収益を記録してしまいました。(それでもプラスではあります)
このままではいけないと感じ、急遽作成をはじめたのが「設定値自動更新アルゴリズム」です。これはこれまで「固定値」であった設定値を直近の取引所間のボラティリティに応じて変動させるもので、これを使用することで、取引動作回数を増加させ、収益を回復させることを目的としています。
開発はこのTweetからスタートしました。
ひょっとして、何秒かおきに取得してる適当な期間の取引所間の差額を配列にぶっこんで、平均とかシグマとかで自動で設定値を変更させるようにしたら、設定値で悩むことないのんか?
— higox (@hig0x) October 9, 2018
設定値自動更新アルゴリズム
開発されたアルゴリズムは以下のように取引所間の価格差(グラフ:黒線)の変動・変動率に合わせて、設定値(グラフ:赤線、青線)が自動で変化するというものです。
アビトラBOTの設定値の自動更新を夢見てカタカタとプログラム作成中。結構いい感じでは? pic.twitter.com/XY0Iy3lLW6
— higox (@hig0x) October 13, 2018
とりあえず、今作ってるアルゴリズムだと、10分に1回ぐらい動作するみたいです。なんか、もうこれでイケる気がしてしまっています。いきなり実装してみちゃおうかなぁ😝 pic.twitter.com/NXpQHD2h3R
— higox (@hig0x) October 13, 2018
そして、微調整を重ね、10月14日からテスト運用を開始し、本日1週間が経過しましたので、その動作状況を確認しました。
確認はBOTが動作したときに自動ツイートをしているTwitterアカウントから、従来の設定値でも行われたと思われる動作(差額1100以上の場合)と、従来の設定値では動作しなかったと思われる動作(差額1100未満の場合)のそれぞれの回数をカウントしました。
結果、以下のようになりました。
従来の設定値でも行われたと思われる動作 | 11回 |
従来の設定値では動作しなかったと思われる動作 | 15回 |
これは、現状では自動更新アルゴリズムを導入することで、取引動作回数が固定値の倍以上になることが期待できることを意味しています。これは当初の目的通りの結果です。
まとめ
今回、BTCのボラティリティの低下にともなうアービトラージBOTの収益低下に危機感を感じ、「設定値自動更新アルゴリズム」をBOTに導入してみました。結果、テスト期間においては取引動作回数は従来モデルの倍以上になることが確認できました。これは収益増加が十分に期待できるものです。10月は9月の失敗を活かし、BOTを少しバージョンアップすることができました。
今回のおすすめ
手前みそで恐縮ですが、私が実際に使用しているアービトラージBOTのソースコードを「note」にて公開しています。多くのご質問や、お問い合わせをもとに、複数回に渡る追記・更新を行ったため、かなり充実の内容です。今回新規導入した「設定値自動更新アルゴリズム」のより詳しい解説や、そのソースコード、導入方法も追記済です! アービトラージ自動売買プログラム(BOT)の中身を知りたい・運用してみたい!という方におすすめです!
以上、higoxでした。
twitterもやっています!よかったらフォローお願いします!