Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1245
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
nicht z. B. zuerst Fall 1, dann Fall 2 usw.
Die Fälle führen eine Auftragseröffnung durch
Der Auftrag wird an mehr als einem Ort eröffnet. Man muss genau so denken, wie man in diesem Code denkt, und das ist schwer.
Es gibt mehr als eine Öffnung. In einem solchen Code muss man genau so denken, wie man denkt, und das ist schwierig.
Wenn es eine Schleife innerhalb der EA OnTick, die eine anständige Menge an Zeit dauert, wird es vollständig ausgeführt werden oder wird die Ankunft eines neuen Ticks all das unterbrechen?
Ich verstehe auch nicht, in meinem Fall wird die Schleife geöffnet und nicht alle Aufträge werden geöffnet, einige werden zweimal geöffnet und einige werden übersprungen, ich verstehe, dass ein neuer Tick den Start auslöst und der Code seine Ausführung unterbricht und wieder zu arbeiten beginnt
Ich verstehe, dass ein neuer Tick sowohl einen Start auslöst, als auch der Code seine Ausführung unterbricht und erneut mit der Ausführung beginnt
Erfinde das nicht.
Lesen Sie die Hilfe, dort steht eindeutig geschrieben, dass bei komplexen Berechnungen in EA der neue Tick übersprungen wird.
irgendwo in dem Artikel über Ereignisbehandlungsfunktionen oder vielleicht in Handelsoperationen oder in RefreshRates
Suchen Sie nach logischen Fehlern in Ihrem Code
HH: switch() - case wird nicht für komplexe logische Bedingungen verwendet, bessere Kombinationen von if() else - so erhält man eindeutigere logische Verzweigungen
erfinden Sie es nicht.
lesen Sie die Hilfe, es sagt eindeutig, dass, wenn es komplexe Berechnungen in EA, die neue tick wird übersprungen werden
irgendwo in dem Artikel über Ereignisbehandlungsfunktionen oder vielleicht in Handelsoperationen oder in RefreshRates
Suchen Sie nach logischen Fehlern in Ihrem Code
SZY: switch() - case wird nicht für komplexe logische Bedingungen verwendet, bessere Kombinationen von if() else - so erhält man eindeutigere logische Verzweigungen
Ja, danke, ich habe bereits beschlossen, alles auch durch if-else zu schreiben
Warum haben Sie hier überhaupt einen Schalter eingebaut? Es ist einfacher, die Richtung des Geschäfts und die Anzahl der erforderlichen Öffnungen in die Funktion einzugeben und so viele Öffnungen wie angegeben in der Schleife zu öffnen.
Deshalb sage ich, dass ich Ihre Logik nicht verstehen kann. Warum so ein Durcheinander?
Warum haben Sie hier überhaupt einen Schalter eingebaut? Es ist einfacher, die Richtung des Geschäfts und die Anzahl der erforderlichen Öffnungen in die Funktion einzugeben und so viele Öffnungen wie angegeben in der Schleife zu öffnen.
Deshalb sage ich, dass ich Ihre Logik nicht verstehen kann. Warum so ein Durcheinander?
Nun, mein Code hat sich gerade vergrößert, und ich dachte, es wäre viel einfacher.
Eigentlich wäre es einfacher und kompakter, wenn wir die Möglichkeit hätten, case während der Ausführung einer Funktion so oft aufzurufen, wie wir wollen.
Ich brauche keine ähnlichen Geschäfte in einer Schleife zu öffnen, und sie werden für verschiedene Symbole gleichzeitig (so weit wie möglich) bei Auftreten eines Signals geöffnet.
fall 1 - audusd-kauf
fall 5 - gbpusd-kauf
fall 9 - eurusd-kauf
usw.
Im ersten Fall habe ich ein Blatt mit dem Fall und das zweite mit der Analyse, wenn sie zusammenwirken würden, wären es 500 Zeilen.
Bei der zweiten Variante wird eine bestimmte Reihenfolge für die Eröffnung der Funktion mit der Analyse vorgeschrieben, und die Gesamtzahl der Zeilen würde 1200+ betragen, was schließlich die Ausführungsgeschwindigkeit des Programms beeinträchtigen würde
Können Sie mir bitte helfen! Der Expert Advisor verwendet den Hüllkurven-Indikator mit dynamischer Berechnung der Abweichung. Aber wenn es auf dem Diagramm angezeigt wird, zeigt es die gesamte Dynamik der Indikatorabweichung auf allen vorherigen Balken.
1. Gibt es eine Möglichkeit, den Indikator richtig zu zeichnen? D.h. er würde den Indikator mit seiner Abweichung nur auf seinem eigenen Balken zeichnen.
2. Wie kann ich das Zeichnen des Indikators in einem Expert Advisor deaktivieren, so dass nur seine Berechnungen übrig bleiben? Ich möchte das Zeichnen des Indikators in den Experteneinstellungen aktivieren oder deaktivieren.)
Nun, am Ende wurde mein Code immer größer, obwohl ich dachte, er wäre einfacher.
Wenn es jedoch möglich wäre, case während der Ausführung einer Funktion so oft wie nötig aufzurufen, wäre es einfacher und der Code wäre kompakter.
Ich brauche keine ähnlichen Geschäfte in einer Schleife zu öffnen, und sie werden für verschiedene Symbole gleichzeitig (so weit wie möglich) bei Auftreten eines Signals geöffnet.
fall 1 - audusd-kauf
fall 5 - gbpusd-kauf
fall 9 - eurusd-kauf
usw.
Im ersten Fall habe ich ein Blatt mit dem Fall und das zweite mit der Analyse, wenn sie zusammenwirken würden, wären es 500 Zeilen.
Die zweite Variante impliziert die Vorgabe einer bestimmten Reihenfolge der Öffnung innerhalb der Funktion mit Analyse, die in eine Windel gestreckt würde und die Gesamtzeilen würden 1200+ betragen, was schließlich die Geschwindigkeit der Programmausführung beeinträchtigen würde
Womit tippen Sie so viele Codezeilen ein? Hier ist eine meiner letzten EA, es funktioniert mit einer Reihe von Wertpapieren auf FORTS
So viele Wertpapiere werden notiert werden, so viele werden auch gehandelt werden. Und dieser EA mit Kontrolle von zwei Handelszeitrahmen, mit Trailing und natürlich mit Analyse, nur 326 Zeilen.
Wenn Sie Switch verwenden möchten, müssen Sie nicht in jeder Variante eine Positionseröffnung hinzufügen. Es reicht aus, den Namen des Symbols, die Art der Handelsoperation und den
Meiner Meinung nach wäre es aber besser, das Ganze in eine benutzerdefinierte Funktion zu packen.