Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 984
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
Aber Tatsache ist, dass. Der Ruhezustand sollte keine Auswirkungen auf die Neuberechnung der Daten im Indikator haben. Mit der Pufferbefüllung stimmt etwas nicht. Vielleicht gibt es ein reproduzierbares Stück Code?Der Indikator wurde auf Bestellung geschrieben - es ist ein wildes OOP, ich verstehe es nicht :(
Ich habe die ganze Nacht mit diesem Problem verbracht, während ich den Grund für die Abweichung zwischen Tester und echtem Konto gefunden habe, vielleicht werde ich nach dem Schlafen einige der geheimen Logik entfernen und sie zur Überprüfung veröffentlichen.
Ich konfrontiert ein Problem, der Indikator basierte EA funktioniert korrekt auf einem realen Konto, aber es liegt in der Tester, in Tick Generation Modi sowohl durch OHLC und durch alle Ticks - das Ergebnis ist das gleiche. Das Ergebnis des Fehlers ist der leere Puffer des Indikators beim Null-Bar (nur wenn es einen neuen Bar am oberen TF gibt, der für die Berechnung des Indikators verwendet wird). Ich habe es jedoch geschafft, den Indikator zu berechnen, indem ich Sleep zu meinem Expert Advisor hinzufügte. Aber ich habe herausgefunden, dass dieser Sleep je nach Modus der Tick-Generierung unterschiedlich sein sollte - für die Generierung aus allen Ticks ist Sleep(15000) ausreichend, während für OHLC Sleep(30000) benötigt wird.
Es stellt sich also die Frage, ob die Situation mit Sleep normal ist, denn es stellt sich logischerweise heraus, dass dort unterschiedliche Verzögerungszeiten modelliert werden, abhängig von der Art der Tick-Erzeugung!
Liebe Entwickler, ich bitte Sie, die Situation mit dem Indikator zu erklären, weil ich selbst nicht verstehen kann, was der Grund ist - ein Fehler im Code oder im Tester!
Ich bin bereit, Ihnen den Indikator und den Expert Advisor in der PM zu geben, aber sagen Sie mir, an wen.
Wenn Sie den Preis in ein Array kopieren wollen, müssen Sie prüfen, ob die Historie verfügbar ist und ob der Preis nicht geändert wurde. Zu diesem Zweck müssen wir prüfen, ob der Verlauf für TF verfügbar ist. Wenn nicht, sollten wir versuchen, ihn erneut zu kopieren und warten, bis er in die Schleife geladen wurde.
das ist eine schlechte Hand des Programmierers, wenn er das nicht wusste
Schlupf ist nicht normalBitte erklären Sie...
Ich drücke die Taste = Ich erhalte Ereignis-ID = 0. Dies kann viele Male wiederholt werden. Das Ergebnis ist dasselbe, solange die Leertaste nicht gedrückt wird.
Ich drücke die Leertaste = Ich erhalte die Ereignis-ID = 0. Danach führen alle Eingaben auf der Tastatur zu keinem Ereignis mehr.
Um aus dem Stupor herauszukommen, drücke ich die Maustaste = ich erhalte die Ereignis-ID = 4. Danach können Sie wieder auf die Tastatur klicken = für jeden Klick kommen Ereignisse. Solange keine Leertaste gedrückt wird = mit dem gleichen Ergebnis.
Frage: Bin ich ein Narr, der etwas nicht versteht, oder sollte es nicht so sein? Bitte geben Sie einen Link an.
Hallo Kollegen.
Frage: Um in mql4 die Anzahl der Positionen zu berechnen, kann man die Funktion wie folgt schreiben
Wie wird dies in mql5 umgesetzt? Wie kann ich Positionen nach magischer Zahl oder nach Art berechnen?
Fügen Sie diese Zeile vor der MQL4-Funktion ein
und es wird in MT5 funktionieren.
Die Sache mit den Indikatoren ist, dass die Zeitreihe noch nicht fertig ist, d.h. sie kann den Preis nicht sofort in ein Array kopieren. Zu diesem Zweck sollten wir prüfen, ob der Verlauf für TF verfügbar ist. Wenn nicht, sollten wir versuchen, ihn erneut zu kopieren und warten, bis er in die Schleife geladen wurde.
Dies ist ein schlechtes Blatt für den Programmierer, wenn er/sie es nicht weiß.
Ausrutschen ist nicht in OrdnungWie ist dies im Prüfgerät möglich? Ich verstehe, wenn das Problem auf der realen oder in der Tester gibt es keine Geschichte ... Doch wie sollte dieser Test aussehen?
Die Entwickler ignorieren meine Nachricht, was bedauerlich ist.
Wie ist dies im Prüfgerät möglich? Ich verstehe, wenn das Problem auf der realen oder in der Tester gibt es keine Geschichte gibt ... Doch wie sollte dieser Test aussehen?
Die Entwickler ignorieren meine Nachricht, was bedauerlich ist.
Prüfen, ob die Preise kopiert werden, wenn Copyclose oder was auch immer -1 zurückgibt, werden sie nicht kopiert
Prüfen, ob die Preise kopiert werden, wenn Copyclose oder was auch immer -1 zurückgibt, werden sie nicht kopiert
Der Indikator wird einmal beim Erscheinen eines neuen Balkens berechnet, was, wenn ich es richtig verstehe, auf diese Weise umgesetzt wird:
Es wird auch durch einen einfachen Druck bestätigt.
Deshalb ist die Situation nicht klar, wenn wir davon ausgehen, dass es keinen Preis zu berechnen, wird der Indikator 1 Mal berechnet werden und der Puffer wird ungefüllt bleiben, aber es ist nicht so - es wird füllen, wenn wir schlafen, um die EA hinzufügen und warten. Vielleicht ist der Indikator langsam in der Berechnung und der Prüfer wartet einfach nicht auf ihn? Aber wie kann man das überprüfen?
Der Indikator wird 1 Mal berechnet, wenn ein neuer Balken erscheint, was, wenn ich es richtig verstehe, auf diese Weise umgesetzt wird:
Dies wird auch durch einen einfachen Druck bestätigt.
Das ist der Grund, warum die Situation nicht klar ist. Wenn wir davon ausgehen, dass keine Preise berechnet werden, wird der Indikator einmal berechnet und der Puffer bleibt ungefüllt, aber das ist nicht der Fall - er füllt sich, wenn wir dem EA Schlaf hinzufügen und warten. Vielleicht ist der Indikator langsam in der Berechnung und der Prüfer wartet einfach nicht auf ihn? Aber wie kann man das überprüfen?
Vielleicht sollte es dann zeitlich begrenzt sein
Vielleicht sollten wir dann einen Timer verwenden.
Ja, mit dem Timer im EA geht der Test etwas weiter als ohne Timer, aber schlechter als mit Sleep, und der Timer ist im Wesentlichen dasselbe wie Sleep.
Ich glaube, ich verstehe, was das Problem ist, der Indikator wird mit Daten von zwei anderen Indikatoren berechnet und der Code fragt nach der Anzahl der berechneten Balken der anderen Indikatoren
und die erwartete berechnete Anzahl von Balken
Wenn diese beiden Werte nicht übereinstimmen, wird der Puffer nicht gefüllt.
Wenn ich richtig verstehe, werden die Indikatoren in einem Thread ausgeführt und ihre Priorität wird durch den Zeitpunkt ihrer Erstellung verteilt, d.h. es stellt sich heraus, dass der Indikator, den ich vom EA anspreche, die höhere Priorität hat und seine Berechnung zuerst durchführt und danach den Thread an die Indikatoren weitergibt, die die Berechnung durchführen sollen (basierend auf den Pufferdaten).
Im Druck können Sie sehen, dass, wenn ich Sleep einer ausreichenden Größe, die Neuberechnung im Indikator durchgeführt wird (ich verstehe nicht, wie noch) und warum nur nach 13 Sekunden?
Der Indikator verfügt über keinen Timer.
Und was sollte ich tun, um eine korrekte Berechnung zu erhalten, versuchen zu verwenden, während in EA vor dem Warten auf Wert in Puffer nicht hilft - hängt.