初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1102

 
EgorKim:

こんな感じ。

そして、いくつかのオプティマイザーパスはビジュアライザーで一致します。

そして、あるパスは-まったく一度も取引していない。

不一致の原因は、インジケータ・バッファの 未初期化値、つまり計算が通ったときにバッファにゴミが残っている可能性があります。


信号が表示されたら、バッファーのデータを印刷するだけです。

 
Vladimir Karputov:

インジケータ・バッファの 値が初期化されていないため、不一致が発生することがあります。


信号が表示されたら、バッファデータをプリントアウトするだけです。

EAのことですか?

EAについてですが、私は例の中ですべてゼロにしています。

そして、インジケーターということであれば......何でもできる。私は作者ではありません。

 
EgorKim:

EAのことですか?

EAの話なら、例によって全部ゼロにしてる。

でも、指標ということであれば、何でもいいんです。私は作者ではありません。

インジケーターの話ですが、バッファにあるインデックスを見逃すと、ゴミが出る可能性があります。一般的には、まず信頼できるインジケータ、そしてそれを使用するExpert Advisorが必要です。

 
EgorKim:

こんな感じ。

そして、いくつかのオプティマイザーパスはビジュアライザーで一致します。

また、全くトレードにマッチしないパスもあります

問題はインジケーターにあると思います。

また、アルテムさんが正しく指摘されているように、問題は実際のデータにあります。

ただ、その方法を教えてくれないのです)

いや、マルチタイムフレームのインジケータを持って いると思ったのは間違いでした。

あなたは、誰かのタイムフレームからデータを取得したい最も一般的なインジケータを持っています。

EAでは、目的の時間枠のデータとの関連性を確認する必要があります。この時間枠のデータがまだない場合は、次のティックまで終了します。
そして、olderframeからのデータがすべて正しいボリュームで受信されたら、インジケータを呼び出すのです。

このようにしてみてください。

 
Artyom Trishkin:

いや、マルチタイムフレームのインジケータを持っていると思ったのは間違いでした。

あなたは、誰かのタイムフレームからデータを取得したい最も一般的なインジケータを持っています。

Expert Advisorでは、目的の時間枠のデータとの関連性を確認する必要があります。この時間枠のデータがまだない場合は、次のティックまで終了します。
そして、古いタイムフレームのデータがすべて正しいボリュームで受信されたとき、次に、インジケータを呼び出します。

このようにしてみてください。

どうやるんですか?その関連性を確認するという意味です。

さて、0.0でないことを確認します(上のコード)。

他に何かできることはありますか?インジケーターが与えてくれるもの、私はそれを受け取ります。

これがインジケーターの役割です。

 
EgorKim:

どうやるんですか?最新版かどうかを確認するという意味です。

さて、私はそれが0.0でないことを確認します(上記のコード)。

他に何かできることはありますか?インジケーターから得られるもの、得られるもの。

そのための指標となる。

KodoBaseからインジケーターを取り込んだのですか?もしそうなら、そのURLを教えてください。

 
EgorKim:

どうやるんですか?最新版かどうかを確認するという意味です。

さて、私はそれが0.0でないことを確認します(上記のコード)。

他に何かできることはありますか?インジケーターから得られるもの、得られるもの。

そのための指標となる。

インジケーター自体にエラーがあります。

これまで多くのExpert Advisorを書き換えてきましたが、この問題が発生するのは初めてです。

Expert Advisorは、自分で見て構築しても構いませんが、上記でロジックを示しました。

そして、端末とテスターの挙動がいかに悪いか、おわかりいただけると思います。指標となるパラメータが同じでも結果が異なる)

 
Vladimir Karputov:

インジケーターはKodoBaseから入手されたのでしょうか?その場合、そのURLを教えてください。

はい

https://www.mql5.com/ru/code/64

Plombiers - Осциллятор в канале
Plombiers - Осциллятор в канале
  • www.mql5.com
Просмотров: 6747 Рейтинг: Опубликован: 2010.01.26 12:54 Обновлен: 2016.11.22 07:33 Пример использования канала и осциллятора Stochastic. Иногда полезно смотреть поведение осциллятора в канале. Оценка ситуации упрощается. Изменяя параметры, можно гибко настроить отображение индикатора. Bulls Bears Power...
 

とりあえずテストしてみましょう(works on indicatorPlombiers - oscillator in the channel- indicator should be in folder [data folder]\MQL5Indicatorsplombiers.mq5)


取引戦略の考え方

エキスパートアドバイザーは、カスタムインジケーターPlombiersを 使用して動作します。 シグナルの形成には、「抵抗線」と「支持線」の2つのラインが考慮されます。

プロンビエEA

買い ポジション開始の合図:バー#1の安値がバー#1の「サポート」ラインの下にあった こと。

売りポジションを建てるシグナル:バー#1の価格高値がバー#1の「抵抗線」よりも 高かったこと

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double means[],resistance[],support[];
   MqlRates rates[];
   ArraySetAsSeries(means,true);
   ArraySetAsSeries(resistance,true);
   ArraySetAsSeries(support,true);
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iCustom,0,start_pos,count,means) || 
      !iGetArray(handle_iCustom,1,start_pos,count,resistance) || 
      !iGetArray(handle_iCustom,2,start_pos,count,support) || 
      CopyRates(m_symbol.Name(),Period(),start_pos,count,rates)!=count)
     {
      return(false);
     }

   int size_need_position=ArraySize(SNeedPosition);
   if(rates[1].low<support[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
     }
   if(rates[1].high>resistance[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
     }
//---
   return(true);
  }
 
Vladimir Karputov:

とりあえずテストしてみましょう(works on indicatorPlombiers - oscillator in the channel- indicator should be in folder [data folder]\MQL5Indicatorsplombiers.mq5)


取引戦略の考え方

エキスパートアドバイザーは、カスタムインジケーターPlombiersを 使用して動作します。 シグナルの形成には、「抵抗線」と「支持線」の2つのラインが考慮されます。


買い ポジション開始の合図:バー#1の安値がバー#1の「サポート」ラインの下にあった こと。

売りポジションを 持つためのシグナル:バー#1の高値がバー#1の "Resistance "ラインより高い こと

上位のタイムフレームから「サポート」「レジスタンス」の値を取る

つまり、オプティマイザーの入力にMTFインジケータが必要です

input ENUM_TIMEFRAMES TimeFramePlombiers=PERIOD_H4;

handle_Plombiers=iCustom(Symbol(),TimeFramePlombiers,"plombiers",итд);

このように

理由: