考え方は同じですが、ジグザグ・インジケータを 使い、画像のようなギャップが発生した後にのみオープン・オーダーを行うことで、より興味深いEAができあがります!
考え方は同じですが、ジグザグ・インジケータを使い、画像のようなギャップの後にのみオープン・オーダーを出すことで、より面白いEAが出来上がります!
ZigZagのコードはこちら:Last ZZ50
ジグザグ・インジケータと未決済注文に基づくストラテジー。
このコードは、インジケーター「ZigZag」に基づくストラテジー・ブランチ「Last ZZ50」で生まれました。
アイデア作成者:Vitaly Muzichenko、MQL5コード実装者:Vladimir Karputov。
戦略「Last ZZ50」の一般原則:

ジグザグ・インディケータでは、常にABと BCという 最後の2本の光線を考慮します。ABの 光線はまだ固定されておらず、変化する可能性のある光線です(ポイントAは その位置を変えることができます)。
未決注文は、AB 線とBC 線の中間に置かれます:
- AB 線上の保留注文の発動は、BC 線が示すトレンドが継続 する場合です;
- BC 線上の未決注文のトリガーは、BC 線によって示されるトレンドの反転の ケースです。
レイABは まだ固定されておらず、変化する可能性のあるレイであるため(ポイントAは その位置を変化させることができる)、保留中の注文は、その価格が常にレイABの 中央に位置するように常に変更されます。
オープンポジションのトレーリングは、次のルールに従って機能します:ポジションが少なくとも(トレーリングストップ+トレーリングステップ)ピップス利益(手数料とスワップを除く)になるまで待ち、その後、このポジションのトレーリングをオンにします。
ジグザグにはこんなコードがあった:最後のZZ50
ZigZagインジケータとペンディングオーダーに基づくストラテジー。
このコードは、Strategy based on ZigZag indicator - "Last ZZ50 " というブランチで生まれました。
アイデアの作者はVitaly Muzichenkoで、MQL5コードの実装はVladimir Karputov です。
ストラテジー「Last ZZ50」の一般原則:
ジグザグ・インジケータでは、常に最後の2本の光線、ABと BCを 考慮します。ABの 光線はまだ固定されておらず、変化する可能性のある光線です(ポイントAは その位置を変えることができます)。
保留中の注文は、AB 線とBC 線の中間に置かれます:
- AB 線上の未決注文の発動は、BC 線が示すトレンドが継続 する場合です;
- BC 線上の未決注文のトリガーは、BC 線によって示されるトレンドの反転の 場合です。
レイABは まだ固定されておらず、変化する可能性のあるレイであるため(ポイントAは その位置を変える可能性がある)、保留中の注文は、その価格が常にレイABの 中央に位置するように常に修正される。
オープンポジションのトレーリングは、次のルールに従って機能します:ポジションが少なくとも(トレーリングストップ+トレーリングステップ)ピップス利益(手数料とスワップを除く)になるまで待ち、その後、このポジションのトレーリングをオンにします。
EAを作る方法があれば、それは面白いでしょう!素晴らしいEAができると思います!
この "Last ZZ50 "戦略の問題点は、指標ジグザグの途中で多くの未決注文をオープンしてしまうことです。
連続オープンポジションの 数に制限を設けることは、決して遅すぎるということはありません。
逆シグナルで注文を閉じないようにする機能はありますか?
反対サインを有効/無効にするためのtrue/falseとか、反対サインで注文を閉じずにテストできるようにコードから抽出できるものを教えてください!このEAへのご協力ありがとうございました!
逆シグナルで注文を閉じないようにする機能はありますか?
その行をコメントアウトして ください:
if(InpStarHour<InpEndHour) // 1日での取引 { if(time_current<time_start || time_current>=time_end) { CloseAllPositions(); return; } } else if(InpStarHour>InpEndHour) // 翌日のトランジションで取引 { if(struct_time_current.hour<InpStarHour && struct_time_current.hour>=InpEndHour) { CloseAllPositions(); return; } } else if(InpStarHour==InpEndHour) { // 一日中トレード! }
これらの行をコメントアウトする 必要がある:
そうしたのですが、うまくいきませんでした。投稿されたコードのその部分は、どうやらチャートのオープンとクローズに関係しているようです!つまり、「ストップ・ロス」か「テイク・プロフィット」のときだけポジションをクローズ したいのです。
コードのこの部分をコメントアウトしようとしたところ、正しいことがわかったのですが、うまくいきません。
//--- if (last_lower!= EMPTY_VALUE && previous_lower!= EMPTY_VALUE ) if (previous_lower<last_lower) { ClosePositions( POSITION_TYPE_SELL ); if (CalculatePositions( POSITION_TYPE_BUY )== 0 ) { double sl=(InpTakeProfit== 0 )? 0.0 :m_symbol. Ask ()-ExtStopLoss; double tp=(InpStopLoss== 0 )? 0.0 :m_symbol. Ask ()+ExtTakeProfit; OpenBuy(sl,tp); } } if (last_upper!= EMPTY_VALUE && previous_upper!= EMPTY_VALUE ) if (previous_upper>last_upper) { ClosePositions( POSITION_TYPE_BUY ); if (CalculatePositions( POSITION_TYPE_SELL )== 0 ) { double sl=(InpTakeProfit== 0 )? 0.0 :m_symbol. Bid ()+ExtStopLoss; double tp=(InpStopLoss== 0 )? 0.0 :m_symbol. Bid ()-ExtTakeProfit; OpenSell(sl,tp); } } //--- Trailing(); }
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
終値でのフラクタルEA:
「終値でのフラクタル」指標に基づいたエキスパートアドバイザーです。
作者: Vladimir Karputov