※検証データに不具合が見つかったため、2023/3/7に再検証を実施しました。そのためそれ以前に掲載したものとは結果が変わっています。何卒ご容赦いただけますと幸いです。
三角アービトラージ(トライアングルアービトラージ、三角裁定取引)をご存じでしょうか?
3つの異なる通貨間の価格差を利用して鞘取りする方法です。うまいことやればノーリスクで儲けることが出来ると言われています。
初耳の方にとっては魅力的に聞こえるかも知れませんが、FXの世界では古くからある手法であり、現在ではうまくいかないというのが通説のようです。市場が十分流動的であるため、そのような価格差は一時的に生じてもすぐに無くなってしまうのが理屈とのこと。
一方で、本当に三角アービトラージは死んだのか、ネットを漁ってもそれを裏付ける客観的データがあまりないというのも事実かと思います。
そこで本記事では、三角アービトラージは本当にうまくいかないのかを過去データより検証してみたいと思います。
三角アービトラージを使った取引を検討されている方は、ぜひ参考にしてみてください。
- 三角アービトラージは有効か
- 3つの異なる通貨間の価格差が発生する時間とその程度
三角アービトラージとは
日本円、ドル、ユーロのレートが例えば以下だとします。本来はBIDとASKの間にスプレッドがあるはずですが、ここでは簡単のため同じとします。
- USDJPY:100
- EURUSD:0.8
- EURJPY:120
この場合、もし日本円を100円持っていれば、1ドル買えることになります。その1ドルをもしユーロと交換すれば、1÷0.8=1.25ユーロになります。その1.25ユーロをもし日本円に交換すれば、120×1.25=150円になります。そうすると元々あった100円を150円に増やすことが出来ます。これが三角アービトラージです。

この150円で同じ一連のトレードを行うと、更に225円に増やすことが出来ます。何回も同じことを繰り返すことが出来れば無限に増えていきそうです。
実際はスプレッドやスリッページ、取引時間のラグなどが影響してうまくいかない場合が多いのですが、理論上すき間を見つけてうまいことやればノーリスクで利益を出すことが出来ます。
現在はこのようなレートに落ち着くことは滅多になく、また仮にあってもすぐに鞘が無くなる方向にレートが動くため、三角アービトラージはうまく機能しないというのが通説のようです。代わりに値動きの安定しない仮想通貨でこれが行われているようですが。
通説はあくまで通説です。それを裏付ける客観的なデータを示した上でその通説に納得してしまおうというのが本記事の主旨となります。
次章では細かい検証条件を定義していきたいと思います。
検証条件
計算式に関してはこちらを参考にさせていただきました。

今回は、通貨ペアとして最も身近なUSDJPY、EURUSD、EURJPYを対象にすることにしたいと思います。
引用元にも記載がありますが、これら3つの通貨ペアを対象とした場合に三角アービトラージが有効となる条件は以下いずれかが成り立つときです。
- EURJPYのASK ÷ EURUSDのBID < USDJPYのASK
- EURJPYのBID ÷ EURUSDのASK > USDJPYのBID
そのため、三角アービトラージの有効性の検証は、上記の2つの条件がどれだけの時間成り立っているのか、その時の両辺の差分がいくらなのかを検証することに帰結するかと思います。
検証は2013/1/1から2022/12/31までの10年間を対象にしたいと思います。
尚、当方の検証環境の都合上、以下の2点にご留意していただく必要があります。
注意点①:スプレッドは考慮しない
検証はMT4のストラテジーテスターにて行います。
この機能では単一のレートに対してスプレッドを自分で設定する必要があり、BIDとASKの実績に基づくバックテストが行えません。
そのため今回は、単一のレートを基準に以下条件が成り立つか否かを確認したいと思います。
- EURJPY ÷ EURUSD - USDJPY > 0
特に左辺の値が、スプレッドやスリッページを考慮しても十分大きければ、三角アービトラージはうまくいくということになるかと思います。
そのため検証では、これが成り立つ時間とその時の左辺の値を集計します。
注意点②:1分足の始値のみで評価
MT4のストラテジーテスターは1分足が最小の時間粒度です。
正確にはTick単位でシミュレーション出来るのですが、精度があまり良くありません。
そのため本検証では1分足の始値を検証の対象とします。例えば上記の式が成り立つ始値が1回だけ見つかった場合、三角アービトラージは1分間有効であったと判断します。
検証結果
それでは実際に検証結果を見てみたいと思います。各年ごとに、三角アービトラージの条件が成り立つ時間とその時の条件式の左辺の平均を記載しています。
年 | 条件が成り立つ時間[分間] | 条件式左辺の平均[円] |
2013年 | 337940 | 0.003211 |
2014年 | 321000 | 0.002791 |
2015年 | 333617 | 0.005703 |
2016年 | 360937 | 0.006543 |
2017年 | 358654 | 0.007296 |
2018年 | 350074 | 0.007785 |
2019年 | 314113 | 0.008069 |
2020年 | 200682 | 0.004085 |
2021年 | 169350 | 0.003588 |
2022年 | 202013 | 0.005581 |
全体平均 | 294838 | 0.005465 |
まず条件が成り立つ時間ですが、2013年から2019年ぐらいまでは比較的チャンスが多かったように思えますが、ここ最近は減っていっているようです。
一方、条件式左辺の平均は大きく減っていっている様子もなさそうです。
つまり、チャンスの回数は減ったが、チャンスを捉えた時の利益は今も昔も大きくは変わらないということでしょうか。
全体平均を見ますと、一年間で三角アービトラージが有効そうな時間は294838分間で、約4914時間(約205日間)という結果です。結構多い気がしますがいかがでしょうか。
また日本円→ドル→ユーロと一巡した場合のレートの差は平均で約0.005465円です。100円が100.005456円になるイメージでしょうか。0.1Lot(10000通貨)の場合、USDJPYだと10000ドルを取引することになるため、54.56円プラスになる計算と思います。
尚、これはスプレッドやスリッページを考慮していません。例えばスプレッドが0.3pips(0.3銭)だった場合、以下リンク先の検証だと大体300円ぐらいかかってくる計算になるため、三角アービトラージを狙っても大幅に赤字です。
そのため参考程度に、条件式左辺が0.3pips(0.3銭)以上となった時間とその時の平均を以下に記載します。つまり0.3pips(0.3銭)のスプレッドやスリッページがあってもペイする機会の結果ということになります。
年 | 条件が成り立つ時間[分間] | 条件式左辺の平均[円] |
2013年 | 24 | 0.04317 |
2014年 | 70 | 0.04539 |
2015年 | 1507 | 0.03886 |
2016年 | 1902 | 0.04184 |
2017年 | 3760 | 0.03837 |
2018年 | 8217 | 0.04328 |
2019年 | 12890 | 0.05886 |
2020年 | 2568 | 0.03996 |
2021年 | 1283 | 0.03738 |
2022年 | 4054 | 0.04291 |
全体平均 | 3627.5 | 0.04300 |
時間は平均で約3628分間(=約60時間=約2.5日間)、マージンは0.04300円です。
つまり円→ドル→ユーロと一巡した場合、100円が100.043円になるイメージで、仮に0.1Lot(10000通貨)取引すれば、利益は430円。スプレッドが0.3pips(0.3銭)があっても、130円残る計算です。
まとめ
本記事では、三角アービトラージで勝てるのかを検証しました。以下に結論となる重要なポイントを示します。
- 日本→ドル→ユーロの3通貨で検証
- スプレッドやスリッページを考慮しない場合、三角アービトラージが有効な時間は一年間で約294848分間で、円は100円から約100.005465円になる
- スプレッドやスリッページを考慮し、円→ドル→ユーロと一巡した場合に0.03円以上の利益が出る時間は一年間で約3628円で、円は100円から約100.043円になる
以上、最後まで読んでいただきありがとうございました。