|
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 |
|
|||
Das ist ja leider das Problem
|
|
|||
Zitat:
Code:
//SL / TP "deaktivieren" wenn sie 0.0 betragen if(Stoploss==0.0)buy_SL=0.0; if(Stoploss==0.0)sell_SL=0.0; if(Takeprofit==0.0)buy_TP=0.0; if(Takeprofit==0.0)sell_TP=0.0; Aber kann man das auch irgendwie mit diesem minstoplevel vergleichen? Wenn TP < minstoplevel() dann TP = 0.nix? Hab eigentlich nur in den Parametern oben gerne Zahlen und drunter möglichst bloß Deklarationen und so. Wie auch immer. Nächster Schritt wär nen Trailing Stop. Scheint immer wieder zu passieren, dass, selbst wenn der Kurs Gewinn bringt, die Indikatoren erst aussteigen wenn der Trend so gut wie vorbei ist. Oder sogar schon in die Gegenrichtung geht und man noch Verlust macht, weil die Indis ja nur stündlich reagieren. |
|
|||
Zitat:
Code:
int STOPLEVEL = MarketInfo(Symbol(), MODE_STOPLEVEL); if( Takeprofit < STOPLEVEL || Takeprofit == 0 ) dann usw. |
|
|||
Warum korrektes Runden von Stoploss und Takeprofit so wichtig ist | Code4Trading
Code:
extern double Stoploss=0.0; extern double Takeprofit=0.0; Code:
//SL / TP Berechnung double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL); double openPrice=NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits); double buy_SL=NormalizeDouble(openPrice-Stoploss*_Point,_Digits); double buy_TP=NormalizeDouble(openPrice+Takeprofit*_Point,_Digits); double sell_SL=NormalizeDouble(openPrice+Stoploss*_Point,_Digits); double sell_TP=NormalizeDouble(openPrice-Takeprofit*_Point,_Digits); Code:
//SL / TP "deaktivieren" wenn sie 0.0 betragen if(Stoploss==0.0)buy_SL=0.0; if(Stoploss==0.0)sell_SL=0.0; if(Trailing_Stop==0.0)buy_TS=0.0; if(Trailing_Stop==0.0)sell_TS=0.0; if(Takeprofit==0.0)buy_TP=0.0; if(Takeprofit==0.0)sell_TP=0.0; Jedenfalls soll jetzt nen Trailing Stop rein. Und zwar, indem mit OrderModify der SL immer wieder hinterher gezogen wird. Ist im Großen und Ganzen klar, nur weiß ich nicht, wie man das jetzt berechnet. |
|
|||
Na das sieht ja schon nach was aus!
Kleine Korrektur: Du brauchst sowohl Ask als auch Bid. Code:
double openAsk=NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits); double openBid=NormalizeDouble(MarketInfo(Symbol(),MODE_BID),_Digits); double buy_SL =NormalizeDouble(openAsk-Stoploss *_Point,_Digits); double buy_TP =NormalizeDouble(openAsk+Takeprofit*_Point,_Digits); double sell_SL=NormalizeDouble(openBid+Stoploss *_Point,_Digits); double sell_TP=NormalizeDouble(openBid-Takeprofit*_Point,_Digits); Code:
//+------------------------------------------------------------------+ //| Calculate SL, TS, TP | //+------------------------------------------------------------------+ void CalcStopsLong () { if(SL>0) SL_Buy =NormalizeDouble(Ask-SL*_Point,_Digits); if(TS>0) TS_Buy =NormalizeDouble(Ask-TS*_Point,_Digits); if(TP>0) TP_Buy =NormalizeDouble(Ask+TP*_Point,_Digits); } void CalcStopsShort() { if(SL>0) SL_Sell=NormalizeDouble(Bid+SL*_Point,_Digits); if(TS>0) TS_Sell=NormalizeDouble(Bid+TS*_Point,_Digits); if(TP>0) TP_Sell=NormalizeDouble(Bid-TP*_Point,_Digits); } Eine Schrittweite bzw ein Schwellwert (zb OrderStep) sollte auch noch definiert und geprüft werden, damit OrderModify() nicht bei jeder minimalsten Änderung ausgelöst wird. Ich hoffe dir weitergeholfen zu haben. |
|
|||
@Kronenchakra, da gehst Du aber bei Dir stillschweigend davon aus, dass die Werte der Variablen SL, TS und TP bereits ggf. auf den 5-Digit-Modus angepasst wurden.
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ja klar, ich verkauf das ja nicht und ich habe meinen Broker.
Warum soll ich es mir dann komplizierter machen LG Otto |
|
|||
Das ist auch klar. Als Lehrbeispiel sollte man da evtl. doch darauf verweisen, für die nicht so Sattelfesten.
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Abend.
Es passiert immer wieder, was ich ein wenig befürchtet hatte. Er richtet sich im H1 nach Bar 1. Wenn die nen Signal gibt, steigt er ein. Das auch, wenn der Kurs gerade in die andere Richtung gedreht hat und in den Verlust geht. Er geht durch den SL, Bar 1 gibt aber immer noch für den Rest der Stunde das Einstiegssignal. Welches er auch fröhlich befolgt bis zum Sankt Nimmerleinstag... Hatte in einer Vers. zwar auch die Indis auf Bar 0 angesetzt. Allerdings könnten die ja wieder für nen viel zu späten Einstieg sorgen, wenn der Trend schon wieder vorbei ist und nix als Spesen bleiben... Vielleicht den SL höher einstellen? Steht derzeit auf 80.0 . |
Lesezeichen |
Stichworte |
mql4, programmierung, programmierung metatrader, programmierung mql4, sl, stoploss, takeprofit, tp |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|