|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
EA setzt nicht alle Signale um - Fehlermeldung 130
Guten Morgen zusammen,
mein EA funktioniert nicht ganz... Ich habe beim Test -Symuator beobachtet das dies nicht alle Handelssignale umsetztet d.h. Order eröffnet(Buy/Sell). Als Fehlermeldung bekomme ich - 2021.10.17 08:28:12.764 2021.06.25 16:49:25 EA (CCI+EMA200) + Zeiteinstellung + Trailing + BreakEven EURUSD,M15: modify #27 buy 0.10 EURUSD at 1.19327 sl: 1.19437 tp: 1.20227 ok - 2021.10.17 08:28:12.764 2021.06.25 16:52:30 EA (CCI+EMA200) + Zeiteinstellung + Trailing + BreakEven EURUSD,M15: OrderModify error 1 -2021.10.17 08:28:12.764 2021.06.25 16:53:20 EA (CCI+EMA200) + Zeiteinstellung + Trailing + BreakEven EURUSD,M15: modify #27 buy 0.10 EURUSD at 1.19327 sl: 1.19448 tp: 1.20227 ok Ich vermute beim Trailling. oder Breakeven ist ein fehler drin.... kann jemand den Fehler sehen bzw. beheben? PHP-Code:
|
|
|||
In Deinem vorherigen Thread hatte ich auf den iCustom()-Fehler geantwortet, bisher ohne Antwort.
Hier scheint es sich wieder um einen anderen EA zu handeln. Warum werden nicht die Fehler aus dem ersten EA erst einmal beseitigt? Zu diesem EA: Woher kommt die Meldung: EA (CCI+EMA200) + Zeiteinstellung + Trailing + BreakEven EURUSD,M15 traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Hallo Traderdoc,
hier ist was schiefgelaufen, ich dachte ich hätte schon geantwortet, naja daher auf diesen wege... Bei meinem vorherigen EA mit dem iCustom, konnte ich das Problem lösen. Die Indikatoren konnten nicht gefunden werden da diese in einem Unterordner hinterlegt waren. Als ich den Unterordner weg gemacht habe ging das wieder - Problem gelöst, danke dir nochmal für die Tipps Vielleicht zur Info. Beim iCustom gings mir darum mein Programmierwissen zu erweiteren, daher die neugier. Bei diesem EA bin ich schon seit längeren dran, hat auch nichts mit den iCustom zu tun. Der soll über CCI und EMA laufen. Problem ist wie schon bei meinem vorherigen Beitrag erwähnt. Ich vermute das duch den TSL und BE. nicht alle Order ausführen kann da hier noch eine Einstellung fehlt. Ich habe leider aber keine Ahnung was mann ändern müsste.. Zu deiner Frage - die Fehlermeldung kommt aus dem Journal beim Backtest. Im Programmierfenster steht als Warnung folgendes: - return value of 'OrderModify' should be checked EA (CCI+EMA200) + Zeiteinstellung + Trailing + BreakEven.mq4 162 16 - return value of 'OrderModify' should be checked EA (CCI+EMA200) + Zeiteinstellung + Trailing + BreakEven.mq4 175 22 - return value of 'OrderModify' should be checked EA (CCI+EMA200) + Zeiteinstellung + Trailing + BreakEven.mq4 210 19 - return value of 'OrderModify' should be checked EA (CCI+EMA200) + Zeiteinstellung + Trailing + BreakEven.mq4 223 25 Fehlermeldungen gibt es keine! Gibts ne vermutung an was das liegt? |
|
|||
Code:
//Breakeven if(BreakEven > 0 && OrderStopLoss() > OrderOpenPrice()) { if ( OrderOpenPrice()-Ask>Point*BreakEven ) { double BuyStop = OrderOpenPrice(); if(OrderStopLoss() > BuyStop) OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble(BuyStop,3), OrderTakeProfit(),0,clrRed); } } Eingesprungen wird, wenn v.a. OrderStopLoss() > OrderOpenPrice() ist. Über die nächste Zeile wird aber nur eingesprungen, wenn der Ask-Kurs bzgl. des Wertes der Variablen BreakEven unter! dem OrderOpenPrice() liegt. Dann wird BuyStop gleich dem OrderOpenPrice(9 gesetzt (warum?) und dann folgt if(OrderStopLoss() > BuyStop) Da in der ersten Zeile ja OrderStopLoss > OrderOpenPrice sein muss, ist auch automatisch dann OrderStopLoss() > BuyStop (also OrderOpenPrice()). Letztendlich wird der StopLoss auf den OrderOpenPrice() wieder tiefer gelegt?? Bei Shorts: Code:
//Breakeven if(BreakEven > 0 && OrderStopLoss() > OrderOpenPrice()) { if (Bid < OrderOpenPrice() - BreakEven* _Point) { double SellStop = OrderOpenPrice(); if(OrderStopLoss() > SellStop) OrderModify(OrderTicket(),OrderOpenPrice()-6*_Point, OrderTakeProfit(),0,clrRed); } } Und das OrderModify(OrderTicket(),OrderOpenPrice()-6*_Point, OrderTakeProfit(),0,clrRed); geht gar nicht - Sytaxfehler - da fehlt ein Parameter vor OrderTakeProfit(). Das einfachste wäre, Du setzt unter jedes OrderModify() den Printbefehl Print("immer irgendwas unterschiedliches") um nach der Fehlermeldung angezeigt zu bekommen, woher der Fehler stammt. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Also musste echt jetzt Grübeln...
Vielleicht vorab die Idee bzw. Vorgabe des TSL. 1. Order wird platzierst z.B. Buy 2. fester SL wird gesetzt 3. Kurs bewegt sich nach oben, dann wird Breakeven gesetzt. 4. Kurs steigt weiter TSL wird gesetzt und dann nachgezogen. !! Wichtig ist das wenn Breakeven oder TSL gesetzt wird, diese sich nicht zurück bewegen!! Bei Long: PHP-Code:
Bei Short: PHP-Code:
Ich habe das mal Korriegiert hoffe das passt so. Danke dir für den Tipp mit Print. Hab den Journal mal angeheftet. Leider konnte ich die Fehler nicht rausbekommen... hoffe du kannst mir da weiterhelfen Danke vorab und schönes Wochenende noch. |
|
|||
Warum sollte der SL, wenn er schon über dem Open-Kurs der Order liegt wieder zurück auf den Open-Preis gezogen werden. Das sieht man sehr schön an dem Auszug aus dem Logfile:
2021.10.17 19:25:40.698 2021.05.10 20:34:35 modify #1 buy 0.10 .DE40Cash at 15352.7 sl: 15362.9 tp: 15442.7 ok 2021.10.17 19:25:40.698 2021.05.10 20:34:10 163 Long,BE,Modi. 2021.10.17 19:25:40.698 2021.05.10 20:34:10 modify #1 buy 0.10 .DE40Cash at 15352.7 sl: 15352.7 tp: 15442.7 ok 2021.10.17 19:25:40.698 2021.05.10 20:33:45 179 Long,TSL,Modi 2021.10.17 19:25:40.698 2021.05.10 20:33:45 modify #1 buy 0.10 .DE40Cash at 15352.7 sl: 15361.6 tp: 15442.7 ok 2021.10.17 19:25:40.698 2021.05.10 20:33:20 163 Long,BE,Modi. 2021.10.17 19:25:40.698 2021.05.10 20:33:20 modify #1 buy 0.10 .DE40Cash at 15352.7 sl: 15352.7 tp: 15442.7 ok Um 20:34:10 wird der Sl wieder auf 15352.7 zurückgesetzt. Die Zeilen müsste demnach lauten: Code:
if (BreakEven > 0 && OrderStopLoss() < OrderOpenPrice()) { if (OrderOpenPrice()+ Ask > Point*BreakEven ) { OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, clrRed); Print("163"); //nur zum Verfolgen } } Code:
if (BreakEven > 0 && OrderStopLoss() > OrderOpenPrice()) { if (Bid < OrderOpenPrice() - BreakEven* _Point) { OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, clrRed); Print("214"); //nur zum Verfolgen } }
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Kurzes Fazit, - bei short funktioniert der Code - und bei buy kommt noch immer Fehlermeldung beim Journal.
2021.10.19 19:09:59.012 2021.09.27 13:50:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: OrderModify error 130 2021.10.19 19:09:59.012 2021.09.27 13:50:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: 163 2021.10.19 19:09:59.012 2021.09.27 13:55:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: OrderModify error 130 2021.10.19 19:09:59.012 2021.09.27 13:55:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: 163 Habe den Code geändert auf: PHP-Code:
2021.10.19 19:29:59.058 2021.08.13 17:45:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: 163 2021.10.19 19:29:59.058 2021.08.13 17:45:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: OrderModify error 130 2021.10.19 19:29:59.058 2021.08.13 17:40:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: modify #5 buy 0.10 .DE40Cash at 15959.0 sl: 15926.5 tp: 16049.0 ok 2021.10.19 19:29:59.058 2021.08.13 17:40:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: 163 2021.10.19 19:29:59.058 2021.08.13 17:40:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: OrderModify error 130 2021.10.19 19:29:59.058 2021.08.13 17:40:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: modify #5 buy 0.10 .DE40Cash at 15959.0 sl: 15926.5 tp: 0.0 ok 2021.10.19 19:29:59.058 2021.08.13 17:40:00 Scalping EA (CCI) + Zeiteinstellung + Trailing + BreakEven .DE40Cash,M5: open #5 buy 0.10 .DE40Cash at 15959.0 ok Eine Ahnung an was das liegt? |
|
|||
Kannst Du mir mal diese Zeile exakt erklären, warum da ein < steht.
if ( OrderOpenPrice()+ Ask<Point*BreakEven ) Wobei ich gerade sehe, das ich das schon falsch aus Deinem Code übernommen habe. Richtig muss das natürlich so lauten: if (Ask - OrderOpenPrice() > Point*BreakEven ) traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. Geändert von traderdoc (19.10.21 um 20:44 Uhr) |
|
|||
iCustom
...Bei meinem vorherigen EA mit dem iCustom, konnte ich das Problem lösen.
Die Indikatoren konnten nicht gefunden werden da diese in einem Unterordner hinterlegt waren. Als ich den Unterordner weg gemacht habe ging das wieder - Problem gelöst, danke dir nochmal für die Tipps... Hallo Nextrader, der Ea mit dem iCustom hat wohl keine guten Ergebnisse gebracht? Möchtest du den mal hier einstellen? Ich hätte gerne etwas damit experimentiert. kamü |
Lesezeichen |
|
|