Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 805
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
Guten Tag!
Ich scheine es jetzt richtig verstanden zu haben:
Beim Kompilieren wird jedoch eine Warnung ausgegeben: möglicher Datenverlust aufgrund der Typkonvertierung in der Zeile:
index = GetPatt5barsDN(index);
Bei der Kompilierung sind keine Fehler im Funktionskopf (oder in der Funktion selbst) aufgetreten.
Guten Tag, ich habe eine Frage, gibt es eine Möglichkeit, einen bestimmten Durchgang während der Optimierung zu überspringen.
Zum Beispiel optimiere ich meinen Roboter mit 2 MA's - schnell und langsam, beginnend mit 10 und endend mit 1000 für jeden
Wie kann ich Durchgänge überspringen, wenn die Periode des langsamen Durchgangs kürzer ist als die Periode des schnellen Durchgangs?
Guten Tag, ich habe eine Frage, gibt es eine Möglichkeit, einen bestimmten Durchgang während der Optimierung zu überspringen.
Zum Beispiel optimiere ich meinen Roboter mit 2 MA's - schnell und langsam, beginnend mit 10 und endend mit 1000 für jeden
Wie kann ich Durchgänge überspringen, wenn die Dauer des langsamen Durchgangs kürzer ist als die Dauer des schnellen Durchgangs?
In diesem Fall geben Sie während der Initialisierung return(INIT_PARAMETERS_INCORRECT);
In diesem Fall sollten Sie bei der Initialisierung return(INIT_PARAMETERS_INCORRECT) eingeben;
danke
Hallo. Wer kann mir das sagen? Drei verschiedene TS, drei verschiedene EAs, mit drei verschiedenen magischen Zahlen, auf verschiedenen Paaren. Sie haben jedoch ein gemeinsames Merkmal - das Schließen von Aufträgen (mit der Funktion OrderClose()), wenn bestimmte Bedingungen erfüllt sind(Anzahl der Aufträge und geringer Gewinn). Im Testprogramm gibt es keine Probleme, aber in der Praxis entsteht der Eindruck, dass, wenn die Funktion Order Close() bei einem der Paare ausgelöst wird, diese Funktion (OrderClose()) auch bei anderen Paaren ausgelöst wird, unabhängig davon, ob die Bedingungen erfüllt sind oder nicht. Was könnte der Grund dafür sein? Liegt es vielleicht an der benutzerdefinierten Funktion Close()?
Nachstehend finden Sie die Abschlussbedingungen und die benutzerdefinierte Funktion Close().
Hallo. Wer kann mir das sagen? Drei verschiedene TS, drei verschiedene Expert Advisors, mit drei verschiedenen magischen Zahlen, für verschiedene Paare. Sie haben jedoch ein gemeinsames Merkmal - das Schließen von Aufträgen (mit der Funktion OrderClose()), wenn bestimmte Bedingungen erfüllt sind(Anzahl der Aufträge und geringer Gewinn). Im Testprogramm gibt es keine Probleme, aber in der Praxis entsteht der Eindruck, dass, wenn die Funktion Order Close() bei einem der Paare ausgelöst wird, diese Funktion (OrderClose()) auch bei anderen Paaren ausgelöst wird, unabhängig davon, ob die Bedingungen erfüllt sind oder nicht. Was könnte der Grund dafür sein? Liegt es vielleicht an der benutzerdefinierten Funktion Close()?
Hier sind die Abschlussbedingungen und die benutzerdefinierte Funktion Close().
Zunächst verwenden Sie OrderSelect(), um Aufträge zu prüfen, wie es sein sollte - Sie kontrollieren das Symbol und die Stammnummer des Auftrags, und dann schließen Sie den Auftrag mit OrderCloseX() und durchsuchen die Aufträge erneut, aber Sie kontrollieren das Symbol und die Stammnummer in OrderSelect() aus irgendeinem Grund nicht
Ich denke, wir sollten OrderCloseX() hinzufügen, um zu vermeiden, dass der gesamte Code umgeschrieben wird:
Zunächst überprüfen Sie Aufträge durch OrderSelect(), wie es sein sollte - kontrollieren Sie das Symbol und die Stammnummer des Auftrags, und dann schließen Sie den Auftrag in OrderCloseX() und suchen Sie durch die Aufträge wieder, aber aus irgendeinem Grund Sie nicht kontrollieren das Symbol und die Stammnummer in OrderSelect()
Ich denke, ich sollte OrderCloseX() hinzufügen, um nicht den gesamten Code neu zu schreiben:
Ich danke Ihnen. Ich werde es korrigieren. Bereits korrigiert. Vielleicht ist dies der Grund: Die Funktion OrderCloseX() wird für eines der Paare aufgerufen, das dann auf alle anderen Paare und magischen Zahlen wirkt. Das mag sein, das mag sein. Nochmals vielen Dank.
Ziffern - Vordefinierte Variablen
Ich habe auch beschlossen, diese Funktion zu verwenden, habe ich gelesen, dass, wenn die Anzahl der Ziffern im Büro ist 5 zum Beispiel 1,00000 und die letzten Werte sind Nullen es möglicherweise nicht zurückgeben 5 Ziffern, aber Null oder zum Beispiel die Zahl aussehen wird wie 1,24700 wird 3 Dezimalstellen zurückgeben, obwohl es 5 von ihnen sein sollte ist es wahr?
Ich habe auch beschlossen, diese Funktion zu verwenden, habe ich gelesen, dass, wenn die Anzahl der Ziffern in einem stabilen von 5 Zeichen zum Beispiel 1,00000 und der letzte Wert von Null kann es nicht zurückgeben 5 Zeichen, aber Null, oder zum Beispiel die Zahl wird wie 1,24700 aussehen wird 3 Dezimalstellen zurückgeben, obwohl es 5 von ihnen sein sollte, ist es wahr?
Ziffern werden mit NormalizeDouble verwendet
https://docs.mql4.com/ru/convert/normalizedouble