無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ビュー:
104
評価:
(9)
パブリッシュ済み:
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

Expert Advisorパラメータ(入力)

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)のカンマ区切りリスト。

コア関数の概要

OnInit()(初期化)

EAのMagicNumber、マージンモード、偏差を設定します。マーチンゲールステータス 変数(s_currentLot、s_totalTradesInSeriesなど)を初期値にリセット し、再スタートの準備をします。

OnDeinit() (初期化)

EA が停止または削除されたときにメッセージを表示する、クリーンアップのためのシンプルな関数です。

IsTradingDateAllowed() および IsTradingDayAllowed() (取引フィルター)

これらの関数は、現在の曜日と日付をユーザー定義の入力 ( AllowMonday ~ AllowFriday および ForbiddenDates ) と照合して、取引が許可されているかどうかを判断します。

OpenTradeLogic(ENUM_ORDER_TYPE type, string tradeComment) (市場執行)

この関数は、新規のマーケットポジション(買いまたは売り)のオープンを処理します。

  1. この関数は、ブローカーの最小、最大、およびステップサイズに対してロットサイズを検証し、正規化します。

  2. CheckMargin() を使用して、十分な証拠金が あるかどうかをチェックします。

  3. 固定テイクプロフィットまたは固定ストップロスなしで 取引を実行します ( tp_calculated は 0)。

  4. s_currentLot 、 s_lastOpenPrice 、 s_seriesType 、および s_totalTradesInSeries 。

CloseAllPositions()

現在オープンしているすべてのポジションを繰り返し、この EA によってオープンされた (MagicNumber に一致する) すべてのポジションをクローズします。

PendingOrders(ENUM_ORDER_TYPE type, double price, double lotSize, string comment) (注文の保留)

この関数は、買い指値 注文または売り指値 注文を発注します:

  1. ロットサイズを検証し、十分な証拠金があるかどうかをチェックします。

  2. エントリー価格をブローカーの最小距離 ( SYMBOL_TRADE_STOPS_LEVEL ) と照合します。

  3. 入力された TakeProfit に基づいて、固定のテイクプロフィット ( tp ) を計算します。

  4. 取引要求を送信します。注: UpdateHighLowAndOrders 関数は、最初の買い指値注文と売り指値注文を発注するためにこの関数を呼び出します

UpdateHighLowAndOrders() (初期エントリーロジック)

これは、ポジションが開いていないときの最初のエントリーメカニズム です:

  1. FindHighLowBackBars を検索して、最高値と 最安値を 見つけます。

  2. priceSellLimit(最高値+ 1ティック)とpriceBuyLimit(最安値- 1ティック)を計算します。

  3. EA の MagicNumber を指定した買い指値注文と売り指値注文が既に存在するかどうかをチェックします。

  4. 直近の最高値のすぐ上に最初の売り指値 注文を、直近の最安値のすぐ下に買い指値 注文を、それぞれ InitialLot を使って発注します。

OnTick() (メインロジック)

EAの実行ロジックの中核:

  1. 時間チェック: 同じティックでの冗長な計算を防ぎます。

  2. フィルターチェック: 曜日/日付で取引が許可されていない場合、保留中の注文をすべて削除します。

  3. 利益目標チェック(シリーズ終了): eaHasOpenPositions が真であり、かつ totalFloatingProfit が SecureProfitMartingaleTarget である場合、CloseAllPositions() を呼び出し、すべてのマーチンゲール状態変数をリセットして 新しいシリーズを開始します。

  4. 最初の注文配置: eaHasOpenPositions AND 取引が許可されている場合、マーチンゲールステータスをリセット し、新しいバーが形成されているかどうかをチェックします。

    • 新しいバーが形成された場合、barsCount が ResetAfterBars かどうかをチェックします。そうであれば、保留中の注文を削除し、UpdateHighLowAndOrders() を呼び出して、新しい初期注文を発注します。そうでない場合は、UpdateHighLowAndOrders() を呼び出すだけです。

  5. マーチンゲールステップロジック: eaHasOpenPositionsがtrueで、s_totalTradesInSeriesが$<MaxTradesInSeries`の場合:

    • totalFloatingProfitがマイナス であり、価格が最後のオープントレードに対して少なくともDistanceMartingalePips動いたかどうかをチェックします。

    • 両方の条件が満たされた場合、s_currentLotにLotMultiplierを乗じてnextLotを計算します。

    • OrderToOpenの方向を決定します(シリーズと同じ方向、またはReverseMartingaleに基づく逆方向のいずれか)。

    • OpenTradeLogic()をコールして、マーチンゲールシリーズを継続しながら、乗算された新しいポジションをオープンします。


戦略の概要

Babi Ngepet" EA は、ブレイクアウト/レンジ反転の初期エントリーと組み合わされた、リ スクは高いがハイリターンの可能性のあるマーチンゲール戦略を実装しています:

  1. 初期エントリー: EAは最初の買い指値(直近の安値より下)と売り指値(直近の高値より上)を置きます。価格が安値まで下落したら買いを入れ、価格が高値まで上昇したら売りを入れます

  2. 取引管理: 初期取引の1つがトリガーされ、ポジションが総合損失(マイナスの変動利益)に移行し、価格が定義された距離だけオープンポジションに対して動き続けた場合、EAはより大きなロットサイズ(マーチンゲール)で同じ方向に新しいポジションを オープンします。

  3. 終了戦略: 一連の取引は、シリーズ内のすべての取引の浮動利益の合計がSecureProfitMartingaleTargetに達するまでロットサイズを増やし続け、その時点ですべてのポジションが決済され、EAは新しいシリーズに向けてリセットされます。

警告 マーチンゲール戦略は、負けたステップの後にロットサイズが増加するため、ドローダウンが大きく、キャピタルロスのリスクが高いことで知られています。


MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/64444

Trap News MT5 Trap News MT5

トラップニュース用スクリプト

コピアマシンMT5 コピアマシンMT5

KopierMaschineは、異なるMetaTrader 4とMetaTrader 5口座間の取引を、直感的なインターフェイスで1台のコンピュータにある任意の方向にローカルコピーします。

確率論FXエキスパートアドバイザー 確率論FXエキスパートアドバイザー

確率論アドバイザー

Breakout Strategy with Prop Firm Helper Functions Breakout Strategy with Prop Firm Helper Functions

これは「シンプルで効果的なブレイクアウト戦略」のアップデートである。このコードでは、プロップ・ファーム・チャレンジのためのヘルパー関数をいくつか追加しました。