|
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 |
|
|||
Problem bei TP
Guten Morgen,
ich versuche mir das Programmieren gerade selbst bei zu bringen und der Übungs EA läuft zumindest schon mal. Wenn ich den TP mt festen Größen laufen lasse, dann wird er auch so gesetzt wie es sein soll aber ich versuche im Moment den TP so einzustellen dass er als CRV gesetzt wird. Zum Beispiel SL unter bestimmte Kerze und TP als CRV 3 setzten. double entry=NormalizeDouble(Ask,_Digits); double sl = KerzeStopp1; double tp = KerzeStopp1 * Profit; orderTicket=OrderSend(_Symbol,OP_BUY,Lots,entry,Sl ippage,sl,tp,Commentary,Magic); Der SL wird da gesetzt wo er hin soll aber beim TP kommt wirres Zeug raus... Woran kann das liegen? |
|
|||
Hallo,
du must wenn du SL oder TP berechnest NormalizeDouble() verwenden, weil es sonst sein kann, dass die Zahl zu viele Kommastellen hat. ---Leopold--- |
|
|||
double entry=NormalizeDouble(Ask,_Digits);
double sl =NormalizeDouble(entry - KerzeStopp1 * Point,_Digits); double tp =NormalizeDouble(entry + KerzeStopp1 * Point,_Digits) * Profit; orderTicket=OrderSend(_Symbol,OP_BUY,Lots,entry,Sl ippage,sl,tp,Commentary,Magic); Jetzt bekomme ich nur noch die Fehlermeldung Order Send Error 130. |
|
|||
Code:
double entry=NormalizeDouble(Ask,_Digits); double sl =NormalizeDouble((entry - KerzeStopp1) * Point,_Digits); double tp =NormalizeDouble((entry + (KerzeStopp1 * Profit)) * Point,_Digits) ; orderTicket=OrderSend(_Symbol,OP_BUY,Lots,entry,Sl ippage,sl,tp,Commentary,Magic); ---Leopold--- |
|
|||
if(checkGD()=="sell" && checkKerzen() == "sell" && checkADX() == "sell" && checkOBV() == "sell")
{ double entry=NormalizeDouble(Bid,_Digits); double sl =NormalizeDouble((entry + KerzeStopp2) * Point,_Digits); double tp =NormalizeDouble((entry - (KerzeStopp2 * Profit)) * Point,_Digits); orderTicket=OrderSend(_Symbol,OP_SELL,Lots,entry,S lippage,sl,tp,Commentary,Magic); } else if(checkGD()=="buy" && checkKerzen() == "buy" && checkADX() == "buy" && checkOBV() == "buy") { double entry=NormalizeDouble(Ask,_Digits); double sl =NormalizeDouble((entry - KerzeStopp1) * Point,_Digits); double tp =NormalizeDouble((entry + (KerzeStopp1 * Profit)) * Point,_Digits); orderTicket=OrderSend(_Symbol,OP_BUY,Lots,entry,Sl ippage,sl,tp,Commentary,Magic); Wenn ich es so schreibe, dann bekomme ich bei Short Positionen Error 130 // TP hae ich bei 2 und bei Long Positionen Error 4107 // Invalid TakeProfit for OrderSend funktion Ich bin mit dem wenigen Latein wo ich habe am Ende |
|
|||
Welchen Wert haben die Variablen KerzeStopp1 und Profit?
---Leopold--- |
|
|||
KerzeStopp1 = iLow(_Symbol,0,StoppKerze); // StoppKerze drittletzte Kerze
input double Profit=2.0; // Profit als CRV |
|
|||
Wenn ich s so schreibe, dann läuft es ohne Probleme aber ich möchte halt nicht immer einen feste Größe als SL und TP.
if(checkGD()=="sell" && checkKerzen() == "sell" && checkADX() == "sell" && checkOBV() == "sell") { double entry=NormalizeDouble(Bid,_Digits); double sl = NormalizeDouble(entry + Stop * _Point,_Digits); double tp = NormalizeDouble(entry - Profit * _Point,_Digits); orderTicket=OrderSend(_Symbol,OP_SELL,Lots,entry,S lippage,sl,tp,Commentary,Magic); } else if(checkGD()=="buy" && checkKerzen() == "buy" && checkADX() == "buy" && checkOBV() == "buy") { double entry=NormalizeDouble(Ask,_Digits); double sl = NormalizeDouble(entry - Stop * _Point,_Digits); double tp = NormalizeDouble(entry + Profit * _Point,_Digits); orderTicket=OrderSend(_Symbol,OP_BUY,Lots,entry,Sl ippage,sl,tp,Commentary,Magic); |
|
|||
KerzeStopp2 ist wahrscheinlich iHigh(...) oder?
|
Lesezeichen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|