Inside Bar - MQL5 rechnet falsch

Einloggen oder registrieren, um einen Kommentar zu schreiben
amando
938
amando  

Hallo,


kann da mal jemand drüberschauen? ich suche Innenbars, das funktioniert zu 2/3


die Definition von einem Innenbar ist recht einfach, (für den screenshot unten, ich übergebe shift mit 1)


bool InsideBarShort(const string sym,const ENUM_TIMEFRAMES tf,const int shift)
  {
   bool insidebar=false;
   double High1=iHigh(sym,tf,shift);
   double Low1=iLow(sym,tf,shift);

   double High2 = iHigh(sym,tf,shift+1);
   double Low2  =iLow(sym,tf,shift+1);

   double Spanne2;

   Spanne2=High2-Low2;

   if(//High1<(High2-((Spanne2/100)*ProzentHoeheBarvorInsideBar)) && 
      High2>= High1 &&
      Low2 <= Low1)
     {
      Print("-----------Low1: ",Low1," Low2: ",Low2, "High: ",High2-High1," Low: ",Low1-Low2);
      insidebar=true;
     }

   return(insidebar);
  }


wie gesagt, das funktioniert, nur halt nicht immer

Hier der Screenshot aus dem Strategietester




warum findet bei der Mittleren Formation ein Handel statt, die Funktion für den Handel ist ganz einfach

 if(Hour()>=Start && Hour()<=End && 
         InsideBarShort(_Symbol,PERIOD_M5,1) == true 

         )
        {
         OrderEinstig = High(_Symbol,PERIOD_M5,1);
         OrderStopLoss = High(_Symbol,PERIOD_M5,2)+SL*_Point;
         OrderTakeProfit = (OrderEinstig - TP*_Point);
         
         PendingOpen(_Symbol,ORDER_TYPE_SELL_LIMIT,Lots, OrderEinstig, OrderStopLoss, OrderTakeProfit,MN,Text,TimeCurrent()+60*60);

        }


handeln tut er, nur eben zeitweise falsch, die Innenbardefinition ist meines Erachtens richtig. Da kann man denke ich ja nicht viel falsch machen


eines möchtich noch dazusagen, die Funktion 

bool InsideBarShort(const string sym,const ENUM_TIMEFRAMES tf,const int shift)

befindet sich in einer #include falls das einen Unterschied macht


Hier hab ich noch ein Beispiel, der Deal inkl. der zugehörigen Order. Hier nimmt er das high 4 Bar davor, wie kann das in dem Code vorhanden sein?



ich kann mir auch nicht vorstellen, das die voreingestellte Latenzzeit von MT5 Strategietester darauf einfluss hat



und ich bin auch im Demo eingeloggt. Der Broker ist nur verdeckt, weil ich keine Werbung machen will. Ist aber ein Seriöser


danke

amando

Carl Schreiber
Moderator
7285
Carl Schreiber  

Ist wohl ein graphisches Problem!

Druck Dir die Kurse OHLC aus, dann wirst Du sehen, dass die Darstellung auf dem Chart nicht immer zu 100% stimmt.

amando
938
amando  
Carl Schreiber:

Ist wohl ein graphisches Problem!

Druck Dir die Kurse OHLC aus, dann wirst Du sehen, dass die Darstellung auf dem Chart nicht immer zu 100% stimmt.

ähhhhhh, naja, wenn ich schaue das er da den High von vor 4 Kerzen nimmt, glaub ich da nicht an ein graphisches Problem. 

Das liegt auch daran, das die Zeiten im Chart mit den Order Zeiten im Bericht genau passen.


Er nimmt nur falsche Werte


selbst wenns ein Problem mit der Darstellung wäre, das wäre noch immer eine Katastrophe

Carl Schreiber
Moderator
7285
Carl Schreiber  
Druck's Dir aus: if (close[i] >= D'2018.11.04 14:35' && cose[i] <= D'2018.11.04 14:55' ) Print(..)
amando
938
amando  
Carl Schreiber:
Druck's Dir aus: if (close[i] >= D'2018.11.04 14:35' && cose[i] <= D'2018.11.04 14:55' ) Print(..)

werd ich am abend probieren,


dann kopiere ich auch die Funktionen aus den #includes in einen ganzen ea und stell ihn hier rein, dann kannst Du gerne selbst auch testen

Hipp2018
27
Hipp2018  
Carl Schreiber:
Druck's Dir aus: if (close[i] >= D'2018.11.04 14:35' && cose[i] <= D'2018.11.04 14:55' ) Print(..)

Hmm,

wie bitte???

close[i] bezieht sich auf Schlusskurs der Kerze (war in MT4 mal so und im MT5 nicht mehr? ) und nicht auf den Timestamp dazu, oder???

Somit dürfte aus dem Vergleich n.V. nix werden ;-)

Gruß Joe

amando
938
amando  
Hipp2018:

Hmm,

wie bitte???

close[i] bezieht sich auf handelswert (war in MT4 mal so und im MT5 nicht mehr? ) und nicht auf den Timestamp dazu, oder???

Somit dürfte aus dem Vergleich n.V. nix werden ;-)

Gruß Joe

Da jast du natürlich recht joe

Hipp2018
27
Hipp2018  

Die Seitwärtsphase kenne ich aus der Markttechnik n.M.Voigt, und die handelt Ausbrüche.
Der Seitswärtsbereich kann nicht anhand von zwei 5Min-Vorkerzen festgemacht werden, auch wenn diese 10 Einminutenkerzen beinhaltet ;-)

Welche Strategie ist bei Dir beabsichtigt, Insidebartrading?
Das wäre doch zu unsicher, oder?

Möchte nur verstehen um was es geht.

Du hast natürlich Recht damit, das dieser eine Trade auf dem Chart nicht so sein dürfte.
Sehe da keinen Fehler im Proggi.

Empfehle diese Stelle sich Tick für Tick im Tester anzuschauen. Wäre ja ein echter Bug.
Live wäre es erklärbar wenn sich die Formation nachträglich ändert, also zum echtem Zeitpunkt alles I.O. war, und in der Nachbetrachtung andere Kerzen dastehen.
Da gab es mal Broker, die sich die Kerzen passend gemacht haben...
Ob die Methodik dazu noch includiert ist beim Broker weiß ich nicht. Damals schien es so.

Der Include dürfte nichts ausmachen, weil er ja zeitig zugeladen wird, während der Compiler seinen Dienst tutet :-)

Gruß Joe

amando
938
amando  
Hipp2018:

Die Seitwärtsphase kenne ich aus der Markttechnik n.M.Voigt, und die handelt Ausbrüche.
Der Seitswärtsbereich kann nicht anhand von zwei 5Min-Vorkerzen festgemacht werden, auch wenn diese 10 Einminutenkerzen beinhaltet ;-)

Welche Strategie ist bei Dir beabsichtigt, Insidebartrading?
Das wäre doch zu unsicher, oder?

Möchte nur verstehen um was es geht.

Du hast natürlich Recht damit, das dieser eine Trade auf dem Chart nicht so sein dürfte.
Sehe da keinen Fehler im Proggi.

Empfehle diese Stelle sich Tick für Tick im Tester anzuschauen. Wäre ja ein echter Bug.
Live wäre es erklärbar wenn sich die Formation nachträglich ändert, also zum echtem Zeitpunkt alles I.O. war, und in der Nachbetrachtung andere Kerzen dastehen.
Da gab es mal Broker, die sich die Kerzen passend gemacht haben...
Ob die Methodik dazu noch includiert ist beim Broker weiß ich nicht. Damals schien es so.

Der Include dürfte nichts ausmachen, weil er ja zeitig zugeladen wird, während der Compiler seinen Dienst tutet :-)

Gruß Joe

das ist noch keine strategie, ich will mal die Barformationen definieren bevor ich diese in einer Strategie verpacke.

amando
938
amando  
Carl Schreiber:
Druck's Dir aus: if (close[i] >= D'2018.11.04 14:35' && cose[i] <= D'2018.11.04 14:55' ) Print(..)


Hallo Carl,


Du hast natürlich recht, es handelt sich hier um einen Fehler in der Visuellen Darstellung. Der Fehler tritt aber auch auf, wenn ich den Backtest nicht visuell darstelle. Wenn ich die Zeiten vergleiche genau vergleiche dann stimmt deine Aussage. 

Die Frage ist natürlich, wie kann das sein? Was gedenkt Metaquotes dagegen zu unternehmen?

Ich finde das als mittlere Katastrophe wenn die Visuelle Darstellung im Backtest nicht stimmt. Ich verwende diese ja, um Ordersetzungen zu überprüfen. Was kann man Metaqutes dann noch glauben ausser NIX?????????????

Gibts eine Roadmap um den Fehler zu beheben? 

Einloggen oder registrieren, um einen Kommentar zu schreiben