Fehler, Irrtümer, Fragen - Seite 1936
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 kann den Code noch nicht zeigen, weil ich
Aber bereit, Profiling-Ergebnisse von MT5 zu zeigen - wie ich verstehe, sind Handelsfunktionen nicht in Frage.
Vielleicht mache ich etwas falsch?Für die OHLC-Umgebung verwende ich die folgenden Funktionen
Leider machen Sie das alles falsch.
Anstatt einen nativen und effizienten MQL5-Code zu schreiben, verwenden Sie einen furchtbar ineffizienten MQL4-Emulator, der den Vorgang um ein Vielfaches verl angsamt.
Das Schlimme daran ist, dass Sie nicht einmal wissen, was Sie tun, da Sie Fragen zur Geschwindigkeit stellen.Das Ergebnis ist der folgende Code
https://www.mql5.com/ru/code/18305
https://www.mql5.com/ru/code/18305
Danke - ich habe diese Bibliothek gesehen - die Beschreibung war verwirrend
Diemeiste Zeit wird in der Initialisierungsphase verbracht. Wenn Sie nicht vorhaben, mehrfach auf die Zeitreihendaten zuzugreifen - mehr als ein paar tausend Mal während der Balkenbildung - sollten Sie alternative Methoden in Betracht ziehen.
Leider machen Sie das alles falsch.
Anstatt einen nativen und effizienten MQL5-Code zu schreiben, verwenden Sie einen furchtbar ineffizienten MQL4-Emulator, der den Vorgang um ein Vielfaches verl angsamt.
Das Schlimme daran ist, dass Sie nicht einmal verstehen, was Sie tun, da Sie Fragen zur Geschwindigkeit stellen.Natürlich habe ich nach einer Lösung gesucht - wie man MQL4-Funktionen durch MQL5 ersetzen kann, insbesondere in Bezug auf Zeitreihen, und habe gesehen, dass dies eines der Probleme ist, auf die die meisten Leute beim Wechsel zu MQL5 stoßen.
Dementsprechend fand ich die Lösung auf derselben Website, wo in einem der Artikel meine Methode empfohlen wurde.
Ich persönlich verstehe nicht, warum man eine gute und praktische Funktion aus der Sprache ausschließt.
Meine Frage lautet also: Wie empfängt man Informationen richtig, und wie kann man die Vorteile von MQL5 nutzen?
Meine Frage an Sie lautet also: Wie organisiert man den Datenempfang richtig, um die Vorteile von MQL5 zu nutzen?
Die nativen, produktiveren Funktionen von MQL5 zu nutzen und sich nicht an den MQL4-Code zu klammern. Jeder MQL4 -> MQL5-Konverter/Splitter ist dutzendfach langsamer, da er versucht, Direktzugriffs-Mikrofunktionen von MQL4 über MQL5-Massenoperationen zu emulieren. Und die Emulation erfolgt völlig ohne Optimierung und Zwischenspeicherung.
Am Anfang der Verwendung einer bestimmten Funktion (ein Stück Code, einschließlich des Codes anderer Leute) sollte ein Verständnis dafür stehen, was genau getan wird. Sonst heißt es: "Ich habe gerade den Code eines anderen verwendet, und die Geschwindigkeit ist gesunken! Man kann kein gutes Ergebnis erzielen, wenn man das Werkzeug nicht versteht und weiß, was man damit macht.
Neben der Frage, "wie man es richtig macht", sollte ich klarstellen, dass die Aufgabe, "programmieren zu lernen", extrem schwierig ist, sobald man über die grundlegendste Ebene des Arbeitens (nicht einmal des Verstehens, nämlich des Arbeitens) mit einer Sprache hinauskommt. Ich sehe also keine andere Möglichkeit, als massenhaft Artikel, Dokumentationen, vorgefertigten Code in der Bibliothek zu lesen und mehrere Jahre lang zu üben.
Verwenden Sie die nativen, produktiveren Funktionen der MQL5-Sprache und halten Sie nicht am MQL4-Code fest.
Die Verwendung einer bestimmten Funktion (eines Stücks Code, einschließlich des Codes anderer Personen) sollte auf dem Verständnis dessen beruhen, was getan wird. Andernfalls heißt es: "Ich habe gerade den Code von jemand anderem verwendet, und siehe da - die Geschwindigkeit ist gesunken! Ohne das Werkzeug zu verstehen und zu wissen, was man damit macht, kann man kein gutes Ergebnis erzielen.
Zusätzlich zu der Frage, "wie man es richtig macht", sollte ich klarstellen, dass die Aufgabe, "Programmieren zu lernen", extrem schwierig ist, sobald man über die grundlegendste Ebene der Bedienung (nicht einmal des Verstehens, sondern der Bedienung) der Sprache hinauskommt. Deshalb sehe ich keine andere Möglichkeit zu lernen, als Artikel, Dokumentationen, fertigen Code in der Bibliothek zu lesen und mehrere Jahre lang zu üben.
Renat, haben Sie sich die Codebasis angesehen? Ich habe einen Code mit genau angepassten Funktionen aus der Sprache MQL4.
Ich bitte Sie ausdrücklich zu schreiben, wie man die richtigen Informationen über die Umwelt erhält - der Verweis auf abstrakte Bücher ist nicht produktiv und bestärkt nur meine (wahrscheinlich falsche) Vorstellung, dass dies nur eine Ausrede ist, die Sie nicht überprüfen können.
Zu sagen, ich sei so dumm, dass ich die Bedeutung einer Funktion nicht verstehe, die darin besteht, Informationen in ein Feld zu kopieren, bedeutet, dass die Dokumentation zur Programmiersprache mangelhaft ist. Ich verstehe nicht den Nutzen dieses Kopierens von einem Array in ein anderes und warum eine Funktion, die Informationen aus einem Array nach Bedarf abruft, schrecklicher Code ist.
Natürlich habe ich nach einer Lösung gesucht - wie man MQL4-Funktionen durch MQL5 ersetzen kann, insbesondere in Bezug auf Zeitreihen, und habe gesehen, dass dies eines der Probleme ist, auf die die meisten Leute beim Wechsel zu MQL5 stoßen.
Dementsprechend fand ich die Lösung auf derselben Website, wo in einem der Artikel meine Methode empfohlen wurde.
Ich persönlich verstehe nicht, warum man eine gute und praktische Funktion aus der Sprache ausschließt.
Deshalb frage ich Sie, wie ich die Informationen am besten erhalte, um die Vorteile von MQL5 zu nutzen?
Vielleicht habe ich nicht richtig gesucht? Hier haben Sie alles, was Sie brauchen, statt des gesamten Codes in einer Kopie
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Wanzen, Wanzen, Fragen
Aleksey Vyazmikin, 2017.07.21 01:20
Danke - ich habe es korrigiert.
Der Code sieht daher wie folgt aus
Die Zeit im Tester hat sich verlängert - ich bin das Warten schon leid :)
Um sie zu nutzen, müssen Sie nur die Struktur verstehen
Vielleicht habe ich nicht genau genug hingesehen? Hier erhalten Sie in einem Exemplar alles, was Sie brauchen, anstatt all dieses Codes
Um dies zu nutzen, müssen Sie nur verstehen, was die Struktur ist
Wir bekommen das Gleiche - und zwar...
Die von Ihnen vorgeschlagene Variante passt, ifle:
- Die Berechnung findet nur bei der Öffnung eines Balkens statt.
- Sie wissen im Voraus, wie viele Stäbe benötigt werden
Ich habe Schleifen in meinem Code, der Betrag der Berechnung kann vorher unbekannt sein.
Und was macht es für einen Sinn, bei jedem Öffnen Informationen für, sagen wir, 300 Takte zu kopieren, wenn es sinnvoller wäre, einfach Informationen über einen neuen Takt hinzuzufügen - warum ist der Entwickler nicht diesen Weg gegangen?
Aber ich werde Ihnen die Richtung zeigen:
Ich habe keine Lust, auf diese Weise zu kommunizieren. Anstatt zu versuchen, zu verstehen, was gesagt wird, um herauszufinden, was passieren wird, werden unglaubliche Einwände vorgebracht.