Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 26.01.19
Ado Ado ist offline
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 8
Ado befindet sich auf einem aufstrebenden Ast
Standard Fehler besteht weiterhin

Hi...ich muss das oben beschriebene Trailing-Problem nochmals aufgreifen...vielleicht hat jemand ne zündende Idee, wo der Fehler liegen könnte.
Jedes Symbol hat seine eigene Magic und HedgeMagic
Ich habe zwischenzeitlich den Code wie folgt geändert, am Problem selbst hat sichg leider nix geändert.

Bemerkenswert ist, dass der EA seien Aufgabe erfüllt, wenn 2 Stop-Orders gleichezitig offen sind, d.h. bei beidne Stop-Orders zieht er jeweils bei Vorliegend der Voraussetzungen den OrdernOpenPrice nach, ohne Probleme. Nur bei offenen "normalen" Orders trailt er diese nur, wenn nur eine offen ist, bei mehreren trailt der EA gar nicht mehr oder eben falsch, d.h. ich habe festgestellt, dass er zB den Wert eines anderen Symbols trailt ???!

Das Trailen der "normalen" Orders soll wie folgt erfolgen:

Code:
for(int i=OrdersTotal()-1;i>=0;i--)
//for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
       {
      
        if(OrderSymbol()==Symbol()&& OrderMagicNumber()== Expert_Id)
        //only primary Order
        {
           
         switch(OrderType()) 
         {
           
         case OP_BUY:
           
         if(OrderMagicNumber()!=HedgeMagic &&  
            CountOrders(OP_BUY,HedgeMagic,Symbol())<1)
         {
               
            Line(OrderOpenPrice()+ND(TrailingStop+TrailDistance)); 
            if(Trail==TRUE && TrailingStop>0)
            {
              
                                                  
               if(ND(BidValue-OrderOpenPrice())>ND(TrailingStop+TrailDistance))
                 {
                    if(OrderStopLoss()<BidValue-TrailDistance)
                    {
                    
                    //--- modify order
                     RefreshRates();
                     mt=OrderModify(OrderTicket(),OrderOpenPrice(),ND(BidValue-TrailDistance),0,0,Green);
                     } 
                     if(mt==True)
                     Alert(Symbol()+"("+OrderMagicNumber()+")"  + " getrailt bei: " + BidValue+ " um "+TimeToStr(TimeCurrent()));                  
               }
              }
            }
             
             
      
               CheckHedge(Expert_Id);
               
               break;
Code geht dann weiter mit Sell

Der Code für das funktionierende Stop-Order-Trailing, der in derselben Schleife und auch unter Switch läuft lautet:

Code:
  case OP_BUYSTOP:
            RefreshRates();
              if(OrderMagicNumber()!=HedgeMagic)
              { 
               if(Mi_48==FALSE) 
                 {
                  orderprice= ND(AskValue+MinLevel+AddPriceGap);
                  order_SL = ND(orderprice - TrailDistance - StopLoss * Point - AddPriceGap);
                  order_TP = ND(orderprice + TakeProfit * Point + AddPriceGap);

                  if(orderprice<OrderOpenPrice() && OrderOpenPrice()-orderprice>TrailingStart) 
                    {
                     if(order_SL!=OrderStopLoss() && order_TP!=OrderTakeProfit()) 
                       {
                        RefreshRates();
                        starttime=GetTickCount();
                        mt=OrderModify(OrderTicket(),orderprice,order_SL,order_TP,0,Lime);
                       }
                    
                     }
                  OpenOrderCount++;
                 }
               else
                  f=OrderDelete(OrderTicket());
               }   
               break;
...usw für Sell-Stop

hat einer vielleicht ne Idee zur Fehlerquelle? Danke