MT4 EA scheint immer wieder einzufrieren

 

Hallo.

Im Anhang ein MT4-EA, der eigentlich ohne Unterbrechung Forex scalpen soll. Vereinfacht ausgedrückt. Allerdings scheint er immer wieder ne lange "Pause" einzulegen. Er soll eigentlich immer (entprechend den Einstellungen) eine Sell- und eine Buy-Order offen haben. Wird eine davon geschlossen, soll in die selbe Richtung sofort die Nächste geöffnet werden. Manchmal funktioniert das auch. Aber immer wieder dauert es viel zu lange. Manchmal braucht er zum Öffnen 10 Min, manchmal ne halbe Stunde oder noch länger. Hab schon den halben Code umgestaltet, das Ding auf Demo-Konten von 3 Brokern probiert, immer das Selbe. Mal öffnet er nach dem Schließen einer Order sofort die Nächste, wie er soll, aber oft dauert es viel zu lange.

Dateien:
 
ScalpXpert:

Hallo.

Im Anhang ein MT4-EA, der eigentlich ohne Unterbrechung Forex scalpen soll. Vereinfacht ausgedrückt. Allerdings scheint er immer wieder ne lange "Pause" einzulegen. Er soll eigentlich immer (entprechend den Einstellungen) eine Sell- und eine Buy-Order offen haben. Wird eine davon geschlossen, soll in die selbe Richtung sofort die Nächste geöffnet werden. Manchmal funktioniert das auch. Aber immer wieder dauert es viel zu lange. Manchmal braucht er zum Öffnen 10 Min, manchmal ne halbe Stunde oder noch länger. Hab schon den halben Code umgestaltet, das Ding auf Demo-Konten von 3 Brokern probiert, immer das Selbe. Mal öffnet er nach dem Schließen einer Order sofort die Nächste, wie er soll, aber oft dauert es viel zu lange.

lassen die Broker scalping nicht zu?

funktioniert im Backtest?

 
ScalpXpert:

Hallo.

Im Anhang ein MT4-EA, der eigentlich ohne Unterbrechung Forex scalpen soll. Vereinfacht ausgedrückt. Allerdings scheint er immer wieder ne lange "Pause" einzulegen. Er soll eigentlich immer (entprechend den Einstellungen) eine Sell- und eine Buy-Order offen haben. Wird eine davon geschlossen, soll in die selbe Richtung sofort die Nächste geöffnet werden. Manchmal funktioniert das auch. Aber immer wieder dauert es viel zu lange. Manchmal braucht er zum Öffnen 10 Min, manchmal ne halbe Stunde oder noch länger. Hab schon den halben Code umgestaltet, das Ding auf Demo-Konten von 3 Brokern probiert, immer das Selbe. Mal öffnet er nach dem Schließen einer Order sofort die Nächste, wie er soll, aber oft dauert es viel zu lange.

In MQL5 gäbe es OrderSendAsync(). Aber vielleicht könntest Du mit Pending-Orders arbeiten?

Der MT4 hängt halt, wenn er vom Server 'hängen' gelassen wird.

Dokumentation zu MQL5: Handelsfunktionen / OrderSendAsync
Dokumentation zu MQL5: Handelsfunktionen / OrderSendAsync
  • www.mql5.com
"und Nachrichtenausgabemodus in Experten Zeitschrift angeben. Standardmäßig werden alle Elemente angezeigt.\r\n" //| Expert initialization function                                   | //
 
amando:

lassen die Broker scalping nicht zu?

funktioniert im Backtest?

1.

Weiß ich nicht. Könnte mir aber vorstellen, dass die sowas nicht mögen...


2.

Heute mal kurz im BT probiert. Scheint dort zu funktionieren.


Muss mir aber das ganze Gerät noch mal genau anschaun. Hab mich damit seit einiger Zeit nicht mehr befasst. Da gibts bestimmt noch das Ein oder Andere zu verbessern...


Sicher ist aber wie gesagt, dass er nicht immer, wenn er soll, gleich die nächste Order öffnet, sondern dafür teilweise über ne halbe Stunde braucht. Scheint weder am EA noch am Broker zu liegen.

 

Der Zeitvergleich ist falsch codiert.

if(Hour()>=Open_From_Hour&&Minute()>=Open_From_Min){

Stell Dir vor es ist 10:15 - 16:30 eingestellt und die Uhrzeit springt auf 11:00, dann legt Dein EA erst mal 15 Minuten Pause ein, bis Minute()>=15 erfüllt ist. Dasselbe Problem hast Du bei Open_Till_Min.

 

Versteh ich gerade nicht.

Aber egal, wie sollte man das sonst schreiben?

 
ScalpXpert:

Versteh ich gerade nicht.

Echt jetzt?

Aber egal, wie sollte man das sonst schreiben?

Anderst halt.

 

Versteh ich wirklich nicht. Kann der MT4 nicht zwischen normalen int- und Uhrzeit-Werten unterscheiden oder wie ist das? Wenn nicht, kann man bestimmt nen entsprechenden Code schreiben.

Wie ist das, wenn ich für die von-/bis-Zeit nur Hour() nutze?

 

Vielleicht liest Du einmal nach, welchen Wert Hours() liefert - eben nicht den Wert, den Du brauchst und den Du Dir vorstellst.

Stell den Kursor drauf und drück F1 und lass Dich überraschen!

 
ScalpXpert:

Wie ist das, wenn ich für die von-/bis-Zeit nur Hour() nutze?

Dann würde es gehen.

Der Vergleich den Du eingangs machst hat halt zusätzlich die Abfrage, ob die aktuelle Minute >= Startminute ist. Und das wird jedesmal geprüft, eben auch wenn es nicht angebracht wäre (s. Beispiel oben, es ist 11:00 und Start war 10:15).

Grund der Beschwerde: