ホーム システムトレード 投稿

トレードアービトラージ - MetaTrader 4のためのエキスパートアドバイザー

添付ファイル
9356.zip (10.31 KB, ダウンロード 0回)

理論:

まず、EURUSDでの動作を考えてみましょう。ここでは、2つの合成ペアEURUSDxEURUSDyを想像します。

これらは類似した動態を持つため、これらのペアで反対のポジションを開くと、ヘッジポジションが形成されます。

オープン: 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 - BIDxASKyの間で許可される最小差(アービトラージとして)です。
  • SlipPage - Marketオーダーに対するブローカーが許可するスリッページ(ブローカーによって異なります)。
  • Lock - ロックを許可するか(TRUE)しないか(FALSE)。
  • Lots - オープン/クローズのポジションボリューム。
  • MaxLot - ブローカーが許可する最大ロット(実際)。
  • MinLot - ブローカーが許可する最小ロット(実際)。
  • Monitoring - アービトラージケースをファイルにログするか(TRUE)しないか(FALSE)。ログには時間がかかる場合があり、これはアービトラージにとって重要かもしれません。
  • TimeToWrite - アービトラージ統計データのログ時間期間(分)(ArbitrageStatistic.txt用)。

エキスパートが正しく機能する(マルチカレンシーヘッジを壊さない):

  • 取引オーダーエラー(拒否など)。
  • 部分的執行(部分的な約定)。一部のブローカーではこれが許可されています。
  • 機能として、ブローカーが許可する最小ロット(MinLot)。
  • Lock = TRUEの場合、最小限の取引オーダーを使用します。
  • ロックケースを禁止することができます(Lock = FALSE)。

考えられる問題:

  • マイナススリッページや手数料が利益を削る。
  • 長時間の取引オーダー実行時に、他のシンボルの価格が大きく変動する場合がある。
  • 非同期の取引オーダー処理。
  • アービトラージの時間が短い。

改善の可能性:

  • リミットオーダーの使用
  • さまざまなシンボルへの同時送信(非同期エミュレーション)のための、複数のターミナルからの取引オーダー。
  • ブローカーの時間管理についての非同期
  • 他のMinPipsアービトラージ条件で使用するための、より多くの統計情報の収集と利用。例えば、BIDx - ASKy> SPREADx + SPREADy
  • アービトラージの持続時間に関する統計情報の収集と利用。
  • 市場オーダーキューの優先順位(例えば、最大ティックボリュームのシンボルや極端なローカル価格のシンボルなど)。

特徴:

  • マルチカレンシーであるため、ストラテジーテスターでは使用できません。スクリプトとして実行可能です。
  • 価格履歴は使用されません。アービトラージ理論は市場の非効率性(価格の非効率性)を利用するため、価格の性質は重要ではありません。
  • アドバイザーは損失なしで機能します。

編集者のコメント:

これは、オリジナルのロシア語版のミラー翻訳です。

著者への質問、提案、コメントがある場合は、こちらに投稿するのが良いでしょう。

このコードが取引または教育目的に役立った場合は、著者に感謝するのを忘れないでください。

関連記事

コメント (0)