Problem mit Trailingstop close all orders

 

Hallo,

ich habe einen Grid EA. Jede Order ist mit einem TS versehen.

Ich möchte das, wenn der SL vom TS erreicht ist, alle offenen Buys, bzw. Sells geschlossen werden.

Anbei ein Teil des Codes für das TS der Sells. Die letzten Zeilen (for (int.....) habe ich eingefügt. Ergebnis: Sobald TS aktiv = close alle Sells.

Der SL wird aber nicht mehr getrailt. Habe ich meinen Zusatz an die falsche Stelle gesetzt?

Wo can help me?


                           if(TrailingStopp_verwenden)

                              {

                              if(StringFind(OrderComment(),KommentarZusatz)<0)

                              if(Ask<=OrderOpenPrice()-(UseAktivTS*_Point))

                              if(Ask<OrderStopLoss()-(UseTS*_Point)||OrderStopLoss()==0)

                                 {

                                 double trailingSL=NormalizeDouble(Ask+(UseTS*_Point),Digits);

                                 int serie=(int)OrderComment();

                                 string name=NORZ+(string)serie;

                                 if(ObjectFind(NOTS+(string)serie)<0)

                                 if(trailingSL>0&&trailingSL>Ask+stoplev)

                                    {

                                    while(IsTradeContextBusy()) Sleep(10);

                                    bool om=OrderModify(OrderTicket(),OrderOpenPrice(),trailingSL,OrderTakeProfit(),OrderExpiration(),clrOrange);



                       for (int i=OrdersTotal();i>=0;i--)                             

         {

         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL)

                OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);   

                           }

 

Statt es selbst zu versuchen (Code bitte mit dem Code-Knopf </> oder Alt+S posten!) doch einfach mal suchen: https://www.mql5.com/de/search#!keyword=close%20all&module=mql5_module_codebase.

Über 300 Lösungen allein in der CodeBase.

 
                           if(TrailingStopp_verwenden)
                              {
                              if(StringFind(OrderComment(),KommentarZusatz)<0)
                              if(Ask<=OrderOpenPrice()-(UseAktivTS*_Point))
                              if(Ask<OrderStopLoss()-(UseTS*_Point)||OrderStopLoss()==0)
                                 {
                                 double trailingSL=NormalizeDouble(Ask+(UseTS*_Point),Digits);
                                 int serie=(int)OrderComment();
                                 string name=NORZ+(string)serie;
                                 if(ObjectFind(NOTS+(string)serie)<0)
                                 if(trailingSL>0&&trailingSL>Ask+stoplev)
                                    {
                                    while(IsTradeContextBusy()) Sleep(10);
                                    bool om=OrderModify(OrderTicket(),OrderOpenPrice(),trailingSL,OrderTakeProfit(),OrderExpiration(),clrOrange);
                       for (int i=OrdersTotal();i>=0;i--)                             
         {
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL)
                     
            OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);   
                                                    
                        }
 
Ach so geht das.... In der Codebase hatte ich nichts passendes gefunden womit ich etwas anfangen kann.
 

Naja, man muss schon etwas nehmen, das man dann an die eigenen Wünsche anpassen muss - oder, wenn man es haben will, wie man es sich denkt und wünscht, dann gibt es die Freelancer.

Außerdem kann und wird der Kommentar von Broker verändert, das, was der nicht ändert und Du bestimmst ist die Magic-Nummer, sozusagen Deine Referenz.

Außerdem ist das bissen Code zu Kurz und nach dem, was ich mir denke, auch wahrscheinlich falsch - aber wie gesagt halt zu wenig.

Handelsanwendungen für MetaTrader 5 auf Bestellung
Handelsanwendungen für MetaTrader 5 auf Bestellung
  • 2022.08.24
  • www.mql5.com
Der größte Freelance Service für Entwickler von Programmen in MQL5
Grund der Beschwerde: