|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
@traderdoc: Ich bin deinem guten Rat gefolgt und habe alles mit der Print Ausgabe protokolliert. Inzwischen habe ich auch den Fehler gefunden und einen ausgiebigen Backtest durchführen können.
Die Auswertung ist aber witzig. Wenn man den SL nachzieht und der Trade dann darin endet, dabei jedoch z.B. über 1% Gewinn eingefahren hat, dann wird dieser trotzdem als Verlierer im Bericht aufgenommen. Dann hoffe ich mal in Zukunft auf "nur" solche Verlierer. Mir ist klar dass die kleinen Bruchstücke, wozu ich fragen habe teilweise nicht ausgereicht haben um auf ein Problem rückschließen zu können. Dafür hätte ich den kompletten Code zeigen müssen. Dass ich das nicht getan habe liegt an der Unmenge an Zeit, die ich aufgebracht habe um die Handelslogik zu entwickeln. |
|
|||
Mal wieder eine neue Fehlermeldung gefunden. Und zwar erhalte ich gelegentlich "OrderModify ERROR 1" im Journal angezeigt. Der SL wird allerdings wie vorgesehen angepasst. In der Hilfe steht dazu folgendes "No error returned, but the result is unknown". Mit der Übersetzung habe ich keine Probleme, nur verstehe ich leider nicht was damit genau gemeint ist.
|
|
|||
Zitat:
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
OrderSend and OrderModify
Hi,
ich hab mal auf die Schnelle ein paar Zeilen aus einem fertigen EA kopiert. Damit müsste Dein Problem gelöst sein: // steht in init() NDigits = Digits; // steht in start() PipValue = 1; if (NDigits == 3 || NDigits == 5) PipValue = 10; // Variables extern int MagicNo = 5555; extern int BuyStoploss = 20; extern int BuyTakeprofit = 30; void BuyOrder() { double SL = Ask - BuyStoploss*PipValue*Point; if (BuyStoploss == 0) SL = 0; double TP = Ask + BuyTakeprofit*PipValue*Point; if (BuyTakeprofit == 0) TP = 0; int ticket = -1; if (true) ticket = OrderSend(Symbol(), OP_BUY, BuyLots, Ask, 4, 0, 0, "MW Expert", MagicNo, 0, Blue); else ticket = OrderSend(Symbol(), OP_BUY, BuyLots, Ask, 4, SL, TP, "MW Expert", MagicNo, 0, Blue); if (ticket > -1) { if (true) { bool sel = OrderSelect(ticket, SELECT_BY_TICKET); bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue); if (ret == false) Print("OrderModify() error - ", ErrorDescription(GetLastError())); } AlertBuyOrder(); } else { Print("OrderSend() error - ", ErrorDescription(GetLastError())); } } ! Kein Anspruch für schnellsten, besten oder schönsten und kürzesten Code :-) Ich hoffe, ich habe beim Kopieren nichts vergessen! Die Alert-Funktion brauchst Du nicht. Grüße |
Lesezeichen |
Stichworte |
130, 138, 4051, error, error 130, error 138, error 4051, fehlercode 130, fehlercode 138, fehlercode 4051, mql4, programmierung, programmierung metatrader, programmierung mql4 |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|