|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Zitat:
Code:
if (closedProfit < 0) { Print("T"); // if(total < 1) { //was soll total sein??? if (lastorder == 0) { ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2,STOPLOSS, TAKEPROFIT, NULL, mymagicnumber); } if (lastorder == 1) { ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2, STOPLOSS, TAKEPROFIT, NULL, mymagicnumber); } } Gruß Aron |
|
|||
"OrderSend error 130"
bedeutet Invalid Stops, d.h. der Wert des StopLoss oder TakeProfit in der Funktion OrderSend() ist so falsch, dass der MT4 keine Order öffnen kann. Also die Stops kontrollieren! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Er soll faktisch sofort eine Market Order eröffnen, sobald der vorherige Trade in den Stop gelaufen ist. Kann es vielleicht auch an der Verzögerung liegen, dass es dort Schwierigkeiten gibt? Also das eine sofortige Market Order nicht möglich ist zu dem gleichen Preis, wie der Stop der letzten Order war? Kann der error 130 vielleicht noch etwas anderes bedeuten? Gruß Aron |
|
|||
if (closedProfit < 0) {
Print("T"); // if(total < 1) { //was soll total sein??? if (lastorder == 0) { ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2,STOPLOSS, TAKEPROFIT, NULL, mymagicnumber); } if (lastorder == 1) { ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2, STOPLOSS, TAKEPROFIT, NULL, mymagicnumber); } } Laß Dir doch über Print() die Werte für StopLoss und TakeProfit ausdrucken, dann wirst Du sehen, dass die nicht stimmen. Wenn ich das richtig überflogen habe, dann werden die beiden Werte oben aus den externen Variablen übernommen. Das geht natürlich nicht. In Deinen vorherigen OrderSend-Funktionen sind die SL und TP anscheinend ja richtig berechnet worden. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Ich habe allerdings auch mal probiert einfach Werte einzusetzen eg. 20 für SL und 30 für TP, allerdings kommt dann immer noch der Fehler. Ist das auch ein Fehler einfach Werte dafür einzusetzen? Gruß Aron |
|
|||
Zitat:
Print(StopLoss)! Berechne doch einfach den zu setzenden StopLoss so, wie Du ihn auch weiter oben bei Dir im Programm schon berechnet hast! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
{ ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2,NormalizeDouble(Ask - STOPLOSS*Point(),Digits()), NormalizeDouble(Ask + TAKEPROFIT*Point(),Digits()), NULL, mymagicnumber); } |
|
|||
Zitat:
STOPLOSS*Point() und TAKEPROFIT*Point() Außerdem wieder diese unsaubere Sache mit dem Ignorieren der 5-DigitBroker. Das würde bei ihm nach Deiner Funktion und den Variablenwerten von StopLoss = 25 und TakeProfit = 20 zu realen Werten von 2,5 und 2,0 Pips führen. Da kann es schon wieder Probleme mit dem StopLevel geben. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
und logische fehler lieber im debugger suchen aber erst syntax fehler korrigieren Geändert von pako (24.06.15 um 16:03 Uhr) |
|
|||
Zitat:
Ja! Das sollte man da immer berechnen. Nur wenn er die Funktion so nimmt, wie Du sie vorgegeben hast, kann es falsch werden und dann wundert er sich beim nächsten mal, warum wieder der Fehler 130 kommt oder warum seine Stops so dicht am Entry sitzen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
mql4, oco, order, order öffnen, programmierung, programmierung metatrader |
|
|