|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Stoploss
Hallo.
Ich versuch nen einfachen SL und vielleicht auch TP in meinen EA rein zu baun. Weiß aber nicht so richtig, wie. Hat Jemand Tipps? Oder am besten nen gutes Beispiel? Das hier schaut zwar interessant aus, aber ich versteh das Ganze irgendwie nicht. Code:
int New_Stop//Checking stop levels SL=Bid-New_Stop(StopLoss)*Point;//Calculating SL of opened TP=Bid+New_Stop(TakeProfit)*Point;//Calculating TP of opened SL=Ask+New_Stop(StopLoss)*Point;//Calculating SL of opened TP=Ask-New_Stop(TakeProfit)*Point;//Calculating TP of opened |
|
|||
Wo haste denn das wieder her ? Ich versteh das leider auch nicht
Zuerst wird mit 'int New_Stop' eine integer Variable deklariert, diese wird dann als Funktion verwendet. So geht's sicher nicht!!!!!!!!!! Ausserdem werden SL und TP überschrieben. Die sollten zumindes unterschiedliche Namen haben. zB SL_Ask, SL_Bid, TP_Ask, TP_Bid Weiters haben wir dieses Thema bereits ausgiebig behandelt und warten immer noch auf einige Programmzeilen von dir. http://www.expert-advisor.com/forum/...rechnen-3.html Ich habe heute dort einen Link hinterlassen zu einem Beispiel für die Berechnung von SL und TP. Der Beitrag muss aber für die Freigabe noch vom Master abgesegnet werden. Ist ein wenig lähmend. |
|
|||
War da nicht noch irgendwas mit ner Formel, Herr MA-EA?
So, Spaß beiseite. Der Code den du gepostet hast ist doch einfach. Dort werden jeweils der SL & TP für Buy und Sell ermittelt. Der aktuelle Kurs -/+ der gewünschte SL / TP (z.B. 100P) * Point (Größe eines P beim aktuellen Symbol). Vielleicht ist die Frage ja auch nicht ernst gemeint, oder? EDIT: Hab grad erst gesehen, das der Code fehlerhaft ist. Muss das nicht so heißen? Code:
SL = Bid-StopLoss*Point; //Calculating SL of opened TP = Bid+TakeProfit*Point; //Calculating TP of opened SL = Ask+StopLoss*Point; //Calculating SL of opened TP = Ask-TakeProfit*Point; //Calculating TP of opened Geändert von next user (10.04.17 um 00:19 Uhr) |
|
|||
Danke, hab das eben auf die Schnelle einfach mal rein kopiert. Immerhin gibts keinen Fehler beim Kompilieren.
|
|
|||
Hallo.
Hab einen EA gebastelt, der gleichzeitig einen Buy und einen Sell öffnet. Das hat vor einiger Zeit auch funktioniert, da hab ich aber mit OrderProfit() gearbeitet. Jetzt mit SL und TP. Da öffnet er Buy aber keinen Sell, weil wohl mit SL und TP irgendwas nicht stimmt. Code:
...order sell 0.01 EURUSD opening at market sl: 1.10348 tp: 1.10367 failed [Invalid S/L or T/P] Code:
extern int Max_Spread=6;//Max Spread extern double Stoploss=5.0; extern double Takeprofit=14.0; Code:
double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL); double openPrice=NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits); double newSL=NormalizeDouble(openPrice-Stoploss*_Point,_Digits); double newTP=NormalizeDouble(openPrice+Takeprofit*_Point,_Digits); Code:
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,newSL,newTP,Name + " Buy(#" + Buy_MagicNumber + ")",Buy_MagicNumber,0,Blue); OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,newSL,newTP,Name + " Sell(#" + Sell_MagicNumber + ")",Sell_MagicNumber,0,Red);}} Jetzt gehts erst mal darum, dass er überhaupt nen Buy und nen Sell gleichzeitig öffnet und sie jeweils seperat schließt, wenn sie SL und/oder TP erreichen. Welche Richtung das ist, spielt keine Rolle, solange er den Verlierer früher dicht macht und der Gewinner ein paar Pipen einbringt. |
|
|||
SL und TP werden bei einer Sell Order andersrum berechnet, als bei der Buy Order.
|
|
|||
Danke.
Scheint so weit zu funktionieren. Allerdings steht der TP auf 0. Und der EA schließt deswegen anscheinend, wenn der Kurs nur 1 Pip im Gewinn ist. Weil ja openPrice +/- 0 das Selbe wie der openPrice ist. |
|
|||
Zitat:
Ist das der Fall, dann darf der TP in der OrderSend()-Funktion auch nur 0 sein. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ist er ja irgendwie. Das ist ja das Problem.
Besser und einfacher wär wohl nen bool. So "Use SL" "Use TP" in den Einstellungen. Hab aber keine Ahnung, wie man den dann bei OrderSend einbaun soll. |
|
|||
Zitat:
Und so wie ich das geschrieben hatte funktioniert das auch! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
mql4, programmierung, programmierung metatrader, programmierung mql4, sl, stoploss, takeprofit, tp |
|
|