エキスパート: 終値でのフラクタルEA

 

終値でのフラクタルEA:

「終値でのフラクタル」指標に基づいたエキスパートアドバイザーです。


作者: Vladimir Karputov

 

これは面白い!アイデアは良いが、フラクタルは役に立たない!フラクタルの インジケータをジグザグのインジケータに変えれば、結果はもっと良くなります!アドバイスをここに残しておきます!

 

考え方は同じですが、ジグザグ・インジケータを 使い、画像のようなギャップが発生した後にのみオープン・オーダーを行うことで、より興味深いEAができあがります!

ファイル:
zigzag.png  19 kb
 
kwlin_089:

考え方は同じですが、ジグザグ・インジケータを使い、画像のようなギャップの後にのみオープン・オーダーを出すことで、より面白いEAが出来上がります!


ZigZagのコードはこちら:Last ZZ50

ジグザグ・インジケータと未決済注文に基づくストラテジー。

このコードは、インジケーター「ZigZag」に基づくストラテジー・ブランチ「Last ZZ50」で生まれました。

アイデア作成者:Vitaly Muzichenko、MQL5コード実装者:Vladimir Karputov

戦略「Last ZZ50」の一般原則:

ZigZag "インジケーターに基づく戦略 - "Last ZZ50"

ジグザグ・インディケータでは、常にABと BCという 最後の2本の光線を考慮します。ABの 光線はまだ固定されておらず、変化する可能性のある光線です(ポイントAは その位置を変えることができます)。

未決注文は、AB 線とBC 線の中間に置かれます:

  • AB 線上の保留注文の発動は、BC 線が示すトレンドが継続 する場合です;
  • BC 線上の未決注文のトリガーは、BC 線によって示されるトレンドの反転の ケースです。

レイABは まだ固定されておらず、変化する可能性のあるレイであるため(ポイントAは その位置を変化させることができる)、保留中の注文は、その価格が常にレイABの 中央に位置するように常に変更されます。

オープンポジションのトレーリングは、次のルールに従って機能します:ポジションが少なくとも(トレーリングストップ+トレーリングステップ)ピップス利益(手数料とスワップを除く)になるまで待ち、その後、このポジションのトレーリングをオンにします。

 
Vladimir Karputov :

ジグザグにはこんなコードがあった:最後の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の 中央に位置するように常に修正される。

オープンポジションのトレーリングは、次のルールに従って機能します:ポジションが少なくとも(トレーリングストップ+トレーリングステップ)ピップス利益(手数料とスワップを除く)になるまで待ち、その後、このポジションのトレーリングをオンにします。

この「ラストZZ50」戦略の問題点は、インジケーターのジグザグの途中で多くの保留注文をオープンしてしまうことで、これは多くの損失やドローダウンにつながる多くの混乱を引き起こします。この "Fractals at Close Prices EA "インジケータを構築する方法は、ジグザグ・インジケータを適応させる方が面白いです。

EAを作る方法があれば、それは面白いでしょう!素晴らしいEAができると思います!
 
kwlin_089:
この "Last ZZ50 "戦略の問題点は、指標ジグザグの途中で多くの未決注文をオープンしてしまうことです。

連続オープンポジションの 数に制限を設けることは、決して遅すぎるということはありません。

 

逆シグナルで注文を閉じないようにする機能はありますか?

 

反対サインを有効/無効にするためのtrue/falseとか、反対サインで注文を閉じずにテストできるようにコードから抽出できるものを教えてください!このEAへのご協力ありがとうございました!

 
kwlin_089:

逆シグナルで注文を閉じないようにする機能はありますか?


その行をコメントアウトして ください:

   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)
     {
      // 一日中トレード!
     }
 
Vladimir Karputov :

これらの行をコメントアウトする 必要がある:

そうしたのですが、うまくいきませんでした。投稿されたコードのその部分は、どうやらチャートのオープンとクローズに関係しているようです!つまり、「ストップ・ロス」か「テイク・プロフィット」のときだけポジションをクローズ したいのです。

コードのこの部分をコメントアウトしようとしたところ、正しいことがわかったのですが、うまくいきません。

 //--- 
   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();
  }