EA Selbst Programmieren (Fragen&Antworten 2 - OP_BUYSTOP/OP_BUYLIMIT statt OP_BUY)

Wenn bei Handelssignal in diesem Expert Advisor (EA) für MetaTrader 4 (MT4) anstelle einer Market- eine Pending-Order, also Stop- oder Limit-Order, ausgeführt werden soll, stoßen wir auf Fehlermeldungen. Herr Z., ein Lernender unserer Video-Serie EA Selbst Programmieren, fragt daher:

Sobald ich in folgender Zeile
LongOrder = OrderSend (Symbol(),OP_BUY,Lots,Ask,10,0,0,0,Magic,0,clrRed);
OP_BUY durch OP_BUYSTOP oder OP_BUYLIMIT ersetze, bekomme ich beim Ausführen den Fehler "OrderSend Error 130". Das gleiche gilt für OP_SELLSTOP und OP_SELLLIMIT. Ich habe sehr lange recherchiert, den Stop Loss stark erhöht, den Take Profit auch. Alles was ich zu diesem Fehler online fand, habe ich ausprobiert. Es hat nichts funktioniert. Es funktioniert nur mit OP_BUY und OP_SELL.

Die Fehlermeldung 130 bedeutet laut MQL4-Dokumentation "Invalid stops", also ungültige Stop-Kurse. Veränderungen bei Stop-Loss und Take-Profit vorzunehmen, ist daher intuitiv. In der Codezeile oben sind Stop-Loss und Take-Profit aber beide mit 0 vorgesehen. Der EA übermittelt also beim Senden der Order an den Tradeserver des Brokers gar kein SL oder TP. Daher kann die Fehlermeldung nicht von dieser Quelle her rühren. 

Woran kann es aber sonst liegen? Nun, wenn ein EA die Fehlermeldung 130 im MT4 auslöst, kann dies an ALLEN möglichen "Pending"-Kursen liegen:

  1. Stop-Loss bei Markt- und Pending-Orders,
  2. Take-Profit bei Markt- und Pending-Orders oder,
  3. und jetzt kommt's: am Stop- bzw. Limit-Kurs einer Pending-Order.

Also müssen wir den vierten Parameter der OrderSend-Funktion genau unter die Lupe nehmen. In der Code-Zeile oben des EA's wird als Orderpreis "Ask" an den Tradeserver übermittelt. Das ist bei OP_BUY, also einer Markt-Order Buy, richtig und verpflichtend. Analog muss bei OP_SELL "Bid" übermittelt werden.

Bei OP_BUYLIMIT und OP_BUYSTOP muss allerdings ein Pending-Kurs übermittelt werden, der vom aktuellen Ask abweicht. Logisch, denn wenn wir den Ask-Kurs als Ausführungskurs der Limit- oder Stop-Order wollten, würde es sich ja um eine Markt-Order anstelle einer Pending-Order handeln.

Bei der BuyLimit-Order muss ein Kurs niedriger als Ask, bei der BuyStop-Order ein Kurs höher als Ask übermittelt werden. Bei BuyStop muss zudem der Mindestabstand für Stops Ihres Brokers (das so genannte Stop Level) eingehalten werden.

Auf der Sell-Seite ist alles natürlich spiegelbildlich und bezieht sich auf Bid statt Ask: Bei OP_SELLLIMIT muss der Pending-Kurs höher als der Bid, bei der OP_SELLSTOP niedriger als der Bid abzüglich Stop Level vorgegeben werden.

Für obiges Code-Beispiel des EA's mFX-MAXing bräuchten wir also die in Fett dargestellten Veränderungen:

LongOrder = OrderSend (Symbol(),OP_BUYLIMIT,Lots,Ask-LimitAbstand,10,0,0,0,Magic,0,clrRed);

oder

LongOrder = OrderSend (Symbol(),OP_BUYSTOP,Lots,Ask+StopAbstand,10,0,0,0,Magic,0,clrRed);

Die Parameter LimitAbstand und StopAbstand müssen noch als 'double' Variable im EA-Code definiert werden. Wenn Sie sie später in den EA Eingaben ansteuern möchten, dann sollten Sie sie in den ersten Block der globalen Variablen einfügen, z.B. als 'extern double LimitAbstand=0.00100;'. Der LimitAbstand bzw. StopAbstand ist in dieser Programmiervariante nicht in Pips, Punkten oder Prozent einzugeben, sondern als Kursdifferenz.

Nun kann der mit Ihrem MT4 verbundene Tradeserver Ihren EA richtig verstehen.

Haben Sie weitere Fragen zu MQL4 und zur Programmierung von Expert Advisors für MetaTrader 4? Dann klicken Sie hier, um zur Frage-stellen-und-Antwort-bekommen-Seite zu gelangen.

Herzliche Grüße
Ihr EA-Programmierer Cristof Ensslin von mindful FX

EA Selbst Programmieren (Fragen&Antworten 1 - nur MA-Kreuzungen handeln)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Dieses Video beantwortet die Frage: Was kann ich tun, damit der EA wirklich nur die MA-Kreuzungen handelt, ohne dass SL oder TP gesetzt werden?

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Extra-Schritt 1 - Order-Nummern bestehender Deals dem EA zuordnen)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

In diesem Extra-Schritt erfahren Sie, wie sie bestehende Deals in diesen EA mit einbinden können.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 36 von 36 - EA auf einem live-Chart starten)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Im finalen Schritt 36 sehen Sie, wie Sie diesen EA im MT4 live schalten können.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 35 - EA im Strategietester prüfen)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Im Schritt 35 rufen wir den MT4 Terminal auf und testen im Prüfermodul (Backtest), ob der fertig programmierte und kompilierte Expert Advisor auch genau das tut, was wir wollen. Beachte: hier testen wir nur auf Funktionalität, noch nicht auf Ergebnis-Optimierung.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 34 - mq4 zu ex4 kompilieren)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Im 34. Schritt kompilieren wir den Code zu einem vom MT4 ausführbaren Programm. Außerdem machen wir Anpassungen, um für MT4-Build 600+ gerüstet zu sein.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 33 - OrderTicket-Parameter auf 0 zurücksetzen)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Der Schritt 33 stellt sicher, dass der EA die Ticket-Nummern zurücksetzt, wenn ein Deal beendet wird, z.B. durch Stopp-Loss oder Take-Profit.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 32 - Take Profit Kurs errechnen und übermitteln)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Im Schritt 32 ermitteln und übermitteln wir den Take Profit (TP) für die Sell-Position - analog des Schrittes 31.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 31 - TP errechnen und für Long-Position setzen)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Der Schritt 31 beschäftigt sich damit, den Take Profit (TP) für die Buy-Position zu errechnen und zu setzen (sprich: dem Broker zu übermitteln).

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 30 - SL für Sell-Position errechnen und übermitteln)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Im Schritt 30 wird der Stopp-Loss-Kurs für die Order errechnet und an den Broker übermittelt.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 29 - EA übermittelt StoppLoss an Broker)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

In diesem 29. Schritt wird der StoppLoss-Kurs über die OrderModify-Funktion an den Broker übermittelt.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 28 - StoppLoss Kurs errechnen und richtig runden)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Im Schritt 28 hier berechnen wir den Stopp-Loss-Kurs und runden ihn richtig (NormalizeDouble-Funktion), so dass der MT4 dem Broker die Order-Modifikation (OrderModify-Funktion) übermitteln kann.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 27 - EA prüft ob schon ein StoppLoss gesetzt wurde)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Schritt 27 prüft, ob die Order noch geöffnet und gleichzeitig noch kein Stopp-Loss vergeben ist - zur Fortsetzung des Setzens eines Stopp-Losses bei der Buy-Order.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 26 - StoppLoss setzen vorbereiten 'OrderSelect')

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Hier im 26. Schritt des Tutorials bereiten wir das Setzen des Stopp-Losses vor, indem wir im EA Code die OrderSelect-Funktion aufrufen.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 25 - "OrderSelect" und "OrderLots")

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Im Schritt 25 passen wir die OrderClose-Funktion an, um bei veränderten Handelsvolumen noch immer die richtige Lotsize zu verwenden.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 24 - "OrderClose"-Funktion: Buy Order bei Sell-Signal schließen)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Der Schritt 24 erklärt, wie die OrderClose-Funktion eine bestehende Buy-Order bei Erhalt eines Sell-Signals schließt.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 23 - Sell Order bei Buy-Signal schließen)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Der Schritt 23 etabliert im Code, wie eine offene Sell-Order bei einem Buy-Signal geschlossen wird.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 22 - Sell-Order bei Shortsignal)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Hier im Schritt 22 wird programmiert, wie eine Sell-Order bei Shortsignal an den Broker übermittelt wird.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 21 - Parameter der OrderSend-Funktion)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Im 21. Schritt wird ausführlich und anschaulich erklärt, wie die Parameter der OrderSend-Funktion bestückt wird.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail:

EA Selbst Programmieren (Schritt 20 - "while"-Schleife für OrderSend-Funktion)

Wie Sie selbst einen einfachen Expert Advisor (EA) für MetaTrader 4 (MT4) programmieren lernen können, erklären wir Ihnen in dieser Video-Serie.

Hier im 20. Schritt erklären wir, wie und warum die OrderSend-Funktion in eine while-Schleife eingepackt wird.

Das Handelsmodell für den EA ist ein einfaches MA-Crossing-Modell. Das heißt, der EA wird am Ende eine Buy-Position eingehen (und eine eventuell bestehende Sell-Position schließen), wenn ein kürzerer Gleitender Durchschnitt (Moving Average/MA) einen längeren von unten nach oben schneidet. Umgekehrt wird er eine Short-Position eröffnen und eine ggfls. noch bestehende Long-Position beenden, wenn der kürzere MA den längeren von oben nach unten durchbricht.

Exklusive Neuigkeiten zur EA-Programmierung und zu Expert Advisors per E-Mail: