Buy Limit Sell Limit
Hallo
Ich habe einen EA geschriebn der den Stop mit einen EMA , SMA usw nacchzieht . jetzt möchte ich ihn erweitern das ich ein BUYLIMIT SELLLIMIT setzten kann und es ebenso nachgezogen wird bis es ausgelöst wird . Könnte mir bitte jemand helfen . Danke Hier der EA bis jetzt . ////+------------------------------------------------------------------+ //| 19.10.2021 //| V1.0 | //+------------------------------------------------------------------+ #property strict input ENUM_TIMEFRAMES Timeframe = PERIOD_CURRENT; input int PeriodMA = 50; input ENUM_MA_METHOD Methode; input int Magic = 7777; int OnInit() { return(INIT_SUCCEEDED); } void OnDeinit(const int reason){ } void OnTick() { double ma = iMA (_Symbol,Timeframe,PeriodMA,0,Methode,PRICE_CLOSE, 0 ); for(int i = OrdersTotal()-1; i >= 0; i--){ if(OrderSelect(i,SELECT_BY_POS)){ if(OrderSymbol() ==_Symbol) { if (OrderType()== OP_BUY){ double sl = ma; sl = NormalizeDouble(sl,_Digits); if(sl > OrderStopLoss()){ if(OrderModify(OrderTicket(),OrderOpenPrice(),sl,O rderTakeProfit(),OrderExpiration())){ Print(__FUNCTION__," > Order #",OrderTicket()," wurde angepasst ..."); } } }else if(OrderType() == OP_SELL){ double sl = ma; sl = NormalizeDouble(sl,_Digits); if(sl < OrderStopLoss() || OrderStopLoss () == 0){ if(OrderModify(OrderTicket(),OrderOpenPrice(),sl,O rderTakeProfit(),OrderExpiration())){ Print(__FUNCTION__," > Order #",OrderTicket()," wurde angepasst ..."); } } } } } } } |
Auch eine etwas komprimierte Version des alten Codes.
In Zukunft bitte den Code mittels Benutzung des Icons # schreiben und auch Leerzeichen und Leerzeilen benutzen. Das erleichtert sehr die Lesbarkeit. Code:
void OnTick() { |
hallo
Danke für die super Hilfe .
Jetzt hätte ich noch ein Problem . Was muss ich eingeben das der EA nur auf den Aktuellen Chart Arbeitet . Danke |
Nichts! Mit der Verwendung von _Symbol oder auch Symbol() wir immer auf die Basis des Charts zugegriffen, auf dem sich der EA befindet.
Traderdoc |
Hallo
Ok danke . Er hat mir zum dax wenn ich einen offen trade im h4 habe ohne EA . Und ich starte den ea im dax zb D1 zieht er mir da den stop nach obwohl es ein neues Fenster ist . Lg
|
Aha, das ist ein anderer, spezieller Fall.
Wenn da steht: Code:
for (int i = OrdersTotal()-1; i >= 0; i--){ Der Ausweg besteht darin, jedem Chart eine sog. MagicNumber als Variable zu vergeben, die bei der Orderöffnung in der Funktion OrderSend dann unbedingt mit anzugeben ist. Und dann würde der Code erweitert zu: Code:
for (int i = OrdersTotal()-1; i >= 0; i--){ traderdoc |
EA
Danke für die Top Hilfe
Ist das so Richtig ??? Danke Code:
////+------------------------------------------------------------------+ |
Code:
input ENUM_MA_METHOD MagicNumber; fliegt raus! input int Magic = 12345; muss lauten input int MagicNumber = 12345; Und ganz wichtig: in der Funktion OrderSend() muss dann bei der Orderaufgabe auch die MagicNumber mit eingegeben werden. traderdoc |
Zitat:
Hallo Und ganz wichtig: in der Funktion OrderSend() muss dann bei der Orderaufgabe auch die MagicNumber mit eingegeben werden. Das verstehe ich nicht . Könntest mir das genau zeigen . Danke !!!!! |
Naja, ich schrieb doch, dass die Orders jedes Charts eine eigene MagicNumber bekommen müssen, um eine Unterscheidung der Orders unterschiedlicher TimeFrames bzw. Charts vornehmen zu können.
Und damit der EA entsprechend korrekt selektieren kann, müssen die Orders die jeweilige MagicNumber bekommen. Und die müssen sie über die Funktion OrderSend() bekommen. Ein Blick in diese Funktion per Hilfe-F1 zeigt folgende Funktionsstruktur: Code:
int OrderSend( |
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:05 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum