Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1102

 
EgorKim:

Zum Beispiel so.

Und einige Optimierungsläufe fallen im Visualisierer zusammen.

Und bei manchen Pässen gibt es überhaupt keine einzige Transaktion.

Unstimmigkeiten können auf nicht initialisierte Werte im Indikatorpuffer zurückzuführen sein - wenn die Berechnung durchläuft, kann sich Müll im Puffer befinden.


Drucken Sie einfach die Pufferdaten, wenn das Signal erscheint.

 
Vladimir Karputov:

Unstimmigkeiten können durch nicht initialisierte Werte im Indikatorpuffer entstehen - wenn die Berechnung übergeht, kann sich Müll im Puffer befinden.


Drucken Sie einfach die Pufferdaten aus, wenn das Signal erscheint.

Sprechen Sie von einem EA?

Wenn über die EA - Ich bin Nullen alles in dem Beispiel.

Und wenn es um einen Indikator geht, kann man alles machen. Ich bin nicht der Autor.

 
EgorKim:

Meinen Sie den EA?

Wenn es sich um einen EA handelt, setze ich in dem Beispiel alles auf Null.

Aber wenn es um einen Indikator geht, kann das alles sein. Ich bin nicht der Autor.

Ich habe über den Indikator gesprochen: Wenn Sie einen Index im Puffer vermissen, kann es Müll geben. Generell gilt: Erst ein zuverlässiger Indikator - und dann der Expert Advisor, der ihn verwendet.

 
EgorKim:

Zum Beispiel so.

Und einige Optimierungsläufe fallen im Visualisierer zusammen.

Und einige Pässe passen überhaupt nicht zu den Angeboten

Ich denke, das Problem liegt im Indikator.

Und wie Artem zu Recht bemerkt hat, liegt das Problem in den tatsächlichen Daten.

Es will mir nur nicht sagen, wie ich es machen soll.)

Nein, ich habe mich geirrt, als ich dachte, dass Sie einen Multi-Timeframe-Indikator haben.

Sie haben den häufigsten Indikator, dessen Daten Sie aus dem Zeitrahmen eines anderen abrufen möchten.

In einem EA müssen Sie die Relevanz der Daten aus dem gewünschten Zeitrahmen überprüfen. Wenn für diesen Zeitrahmen noch keine Daten vorliegen, verlassen Sie ihn bis zum nächsten Tick.
Und dann, wenn alle Daten aus dem älteren Rahmen in der richtigen Menge empfangen werden - dann rufen Sie den Indikator.

Versuchen Sie, es so zu machen.

 
Artyom Trishkin:

Nein, ich habe mich geirrt, als ich dachte, dass Sie einen Multi-Timeframe-Indikator haben.

Sie haben den häufigsten Indikator, dessen Daten Sie aus dem Zeitrahmen eines anderen abrufen möchten.

Im Expert Advisor müssen Sie die Relevanz der Daten aus dem gewünschten Zeitrahmen überprüfen. Wenn es für diesen Zeitrahmen noch keine Daten gibt, verlassen Sie den Markt vor dem nächsten Tick.
Und dann, wenn alle Daten aus dem älteren Zeitrahmen in der richtigen Menge eingegangen sind, rufen Sie den Indikator auf.

Versuchen Sie, es so zu machen.

Wie macht man das? Ich meine, die Relevanz zu prüfen.

Nun, ich habe überprüft, dass es nicht 0,0 ist (Code oben).

Was kann ich sonst noch tun? Was der Indikator mir gibt, werde ich nehmen.

Dies ist die Aufgabe des Indikators.

 
EgorKim:

Wie macht man das? Ich meine, um zu prüfen, ob sie auf dem neuesten Stand ist.

Ich habe überprüft, dass es nicht 0,0 ist (Code oben).

Was kann ich sonst noch tun? Was ich von dem Indikator bekomme, bekomme ich auch.

Aus diesem Grund ist er ein Indikator.

Haben Sie den Indikator von KodoBase übernommen? Wenn ja, können Sie mir die URL nennen?

 
EgorKim:

Wie macht man das? Ich meine, um zu prüfen, ob sie auf dem neuesten Stand ist.

Ich habe überprüft, dass es nicht 0,0 ist (Code oben).

Was kann ich sonst noch tun? Was ich von dem Indikator bekomme, bekomme ich auch.

Aus diesem Grund ist er ein Indikator.

Der Fehler liegt in dem Indikator selbst.

Ich habe viele Expert Advisors umgeschrieben, und dieses Problem tritt zum ersten Mal auf.

Sie können den Expert Advisor selbst erstellen, ich habe die Logik oben angegeben.

Und Sie können sehen, wie schlecht sich das Terminal und das Prüfgerät verhalten. Die Ergebnisse sind unterschiedlich, auch wenn die Indikatorparameter gleich sind)

 
Vladimir Karputov:

Haben Sie den Indikator von KodoBase erhalten? Wenn ja, kann ich ihre URL haben?

Ja

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...
 

Im Allgemeinen können Sie es erst einmal testen (funktioniert mit dem IndikatorPlombiers - Oszillator im Kanal- der Indikator sollte sich im Ordner [Datenordner]\MQL5\Indikatoren\plombiers.mq5 befinden)


Idee einer Handelsstrategie

Der Expert Advisor arbeitet mit dem benutzerdefinierten IndikatorPlombiers. Für die Signalbildung werden zwei Linien des Indikators berücksichtigt: "Widerstand" und "Unterstützung".

Plombier EA

Signal für die Eröffnung einerBUY-Position: Der Tiefstpreis von Balken 1 lag unter der "Support"-Linie von Balken 1.

Signal zum Eröffnen einerSELL-Position: Das Kurshoch von Balken 1 war höher als die Widerstandslinie von Balken 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:

Im Allgemeinen können Sie es erst einmal testen (funktioniert mit dem IndikatorPlombiers - Oszillator im Kanal- der Indikator sollte sich im Ordner [Datenordner]\MQL5\Indikatoren\plombiers.mq5 befinden)


Idee einer Handelsstrategie

Der Expert Advisor arbeitet mit dem benutzerdefinierten IndikatorPlombiers. Für die Signalbildung werden zwei Linien des Indikators berücksichtigt: "Widerstand" und "Unterstützung".


Signal für die Eröffnung einerBUY-Position: Der Tiefstpreis von Balken 1 lag unter der "Support"-Linie von Balken 1.

Signal zur Eröffnung einerSELL-Position: Der Höchstkurs auf dem Balken #1 war höher als die "Widerstandslinie" auf dem Balken #1

Nehmen Sie die"Support"- und"Resistance"-Werte aus dem höheren Zeitrahmen

D.h. der MTF-Indikator muss in der Eingabe des Optimierers enthalten sein

input ENUM_TIMEFRAMES TimeFramePlombiers=PERIOD_H4;

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

Wie diese

Grund der Beschwerde: