Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Danke, ich muss meinen Code auch korrigieren, wenn exact true ist, da ich diesen Parameter missverstanden habe. Englisch Dokumentation für iBarShift ist falsch.
Ich denke, das ist auch mein Fehler, iBarShift sollte Bar zurückgeben, die angegebene Zeit enthalten (nicht mit genauen offenen Zeit).
Könnte ich Ihre Funktion in meiner Bibliothek verwenden (natürlich mit Ihren Urheberrechten)? Wenn es schneller und korrekt ist, warum sollte ich das Rad neu erfinden?)
Ich denke, das ist auch mein Fehler, iBarShift sollte Bar zurückgeben, die angegebene Zeit enthalten (nicht mit genauen offenen Zeit).
Könnte ich Ihre Funktion in meiner Bibliothek verwenden (mit Ihren Urheberrechten, natürlich)? Wenn sie schneller und korrekt ist, warum sollte ich das Rad neu erfinden?)
Danke, ich muss meinen Code auch korrigieren, wenn exact true ist, da ich diesen Parameter missverstanden habe. Die englische Dokumentation für iBarShift ist falsch.
Der mql5-Fehler betrifft die Funktion Bars(), ich habe ihn dem Service Desk gemeldet.
Build 880 behebt den Fehler bei Bars(), und alles funktioniert jetzt gut.
auf m2 mit m1 die Werte bei trudy, aus irgendeinem Grund haben Werte nicht -1, und bei Null bar gibt es eine Rückkehr zum 1. bar.
Die Funktion ist an mindestens zwei Stellen schief:
1) if(time>LastBar)
return(0);
Wenn exact=true, sollte die Logik -1 zurückgeben, wenn die Zeit nicht explizit zum letzten Balken gehört, d.h. wenn time>LastBar+PeriodSeconds(timeframe).
2) if(CopyTime(symbol,timeframe,time,1,checkcandle)==1)
...
return(-1);
Auch hier gilt: Wenn exact=false, sollte der nächstgelegene Balken zurückgegeben werden, in diesem Fall Bars(symbol,timeframe)-1.
Ich glaube, es gibt einen kleinen Fehler in Ihrem Code:
Wenn der letzte Tick einen neuen Balken 'eröffnet', dann wird if(time>LastBar) zu false - weil jetzt time == LastBar
Und später landen wir hier:
Und nun ist shift == 0, was -1 statt 0 ergibt!
Ich denke also, dass dies:
sollte geändert werden in
Calli
Ich glaube, es gibt einen kleinen Fehler in Ihrem Code:
Wenn der letzte Tick einen neuen Balken "öffnet", dann wird if(time>LastBar) zu false - weil jetzt time == LastBar
Und später landen wir hier:
Und jetzt shift == 0 , was -1 statt 0 ergibt!
Ich denke also, dass dies:
sollte geändert werden in
Calli
Deine Korrektur würde auch funktionieren, aber der Fall 'time==LastBar' wird wie ein "normaler" Fall verarbeitet.
Die Anweisung
if(time>LastBar)wurde als Fehlerbehebung hinzugefügt, wenn die Zeit größer als die Zeit des aktuellen Balkens 0 ist.