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
Wir wissen nicht, was Sie zu tun versuchen
Wenn Sie jeweils nur einen offenen Handel wünschen, prüfen Sie, ob es keine offenen Aufträge gibt, bevor Sie einen neuen senden.
Wenn Sie nur einen Handel pro Balken wünschen, testen Sie nur einmal pro Balken.
Wenn Sie eine Kombination von Bedingungen wünschen, testen Sie die Kombination.
Ich erkläre das hier:
Ich habe maximal 6 Unterstützungen & 6 Widerstände für jede Stunde. Es können 2 Unterstützungen und 2 Widerstände oder irgendetwas anderes sein, aber maximal 6 Unterstützungen und 6 Widerstände für jede Stunde.
Ich möchte eine Limit-Order für diese S/R-Levels zu Beginn jeder Stunde eröffnen.
Ich habe eine Kauf- und eine Verkaufsfunktion erstellt, so dass ich nicht denselben Kauf-/Verkaufscode für insgesamt 12 S/R-Levels aufschreiben muss.
Wenn ich nun den folgenden Code verwende:
Es werden mehrere gleiche Aufträge erstellt:
Ich habe auch den WHRoeder-Codeverwendet. In einer separaten Funktion. Da ich keine Funktion innerhalb einer Funktion deklarieren kann.
Ihr Problem ist nicht die Funktion, die Sie gepostet haben, Ihr Problem liegt im Code, der die Funktion aufruft.
Offensichtlich gibt es keine Prüfung, ob die Aufträge bereits erteilt wurden
Ihr Problem ist nicht die Funktion, die Sie gepostet haben, Ihr Problem liegt im Code, der die Funktion aufruft.
Offensichtlich gibt es keine Prüfung, ob die Aufträge bereits erteilt wurden
Code für den Aufruf der Funktion (Snapshot)
Wie kann man überprüfen, ob die Aufträge bereits erteilt wurden oder nicht? Mit Buyticket > 0 Bedingungen?
Code für den Aufruf der Funktion (Snapshot)
Wie kann man überprüfen, ob bereits Bestellungen aufgegeben wurden oder nicht? Mit Buyticket > 0 Bedingungen?
Es ist schwierig, einen Rat zu geben, da ich nicht weiß, was Sie am Ende der Stunde mit nicht ausgelösten Aufträgen machen und wie Sie ausgelöste Aufträge verwalten.
Sie könnten ein global deklariertes Array (oder 2) erstellen und die Ticketnummern für die offenen Aufträge speichern. Bevor Sie einen neuen Auftrag öffnen, prüfen Sie das Array-Element, das dem Level entspricht, auf einen Wert >0.
Natürlich müssen Sie auch die Ticketnummern überprüfen, und wenn Sie nicht ausgelöste Aufträge löschen, setzen Sie das Array-Element auf 0. Möglicherweise müssen Sie auch überprüfen, ob der Auftrag geschlossen wurde, und je nach Ihrer Logik das Array-Element wieder auf 0 setzen.
Es ist schwierig, Ratschläge zu geben, da ich nicht weiß, was Sie am Ende der Stunde mit nicht ausgelösten Aufträgen machen und wie Sie ausgelöste Aufträge verwalten.
Sie könnten ein global deklariertes Array (oder 2) erstellen und die Ticketnummern für die offenen Aufträge speichern. Bevor Sie einen neuen Auftrag öffnen, prüfen Sie das Array-Element, das dem Level entspricht, auf einen Wert >0.
Natürlich müssen Sie auch die Ticketnummern überprüfen, und wenn Sie nicht ausgelöste Aufträge löschen, setzen Sie das Array-Element auf 0. Möglicherweise müssen Sie auch überprüfen, ob der Auftrag geschlossen wurde, und je nach Ihrer Logik das Array-Element wieder auf 0 setzen.
Wenn ich die Verfallszeiten für nicht ausgelöste Orders festlege, laufen sie um 0:59 oder 59. Minute ab. Für getriggerte Aufträge werden SL und TP festgelegt.
Früher habe ich Ea, die entweder Kauf-oder Verkaufsaufträge in jeder Stunde nimmt entworfen... kein Problem Code war einfach. Aber hier scheint es sehr schwierig zu sein.
Ok, ich werde versuchen, es zu codieren, wie Sie gesagt haben. Wenn Probleme auftreten, werde ich hier posten. Außerdem wäre es gut, wenn Sie ein einfaches Code-Beispiel für die Zählung der Ticketnummer nennen könnten.
Vielen Dank für Ihre Anregung.
Ich habe mein Problem vorübergehend mit folgendem Code gelöst, der im Stundendiagramm ausgeführt wird. Einfach
Bars ist unzuverlässig (ein Refresh/Reconnect kann die Anzahl der Bars auf dem Chart ändern) Volumen ist unzuverlässig (miss ticks) Verwenden Sie immer Zeit. Neue Kerze - MQL4 forum
Vielen Dank für den Code. Ich habe ihn in die Tick-Funktion eingefügt. Aber jetzt nimmt mein EA keine Trades an. Da ich die Funktion buycall/sell call für die Platzierung von Pending Orders verwende. Ich konnte diese Funktion nicht innerhalb der Funktion hinzufügen.
Hat jemand eine Idee?
Auch der umgekehrte Handel bei gestoppten Aufträgen funktioniert nicht.
Gibt es einen Hinweis auf den umgekehrten Code? Warum funktioniert er nicht?
Vielen Dank!