理論:
まず、EURUSDでの動作を考えてみましょう。ここでは、2つの合成ペアEURUSDxとEURUSDyを想像します。
これらは類似した動態を持つため、これらのペアで反対のポジションを開くと、ヘッジポジションが形成されます。
オープン: EURUSDxを買い、EURUSDyを売ります。しばらくしてから、これらのポジションをクローズします: EURUSDxを売り、EURUSDyを買います。
利益: 利益 = (BIDx - ASKx) + (BIDy - ASKy) = (BIDx - ASKy) + (BIDy - ASKx)
上記の式では、最初の括弧の値(EURUSDxを買い、EURUSDyを売った場合)がわかっています。
2番目の括弧の値は、ポジションをクローズした後(EURUSDxを売り、EURUSDyを買った場合)にわかります。
利益がプラスになるケースはいくつかあります。その一つは:
オープン時: BIDx > ASKy、
クローズ時: BIDy > ASKx。
実践:
Trade-Arbitrageエキスパートアドバイザーはこれを利用しています(他の条件にも変更可能です)。
リアルタイムで、BIDx > ASKyの条件に該当する合成ペアの全て(数千のケース)を探し、対応するポジションを開きます。
つまり、Trade-Arbitrageエキスパートアドバイザーは常にマルチカレンシーヘッジを持っています。
アービトラージケースを頻度順に整理したArbitrageStatistic.txtというファイルを作成します。
ファイル: ArbitrageStatistic.txt
MonitoringがTRUEの場合、エキスパートアドバイザーは詳細をArbitrage.txtに追加します。
詳細情報を含むArbitrage.txt取引はTrade-Arbitrage.txtファイルに定義されたペアで行われます(ファイルの場所: experts\files)。
Trade-Arbitrage.txtファイルの例また、取引の詳細(取引、理由、結果)をログとして記録します。
Trade-Arbitrageアドバイザーの結果(上)、NettoTrading(左)、CheckMyArbitrage(右)のスクリプト結果
マルチカレンシーヘッジは、サイクルスクリプトCheckMyArbitrageを使用して確認できます。
入力パラメータ:
- 通貨 - 合成ペアに使用する通貨リスト。
- MinPips - BIDxとASKyの間で許可される最小差(アービトラージとして)です。
- SlipPage - Marketオーダーに対するブローカーが許可するスリッページ(ブローカーによって異なります)。
- Lock - ロックを許可するか(TRUE)しないか(FALSE)。
- Lots - オープン/クローズのポジションボリューム。
- MaxLot - ブローカーが許可する最大ロット(実際)。
- MinLot - ブローカーが許可する最小ロット(実際)。
- Monitoring - アービトラージケースをファイルにログするか(TRUE)しないか(FALSE)。ログには時間がかかる場合があり、これはアービトラージにとって重要かもしれません。
- TimeToWrite - アービトラージ統計データのログ時間期間(分)(ArbitrageStatistic.txt用)。
エキスパートが正しく機能する(マルチカレンシーヘッジを壊さない):
- 取引オーダーエラー(拒否など)。
- 部分的執行(部分的な約定)。一部のブローカーではこれが許可されています。
- 機能として、ブローカーが許可する最小ロット(MinLot)。
- Lock = TRUEの場合、最小限の取引オーダーを使用します。
- ロックケースを禁止することができます(Lock = FALSE)。
考えられる問題:
- マイナススリッページや手数料が利益を削る。
- 長時間の取引オーダー実行時に、他のシンボルの価格が大きく変動する場合がある。
- 非同期の取引オーダー処理。
- アービトラージの時間が短い。
改善の可能性:
- リミットオーダーの使用。
- さまざまなシンボルへの同時送信(非同期エミュレーション)のための、複数のターミナルからの取引オーダー。
- ブローカーの時間管理についての非同期。
- 他のMinPipsアービトラージ条件で使用するための、より多くの統計情報の収集と利用。例えば、BIDx - ASKy> SPREADx + SPREADy。
- アービトラージの持続時間に関する統計情報の収集と利用。
- 市場オーダーキューの優先順位(例えば、最大ティックボリュームのシンボルや極端なローカル価格のシンボルなど)。
特徴:
- マルチカレンシーであるため、ストラテジーテスターでは使用できません。スクリプトとして実行可能です。
- 価格履歴は使用されません。アービトラージ理論は市場の非効率性(価格の非効率性)を利用するため、価格の性質は重要ではありません。
- アドバイザーは損失なしで機能します。
編集者のコメント:
これは、オリジナルのロシア語版のミラー翻訳です。
著者への質問、提案、コメントがある場合は、こちらに投稿するのが良いでしょう。
このコードが取引または教育目的に役立った場合は、著者に感謝するのを忘れないでください。



