三角アービトラージとは?
以前から同一取引所で完結する三角アービトラージに魅力を感じていました。
そもそも、三角アービトラージって何かと言いますと、3つの通貨をぐるっと一周するように売買することで利益を生み出す手法のことです。
例えば、ビットコインでイーサリアムを買い、イーサリアムでダッシュを買い、最後にダッシュでビットコインを買うといった感じです。
両替えしているだけですが、サヤが生まれて利益を獲得できることがあります。
勝てるルートを見つけてから取引するので、リスクがほぼゼロという素敵な手法です。
これが完成すれば打ち出の小槌ですよね。
検証方法
というわけで、Binance APIとPython(パイソン)と呼ばれるプログラミング言語を使って、仮想通貨取引所の最大手Binanceで検証してみました。
PythonはAIでお馴染みのプログラミング言語で、世界で最も熱いプログラミング言語の1つと言っても過言ではないでしょう。
特に海外では非常にメジャーなプログラミング言語です。
それはさておき、Binance APIを使うためにはBinanceで事前にAPIキーとシークレットキーを入手する必要があります。
具体的な手順はBINANCE (バイナンス) 公式API連携方法 | Pythonを用いた自動売買入門とかをご覧ください。
「binance API」等でググれば、他にも色々とヒットします。
それと、当然のことながら、Pythonもインストールしておく必要があります。
Pythonインストール手順はWindows版Pythonのインストールとかをご覧ください。
ここでは、情報がなかったものだけ載せておきます。
仮想通貨取引のラッパー(rapperじゃなくてwrapperの方です)であるccxtパッケージなどのパッケージを追加インストールしたい場合、「py -m pip install ccxt」とコマンドプロンプトに打ち込むわけですが、「Visual C++ 14.0以上がインストールされてないから無理!」と言われるかと思います。
そのエラーが出た場合は、こちらにアクセスして、下の方にある「Visual Studio 2019のツール」を展開し、「Build Tools for Visual Studio 2019」をダウンロード&インストールしてください。
そうすれば、パッケージをインストールできるようになるはずです。
パッケージをインストールする場合、コマンドプロンプトは管理者として実行する必要があったかもしれません。記憶があいまいです。
まぁccxtパッケージは遅いから無理して使わなくても良いと思います。
続いて、以下から私の自作ツールをダウンロードします。
解凍すると、TriangleArbitrage.pyとconfig.iniが入っていますので、お好きなところに設置してください。ただし、TriangleArbitrage.pyとconfig.iniは同じフォルダに設置しなければなりません。
それが終わったら、config.iniにAPIキーとシークレットキーを転記します。
さて、これで準備は完了です。
あとは、三角アービトラージのPythonプログラム「TriangleArbitrage.py」を実行するだけです。
実行はコマンドプロンプトで「py C:\TriangleArbitrage.py」のように書いてエンターキーを押せばOKです。
TriangleArbitrage.pyのパスは各自の環境に合わせて変更してくださいね。
ちなみに、TriangleArbitrage.pyを実行しても取引は行いません。あくまで、三角アービトラージで利益が本当に出るかどうかを検証するためのツールです。
利益が出ることを確認できないのに取引機能を作りこむのは無駄ですからね…。
薄利を取ることさえ難しいのが現実
上記ツールをコマンドプロンプトで実行すると、こんな画面が表示されます。
これがずらーっと表示されます。
Binanceには1,139ペア、334通貨もあるんですね。
利益の出るルートを見つけるか、全ルート探索し終えると終了します。
偶然、利益の出るルートを発見しましたので、成功例を載せておきます。
一見すると、0.356%もの利益が出ているように錯覚しますが、この利益率には取引手数料0.1%×3取引=0.3%は含まれておりません。
そのため、実際の利益は+0.056%となります。
これが100回成功すれば、+5.6%ですね。
そう考えると「お?良いじゃん!」って思うかもしれません。
しかし、実際に売買しようとしたら、若干のタイムラグでレートが変動するリスクがありますし、板の厚みも考慮しないといけませんので、現実の結果はシミュレーション結果よりも悪くなると考えた方が良いでしょう。
それに、何十分回しても利益ルートが1つも見つからないことも普通にありますので、過度な期待は禁物です。
なお、本ツールは一連のルート探索が終了したら止まるようにしていますが、実運用する場合は、無限ループを作って処理が終わらないようにしましょう。
Binanceの三角アービトラージで希望を見出すなら、取引手数料を少しでも減らすことですね。
初期状態では1取引につき0.1%ですが、Binanceトークン(BNB)を一定数保有することで、割引を得られるようです。詳しくはこちらをご覧ください。
11,000 BNB以上(約360万円!)の残高で取引手数料を0.04%にまで落とせるので、ファンドみたいなものを作って資金集めて運用すればそれなりにいけるかもしれません。
ただ、金商法に抵触しないようにご注意くださいね。
見落としがちなAPI制限
本ツールを多重化して、複数同時実行すれば、利益ルートを見つけるのが早くなるんじゃないか?と思われた方、素晴らしい着眼点です。
しかし、そうは問屋が卸しません。
Binance APIには各種の制限があります(Binanceに限らず、APIと呼ばれるものには何かしらの制限が付きます)。
例えば、こんな感じです。
- 1分あたりアクセス数:1,200回以内
- 1秒あたり注文数:10個以内
- 1日あたり注文数:100,000以内
他にも制限はありますが、ここでは割愛します。詳しくはこちらをご覧ください。
このうち、1分あたりアクセス数が厄介ですね。
実際、本ツールもsleepを入れてわざと処理速度を落とす工夫をしています。
そうしないとエラーで落とされちゃうんです。
恐らくIPアドレスごとにチェックしていると思われますので、複数のVPSに分けて分散実行すれば、何とかできるかもしれません。
管理が面倒くさいのとVPSの維持費もバカにならないので、やっぱりそれなりの規模のプロジェクトを組まないと継続運用は難しいでしょうね。