|
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 |
|
|||
Vielen Dank für deine Antwort Indikator-Trading.
Da war der klassische Anfängerfehler wieder. Also Buy Positons sind Bid Preise und Short Positonen sind Ask Preise. Ich weiß nicht warum aber mein Programm mit Code:
if(Ausstieg_5Ml>(Bid+Takeprofit_Abstand)) Code:
if(Bid>(Ausstieg_5Ml-Takeprofit_Abstand)) Aber nun zurück zur Ursprungsfrage, kontrolliere ob ein TakeProfit gesetzt ist. Nun nochmal mein jetziges Programm was funktioniert. Code:
void Ausstieg() { double Ausstieg_Indikator_long = iLow(_Symbol,PERIOD_M5,0); double Takeprofit_Abstand = MarketInfo(_Symbol,MODE_STOPLEVEL); double SMA_21 = iMA(_Symbol,PERIOD_M5,21,0,MODE_SMA,PRICE_CLOSE,0); double MACD_15M = iMACD(_Symbol,PERIOD_M15,12,26,9,PRICE_CLOSE,0,0); double MACD_15M1 = iMACD(_Symbol,PERIOD_M15,12,26,9,PRICE_CLOSE,0,1); { for (int b=OrdersTotal()-1;b>=0;b--) { if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) { if((Bid>OrderStopLoss())&&(OrderTakeProfit()==0)) { if((iOpen(_Symbol,PERIOD_M5,0)>SMA_21)&&(MACD_15M<=MACD_15M1)) { double Ausstieg_5Ml=0; int l=0; for(l=0;(iLow(_Symbol,PERIOD_M5,l)<SMA_21);l++) { Ausstieg_5Ml=iOpen(_Symbol,PERIOD_M5,l); { if(Bid>(Ausstieg_5Ml-Takeprofit_Abstand)) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Ausstieg_5Ml,0,0); SendNotification("OrderModified"); Print("OrderModified", Ausstieg_5Ml); }}}}}}}}}}} Nach meinem Verständnis ist doch das Programm mit der Änderung des TakeProfit einmal durchgelaufen und damit TakeProfit!=0 somit dürfte doch nicht nochmal eine Benachrichtigung geschickt werden oder irgendetwas gemacht werden (das Passiert ja auch nicht, es kommen nur Benachrichtigungen). Andere Frage ist, das kann ich aber auch selber Testen, ich benötige doch eigentlich keine Schleife oder? Und kann ich also mit OrderModify den TakeProfit wieder auf 0 setzen, mit TakeProfit()=0, an der richtigen stelle? wieder mal vielen Dank für eure Antworten Noch eine Frage, das Programm läuft ja unter OnTick, wenn ich nun den TakeProfit wieder händisch auf 0 setzt müsste doch das Programm wieder anfangen zu Kontrollieren, was es aber nicht machte. Gib es dafür einen Grund? Geändert von Gaydon (28.02.21 um 11:44 Uhr) |
Lesezeichen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|