Fehler, Irrtümer, Fragen - Seite 2879
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
Ich habe es ein wenig überarbeitet
(es ist besser, auf diese Weise kein Makro zu verwenden ;)
Ich habe es ein wenig überarbeitet
(es ist also besser, kein Makro zu verwenden ;)
Beim Testen verwirre ich den Code so weit wie möglich, um zu verhindern, dass der Optimierer leere Schleifen auswirft
Sie haben
// for(int i = 0; i < 5; i++) sum += u.param[i];
Die Optimierung der MQL-Ausführung kann die erste Schleife vorher beenden, da die berechneten Werte nicht verwendet werden, so dass nach dem SpeedTest() etwas mit den Ergebnissen gemacht werden muss - diese Schleife
ich habe es mit der kommentierten Schleife überprüft, ich habe es nicht weggeworfen, aber in dem anderen Test kann ich abstürzen
Makro ist Geschmackssache, ich habe es viele Male getestet und es funktioniert, ich sehe keinen Sinn darin, das Gleiche von Hand zu schreiben
UPD: Ich habe gelesen, wie moderne Compiler jetzt funktionieren, ziemlich informativ
https://habr.com/ru/post/431688/
https://habr.com/ru/post/47878/
der Code gibt den iRSI-Wert von Handles und TPS immer nur 10 an, aber die Preise und der Chart ändern sich auch.
iRSI(_Symbol,PERIOD_H1,14,PRICE_CLOSE)
2652 bauen
der Code gibt den iRSI-Wert von Handles und TPS immer nur 10 an, aber die Preise und der Chart ändern sich auch.
iRSI(_Symbol,PERIOD_H1,14,PRICE_CLOSE)
2652 bauen
Sie haben den Blinkerhebel, er ist 10
Als nächstes müssen Sie die Werte in der rechten Leiste ermitteln
Lesen Sie die Hilfe, oder suchen Sie im Forum nach Antworten - es gibt viele
Sie haben den Blinkerhebel, er ist 10
Als nächstes müssen Sie die Werte in der rechten Leiste ermitteln
Lesen Sie die Hilfe, oder suchen Sie im Forum nach Antworten - es gibt viele davon
Ich hab's. Ich werde die Puffer untersuchen. Es ist seltsam, ich hatte das Gefühl, dass alles so funktionieren sollte, wie es ist, vielleicht habe ich es mit mql4 verwechselt.
Das Seltsame ist, dass ich es gegoogelt habe und es nicht in mql5 finden konnte, um die Daten des Indikators zu erhalten.
Aha, so wie ich Ihr Beispiel verstanden habe, steht der Wert des Indikators RSI am Ende in einer Variablen der folgenden Form
überprüft:
2020.10.15 21:48:01.401 SpeedTst (EURUSD,H1) tst 1 : : loops=10000000000 ms=10864370
2020.10.15 21:48:12.264 SpeedTst (EURUSD,H1) tst 2 : : loops=10000000000 ms=10862287
der Unterschied nicht signifikant ist, ist es sehr wahrscheinlich, dass die Ergebnisse umgekehrt ausfallen, wenn wir die Tests in umgekehrter Reihenfolge durchführen
nicht kritisch
ist es kaum richtig, rand() in den Test einzubeziehen, da diese Funktion viel mehr Ressourcen verbraucht als andere Befehle.
Ich denke, dies wäre ein korrekterer Test:
Ergebnis:
Zum Glück habe ich doch auf das falsche Pferd gesetzt. Die Gewerkschaften sind ein bisschen schneller. Sie sind bequemer zu handhaben und der Code ist besser lesbar.
ist es kaum korrekt, rand() in den Test einzubeziehen, da diese Funktion um eine Größenordnung ressourcenintensiver ist als die anderen Befehle.
Überhaupt nicht kritisch
Die Ausführungszeit von rand() ist konstant, höchstwahrscheinlich handelt es sich um eine gängige C++-Funktion, googeln Sie "rand c++ source code".
müssen Sie ihn initialisieren, aber wenn Sie ihn mit Konstanten initialisieren, kann es zu einer Optimierung kommen
Im Allgemeinen verstehe ich die Abneigung gegen rand() nicht.
eine Option ist die Initialisierung mit etwas wie diesem:
schnell sein würde.
Ihr Skript ausgeführt, imho nicht korrekt.
Die meiste Zeit wird für das Laden von Code in den Zwischenspeicher und dann in den Prozessor benötigt.
und fügen die Diskretion des Systemzeitgebers hinzu
bekommen wir... fast eine Zufallszahl.
Sie müssen es lange Zeit testen, etwa 100500 Mal, imho
Es ist unwahrscheinlich, dass es richtig ist, rand() in den Test einzubeziehen, da diese Funktion um eine Größenordnung mehr Ressourcen verbraucht als die anderen Befehle.
Ich denke, dies wäre ein korrekterer Test:
Ergebnis:
Zum Glück habe ich doch auf das falsche Pferd gesetzt. Die Gewerkschaften sind ein bisschen schneller. Sie sind bequemer zu handhaben, und der Code ist besser lesbar.
Einmal für einmal, und in einem Abstand von der ersten Gewinn, (wie die erste Methode hat die Umwandlung Linie von kurz bis etwas entfernt)
Überhaupt nicht kritisch
Die Ausführungszeit von rand() ist konstant, höchstwahrscheinlich handelt es sich um eine gängige C++-Funktion, googeln Sie "rand c++ source code".
müssen Sie ihn initialisieren, aber wenn Sie ihn mit Konstanten initialisieren, kann es zu einer Optimierung kommen
Im Allgemeinen verstehe ich die Ablehnung von rand() nicht.
als eine Variante zur Initialisierung mit etwas wie diesem:
wird schnell seinDer Punkt war, dass man genau das messen sollte, was man messen muss, und zwar ohne irgendwelche überflüssigen Dinge.
Es ging darum, genau das zu messen, was erforderlich ist, ohne Extras.
keine
Bei sich wiederholenden Codefragmenten werden Sie Optimierungsprüfungen erhalten!
Welchen Unterschied macht es aus, wie lange rand() ausgeführt wird?
lassen Sie es 2/3 der Testzeit ausführen, Hauptsache, die rand()-Zeit ist konstant
Ihr MQL-Code wird die MQL-Funktionen des Systems verwenden, richtig? - Was nützt es, einen perfekten Code zu testen?