
EAには、ユーザーがその動作を制御するために変更することができるいくつかの外部パラメータが用意されています:
| パラメータ | タイプ | 説明 |
| マジックナンバー | int | EAのトレードのための一意の識別子。 |
| イニシャルロット | double | シリーズの最初の取引の開始ロットサイズ。 |
| 買い許可 | ブール | EAが買い取引(イニシャルおよびマーチンゲール)をオープンすることを許可するフラグ。 |
| 売り許可 | ブール | EAに売り取引(初期およびマーチンゲール)を許可するフラグ。 |
| 利益確定 | int | 保留注文を発注する際に使用されるポイント/pips単位の固定利食い。 |
| ハイローバックバー検索 | int | 最初の保留注文を発注する際に、最高値と最安値を決定するために遡る前のバーの数。 |
| ResetAfterBars | int | 最初の未決注文が削除され、再評価されるまでのバー数 (ポジションがオープンされていない場合)。 |
| パラメータ | タイプ | 説明 |
| リバースマーチンゲール | ブール | trueの場合、その後のマーチンゲールトレードは、そのシリーズの最後のトレードの反対 方向になります(これは通常、アンチマーチンゲールまたはヘッジアプローチになりますが、コードはfalseの場合、同じ方向にオープン します)。現在のロジックでは、ReverseMartingaleがfalseの場合、同じ 方向にオープンします。 |
| ロット倍率 | 倍。 | 損切りシリーズの次の取引でロットサイズを乗じる係数 (例えば、 2.0 はロットを 2 倍にすることを意味します)。 |
| セキュアプロフィットマーチンゲールターゲット | 倍 | 一連の未決済取引を決済する際の、総浮動利益(口座通貨建て)。 |
| 距離マーチンゲールピップス | int | 新しいマーチンゲール取引が開始される前に、価格が最後の取引のオープン価格に対して移動しなければならない距離(pips単位)。 |
| MaxTradesInシリーズ | int | 一つのマーチンゲールシリーズで可能な最大取引回数。 |
| パラメータ | タイプ | 説明 |
| 月曜日を許可...金曜日を許可する | ブール | 特定の曜日の取引を有効または無効にするフラグ。 |
| 取引禁止日 | 文字列 | 取引が禁止されている日付(フォーマットYYYY.MM.DD)のカンマ区切りリスト。 |
EAのMagicNumber、マージンモード、偏差を設定します。マーチンゲールステータス 変数(s_currentLot、s_totalTradesInSeriesなど)を初期値にリセット し、再スタートの準備をします。
EA が停止または削除されたときにメッセージを表示する、クリーンアップのためのシンプルな関数です。
これらの関数は、現在の曜日と日付をユーザー定義の入力 ( AllowMonday ~ AllowFriday および ForbiddenDates ) と照合して、取引が許可されているかどうかを判断します。
この関数は、新規のマーケットポジション(買いまたは売り)のオープンを処理します。
この関数は、ブローカーの最小、最大、およびステップサイズに対してロットサイズを検証し、正規化します。
CheckMargin() を使用して、十分な証拠金が あるかどうかをチェックします。
固定テイクプロフィットまたは固定ストップロスなしで 取引を実行します ( tp_calculated は 0)。
s_currentLot 、 s_lastOpenPrice 、 s_seriesType 、および s_totalTradesInSeries 。
現在オープンしているすべてのポジションを繰り返し、この EA によってオープンされた (MagicNumber に一致する) すべてのポジションをクローズします。
この関数は、買い指値 注文または売り指値 注文を発注します:
ロットサイズを検証し、十分な証拠金があるかどうかをチェックします。
エントリー価格をブローカーの最小距離 ( SYMBOL_TRADE_STOPS_LEVEL ) と照合します。
入力された TakeProfit に基づいて、固定のテイクプロフィット ( tp ) を計算します。
取引要求を送信します。注: UpdateHighLowAndOrders 関数は、最初の買い指値注文と売り指値注文を発注するためにこの関数を呼び出します。
これは、ポジションが開いていないときの最初のエントリーメカニズム です:
FindHighLowBackBars を検索して、最高値と 最安値を 見つけます。
priceSellLimit(最高値+ 1ティック)とpriceBuyLimit(最安値- 1ティック)を計算します。
EA の MagicNumber を指定した買い指値注文と売り指値注文が既に存在するかどうかをチェックします。
直近の最高値のすぐ上に最初の売り指値 注文を、直近の最安値のすぐ下に買い指値 注文を、それぞれ InitialLot を使って発注します。
EAの実行ロジックの中核:
時間チェック: 同じティックでの冗長な計算を防ぎます。
フィルターチェック: 曜日/日付で取引が許可されていない場合、保留中の注文をすべて削除します。
利益目標チェック(シリーズ終了): eaHasOpenPositions が真であり、かつ totalFloatingProfit が≥ SecureProfitMartingaleTarget である場合、CloseAllPositions() を呼び出し、すべてのマーチンゲール状態変数をリセットして 新しいシリーズを開始します。
最初の注文配置: eaHasOpenPositions AND 取引が許可されている場合、マーチンゲールステータスをリセット し、新しいバーが形成されているかどうかをチェックします。
新しいバーが形成された場合、barsCount が≥ ResetAfterBars かどうかをチェックします。そうであれば、保留中の注文を削除し、UpdateHighLowAndOrders() を呼び出して、新しい初期注文を発注します。そうでない場合は、UpdateHighLowAndOrders() を呼び出すだけです。
マーチンゲールステップロジック: eaHasOpenPositionsがtrueで、s_totalTradesInSeriesが$<MaxTradesInSeries`の場合:
totalFloatingProfitがマイナス であり、価格が最後のオープントレードに対して少なくともDistanceMartingalePips動いたかどうかをチェックします。
両方の条件が満たされた場合、s_currentLotにLotMultiplierを乗じてnextLotを計算します。
OrderToOpenの方向を決定します(シリーズと同じ方向、またはReverseMartingaleに基づく逆方向のいずれか)。
OpenTradeLogic()をコールして、マーチンゲールシリーズを継続しながら、乗算された新しいポジションをオープンします。
Babi Ngepet" EA は、ブレイクアウト/レンジ反転の初期エントリーと組み合わされた、リ スクは高いがハイリターンの可能性のあるマーチンゲール戦略を実装しています:
初期エントリー: EAは最初の買い指値(直近の安値より下)と売り指値(直近の高値より上)を置きます。価格が安値まで下落したら買いを入れ、価格が高値まで上昇したら売りを入れます。
取引管理: 初期取引の1つがトリガーされ、ポジションが総合損失(マイナスの変動利益)に移行し、価格が定義された距離だけオープンポジションに対して動き続けた場合、EAはより大きなロットサイズ(マーチンゲール)で同じ方向に新しいポジションを オープンします。
終了戦略: 一連の取引は、シリーズ内のすべての取引の浮動利益の合計がSecureProfitMartingaleTargetに達するまでロットサイズを増やし続け、その時点ですべてのポジションが決済され、EAは新しいシリーズに向けてリセットされます。
警告 マーチンゲール戦略は、負けたステップの後にロットサイズが増加するため、ドローダウンが大きく、キャピタルロスのリスクが高いことで知られています。
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/64444
Trap News MT5
トラップニュース用スクリプト
コピアマシンMT5
KopierMaschineは、異なるMetaTrader 4とMetaTrader 5口座間の取引を、直感的なインターフェイスで1台のコンピュータにある任意の方向にローカルコピーします。
確率論FXエキスパートアドバイザー
確率論アドバイザー
Breakout Strategy with Prop Firm Helper Functions
これは「シンプルで効果的なブレイクアウト戦略」のアップデートである。このコードでは、プロップ・ファーム・チャレンジのためのヘルパー関数をいくつか追加しました。