Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 116
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 danke Ihnen. Die Pause scheint geholfen zu haben. Mal sehen, was als nächstes passiert.
Nein, es hat nicht wirklich geholfen. Es funktioniert nur, wenn eine Art von Position eröffnet wird. Wenn z.B. eine Verkaufsposition eröffnet und noch nicht geschlossen ist und gleichzeitig eine Kaufposition eröffnet und geschlossen wird, kann die Verkaufsposition die Bedingungen für ihre eigene Schließung nicht sehen, bis eine andere Verkaufsposition eröffnet und geschlossen wird (gemäß ihren eigenen Bedingungen). Und wenn BAY erneut öffnet und schließt, verfehlt es erneut seine Schließungsbedingungen. Ich habe versucht, das Vorhandenseinoffener Positionen nach dem Schließen von BAY mit der Funktion ExistPositions() von I.Kim zu ermitteln, aber ich verstehe nicht, wo ich sie einfügen und wo ich Print platzieren soll, um die Ausführung zu kontrollieren. Irgendein Hinweis.
Nein, es hat nicht wirklich geholfen. Sie funktioniert nur, wenn die gleiche Art von Position eröffnet wird. Wenn zum Beispiel zuerst eine Verkaufsposition eröffnet und noch nicht geschlossen wird und gleichzeitig eine Kaufposition eröffnet und geschlossen wird, dann sieht die Verkaufsposition ihre Schließungsbedingungen nicht, bis eine andere Verkaufsposition eröffnet und geschlossen wird (gemäß ihren Bedingungen). Und wenn BAY erneut öffnet und schließt, verfehlt es erneut seine Schließungsbedingungen. Ich habe versucht, das Vorhandenseinoffener Positionen nach dem Schließen von BAY mit der Funktion ExistPositions() von I.Kim zu ermitteln, aber ich verstehe nicht, wo ich sie einfügen und wo ich Print platzieren soll, um die Ausführung zu kontrollieren. Können Sie mir einen Tipp geben?
Kennt denn niemand die Lösung? Ich weiß es nicht.
Ich habe mich im Forum angemeldet - wie ich sehe, führen Sie Selbstgespräche... Wo ist der Anfang Ihres Gesprächs und worum geht es - schwer zu verstehen. Um ein Programm zu debuggen, ist es viel bequemer , Alert statt Print zu verwenden - es wird sofort auf dem Bildschirm angezeigt. Diese Alerts werden platziert, bevor die if-Bedingung geprüft wird. Eine andere Methode der Fehlersuche mit einem Bleistift - gehen Sie das Programm so durch, wie es ausgeführt werden soll, und notieren Sie die Werte der Variablen. Wenn er sich ändert - streichen Sie den alten Wert durch und schreiben Sie den neuen. So wurde es früher gemacht. MetaEditor verfügt jetzt über einen Debugger, mit dem Sie die Werte von Variablen überwachen können. Die einfachsten Konstruktionen sollten separat geprüft werden, indem ein Skript geschrieben wird
Kennt denn niemand die Lösung? Ich weiß es nicht.
Versuchen Sie es auf diese Weise:
Versuchen Sie es auf diese Weise:
Danke, ich habe es ausprobiert - es werden keine Positionen geschlossen, auch nicht nach einigen Anpassungen, so dass der Compiler nicht flucht.
Ich habe mich ins Forum eingeloggt - ich sehe, dass du Selbstgespräche führst... Es ist schwer zu verstehen, wo Sie angefangen haben und wovon Sie sprechen. Zum Debuggen von Programmen ist es bequemer , Alert anstelle von Print zu verwenden - es wird sofort auf dem Bildschirm angezeigt. Diese Alerts werden platziert, bevor die if-Bedingung geprüft wird. Eine andere Methode der Fehlersuche mit einem Bleistift - gehen Sie das Programm so durch, wie es ausgeführt werden soll, und notieren Sie die Werte der Variablen. Wenn er sich ändert - streichen Sie den alten Wert durch und schreiben Sie den neuen. So wurde es früher gemacht. MetaEditor verfügt jetzt über einen Debugger, mit dem Sie die Werte von Variablen überwachen können. Die einfachsten Konstrukte müssen separat geprüft werden, indem ein Skript geschrieben wird
Danke für die Empfehlungen, aber für meine Situation sind sie nicht ganz richtig. Zur Verdeutlichung folgt der Code einer benutzerdefinierten Schließfunktion
Es funktioniert nicht richtig - dasSchließen von Positionenerfolgt unter den Bedingungen der ersten offenen Position. Das heißt, wenn zuerst eine Kauf- oder Verkaufsposition mit Bedingung 1 und dann eine zweite Position mit Bedingung 2 eröffnet wurde, wird die Schließungsbedingung ignoriert und die zweite Position trotz einer anderen magischen Zahl ebenfalls mit Bedingung 1 geschlossen.
Ich habe eine Unterbrechung angewandt, nachdem der Auftrag geschlossen wurde, aber die Lösung war nur halbherzig:nur wenn eine Position desselben Typs geöffnet wird. Wenn z.B. eine BOY-Position zuerst geöffnet und noch nicht geschlossen wurde, während eine BAY-Position geöffnet und geschlossen wird, sieht die BAY-Position keine Bedingungen, um geschlossen zu werden, solange eine andere BAY-Position geöffnet und geschlossen wird (gemäß ihren Bedingungen). Und wenn BAY erneut öffnet und schließt, verfehlt es erneut seine Schließungsbedingungen. Was ist also zu tun?
Woher bezieht iCustom seine Daten?
aus den Puffern des benutzerdefinierten Indikators, Praxis, zum Beispiel auf der MA
Ich habe die Unterbrechung nach dem Schließen eines Auftrags angewandt, aber die Lösung ist halbherzig:nur wenn eine Position desselben Typs eröffnet wird. Wenn z.B. eine BOY-Position geöffnet und noch nicht geschlossen wurde, während eine BAY-Position geöffnet und geschlossen wird, sieht die BAY-Position keine Bedingungen, um geschlossen zu werden, bis eine andere BAY-Position geöffnet und geschlossen wird (zu ihren eigenen Bedingungen). Und wenn BAY erneut öffnet und schließt, verfehlt es erneut seine Schließungsbedingungen. Was ist also zu tun?
Ersetzen Sie break durch continue
es ist seltsam, dass mein Code-Beispiel nichts schließt, vielleicht geht es um die Preisnormalisierung
Ersetzen Sie break durch continue
Ersetzt. Verfluchter Fehler 138(requotes). Dann habe ich eine Pause eingelegt, und es sind wieder 138. Seltsam, vielleicht ist es mir vorher nicht aufgefallen.
aus den Puffern des benutzerdefinierten Indikators, üben Sie mit dem MA, zum Beispiel