MetaTrader 5 herunterladen

NewBar-Schleife bei und nach unterbrochener Internet-Verbindung

Einloggen oder registrieren, um einen Kommentar zu schreiben
benedikt.jones
35
benedikt.jones  

Hi Leute,


ich habe mir einen EA mit Trailing Stop programmiert. Wenn eine Position geöffnet wurde wird ein SL berechnet und mit ObjectCreate auf den Chart geplottet. In dem EA ist ein Schleife die bei jedem neuen Bar einen Counter hochzählt, der dann einen neuen SL berechnet und plottet.

int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
   if(copied>0) // ok, the data has been copied successfully
     {
      if(Old_Time!=New_Time[0]) // if old time isn't equal to new bar time
        {
         IsNewBar=true;   // if it isn't a first call, the new bar has appeared
         if(MQL5InfoInteger(MQL5_DEBUGGING)) Print("We have new bar here ",New_Time[0]," old time was ",Old_Time);
         Old_Time=New_Time[0];            
         tslCounter = tslCounter + 1;
        }
     }

   else
     {
      Alert("Error in copying historical times data, error =",GetLastError());
      ResetLastError();
      return;
     }

//--- EA should only check for new trade if we have a new bar
   if(IsNewBar==false)
     {
      return;     
     }
     
   datetime   lastbar_time = (datetime)SeriesInfoInteger(Symbol(), 0, SERIES_LASTBAR_DATE);

Bei jedem neuen Bar wird der SL neu berechnet. Das Ergebnis schaut dann so aus:

...

tslBuffer[tslCounter]=tslBuffer[tslCounter-1]+tafBuffer[tslCounter]*(tepBuffer[tslCounter]-tslBuffer[tslCounter-1]);

...

Die Buffer sind alle ArraySetAsSeries false. Also ich fange beim ersten SL mit 1 an und  zähle vorwärts.


Das Problme ist jetzt, dass nach einer unterbrochenen Internetverbindung in der Bars entstehen aber logischerweise nicht angezeigt werden der SL falsch berechnet wird. Ich hätte gerne, dass er die Stopps zu den Bars die währed der offline-Zeit entstanden sind nachberechnet. Ich denke, dass ich an der NewBar-Schleife etwas ändern muss, oder? Ich hatte mal einen Indicator der hat die rates_total mit dem prev_calculated verglichen und so die Schleife für die offline-Bars nach erneuter Internetverbindung nachberechnet.  Ich hoffe ich habs nicht zu verwirrend geschrieben und ihr versteht was ich meine...
Carl Schreiber
Moderator
8870
Carl Schreiber  

Die lokal fehlenden Bars werden vom Server nachgeladen.

Du (wir auch) kriegen eh nicht jeden Tick, aber die m1 Bars mit ohlc stimmen schon!

benedikt.jones
35
benedikt.jones  
Ja, das ist schon klar, dass die nachgeladen werden. Meine Frage bezieht sich darauf wie ich die Stops für die nachgeladenen Bars nachträglich berechnen kann. Meine NewBar Schleife zählt offenbar nur einmal hoch wenn alle fehlenden Bars nachgeladen werden. Gibt es sowas wie eine Nummer für jeden Bar oder einen Counter den ich auslesen kann? So wie rates_total und prev_calculated?
Carl Schreiber
Moderator
8870
Carl Schreiber  
Dein Zähler beginnt da, wo er aufgehört hat, also durchläuft er die nachgeladenen Bars - alles andere wäre doch falsch!
Einloggen oder registrieren, um einen Kommentar zu schreiben