Warum flackern die Indikatoren (Linien, Pfeile, Histogramme) auf dem MT5-Terminal? - Seite 7

 
Ich weiß nicht, ob es helfen wird, aber ich habe dieses Problem so gelöst: in dem Code, wo die Schleife wie for(int i=rates_total-prev_calculate; i>=0;i--) ersetzt rates_total-prev_calculate mit einem numerischen Wert von 1500 und Flicker gestoppt!
 
Dmitry Melnichenko: Ich weiß nicht, ob es hilft, aber ich löste dieses Problem auf diese Weise: Ich ersetzte rates_total-prev_calculate durch numerischen Wert 1500 in den Code, wo Schleife ist wie for (int i=rates_total-prev_calculate; i>=0;i--) und Flackern gestoppt!

Seltsam, dadurch haben Sie gerade die Anzahl der in der Schleife zu verarbeitenden Takte auf 1500 begrenzt, d.h. Sie stellen fest, dass das Flimmern verschwindet, wenn Sie die Anzahl der zu verarbeitenden Takte stark begrenzen (um eine Größenordnung oder sogar um 2 Größenordnungen). Vielleicht ist da etwas drin, ich werde es überprüfen müssen.

Dann würde die Funktion OnCalculate() aus dem ersten Beispiel in diesem Thread wie folgt aussehen:

//+------------------------------------------------------------------+
//| Custom indicator iteration function
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,      // размер входных таймсерий 
                 const int prev_calculated,  // обработано баров на предыдущем вызове 
                 const datetime& time[],     // Time 
                 const double&   open[],     // Open 
                 const double&   high[],     // High 
                 const double&   low [],     // Low 
                 const double&   close[],    // Close 
                 const long& tick_volume[],  // Tick Volume 
                 const long& real_volume[],  // Real Volume 
                 const int&  spread[])       // Spread 
{
// int N=rates_total-prev_calculated; if (N>MAX_PERIOD) N-=MAX_PERIOD;

   for (int i=1500; i>0 && !IsStopped(); i--) {
      double ma_fast=getMA(ma_fast_handle, i);
      double ma_slow=getMA(ma_slow_handle, i);;
      aom=ma_fast-ma_slow;
      if (aom>last_aom) {aUP[i]=aom; aDN[i]=EMPTY_VALUE;}
      else              {aDN[i]=aom; aUP[i]=EMPTY_VALUE;}
      last_aom=aom;
   }
   aUP[0]=EMPTY_VALUE; aDN[0]=EMPTY_VALUE;
   return(rates_total);
}

Aber es löst das Problem nicht als Ganzes, wenn wir den Indikator auf dem gesamten Satz von Bars anzeigen müssen.

 

Offenbar sendet das Terminal keine Bestätigung an den Makler, dass der Kursverlauf geändert wurde. (vielleicht leistet das Antivirusprogramm Widerstand).

Aber der Makler (der Server des Maklers) sendet und sendet, "wir müssen den Kursverlauf ändern".

Oder Ihr Computer ist zu schwach für MT5, um Zeit zu haben, den Kursverlauf zu ändern, bevor der Broker die neuen Kurse sendet.

 
Sergey Chalyshev:

Offenbar sendet das Terminal keine Bestätigung an den Makler, dass der Kursverlauf geändert wurde. (vielleicht leistet das Antivirusprogramm Widerstand).

Aber der Makler (der Server des Maklers) sendet und sendet, "Sie müssen den Kursverlauf ändern".

Oder Ihr Computer ist zu schwach, um den Kursverlauf zu ändern, bevor der Makler den neuen Kursverlauf sendet.

ZZ flackert auch an Wochenenden.
 
-Aleks-:

ZZ flackert auch an den Wochenenden.

Dies hängt vom Broker und seinen Servereinstellungen ab. Der MQL-Demoserver zum Beispiel schreibt den Verlauf nach 3 Stunden neu.

Vielleicht liege ich falsch, hoffentlich kommen die Entwickler der Plattform und erklären es.


 
Sergey Chalyshev:

Dies hängt vom Broker und seinen Servereinstellungen ab. Der MQL-Demoserver zum Beispiel schreibt den Verlauf nach 3 Stunden neu.

Vielleicht liege ich falsch, hoffentlich kommen die Entwickler der Plattform und erklären es.

Ich habe einen Broker namens Otkritie - kein Demokonto.

Die Entwickler sind schweigsam wie Partisanen.

 
-Aleks-:

Ich habe einen Broker namens Otkritie - kein Demokonto.

Die Entwickler schweigen wie ein Parteigänger.


ChartRedraw

Bewirkt, dass das angegebene Diagramm zwangsweise neu gezeichnet wird.

Steht das im Code?

 
Sergey Chalyshev:

ChartRedraw

Bewirkt, dass das angegebene Diagramm zwangsweise neu gezeichnet wird.

Gibt es eine im Code?

Nein.
 
-Aleks-:

Nein.

Ist dieser spezielle Indikator fehlerhaft? Ich werde mir das in Ruhe ansehen.

 
Sergey Chalyshev:

Ist dieser spezielle Indikator fehlerhaft? Ich werde mir das in Ruhe ansehen.

Ich spreche von dem Standard-ZigZag-Indikator von MT5.