Error modifying order!, error#130

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
texcs
Messaggi: 129
Iscritto il: 29/05/2014, 23:08

Error modifying order!, error#130

Messaggio da texcs » 08/04/2019, 15:03

Codice: Seleziona tutto

void stopPercentuale(double InitialTrailingStop , double  trailing_stop_percentage)
 {
   double PointValue;
   for (int i = 0; i < OrdersTotal(); i++) 
      {
         OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
         //Calculate the point value in case there are extra digits in the quotes
         if (MarketInfo(OrderSymbol(), MODE_POINT) == 0.00001) PointValue = 0.0001;
         else if (MarketInfo(OrderSymbol(), MODE_POINT) == 0.001) PointValue = 0.01;
         else PointValue = MarketInfo(OrderSymbol(), MODE_POINT);
         //Normalize trailing stop value to the point value
         double InitialTrailingStop  = InitialTrailingStop * PointValue;
         if (OrderType() == OP_BUY)
         {
            if ((trailing_stop_percentage > 0) && (Bid - OrderOpenPrice() >= InitialTrailingStop ))
               { InitialTrailingStop  = NormalizeDouble((Bid - OrderOpenPrice()) * trailing_stop_percentage / 100, Digits);
                  { 
                  if (OrderStopLoss() < (Bid - InitialTrailingStop )){
                     bool res = OrderModify(OrderTicket(), OrderOpenPrice(), Bid - InitialTrailingStop , OrderTakeProfit(), Red); 
                     if ( res == false )
                        Print( "Error modifying order!, error#", GetLastError() );
               }  }
               }
         }
         else if ((OrderStopLoss() != Bid - StopLoss * PointValue) && (StopLoss != 0)){
           bool res = OrderModify(OrderTicket(), OrderOpenPrice(), Bid - StopLoss * PointValue, OrderTakeProfit(), Red);
           if ( res == false )
            Print( "Error modifying order!, error#", GetLastError() );
            }
      
         else if (OrderType() == OP_SELL)
            if ((trailing_stop_percentage > 0) && (OrderOpenPrice() - Ask >= InitialTrailingStop ))
            {  InitialTrailingStop  = NormalizeDouble((OrderOpenPrice() - Ask) * trailing_stop_percentage / 100, Digits);
              { if ((OrderStopLoss() > (Ask + InitialTrailingStop * PointValue)) || (OrderStopLoss() == 0))
                   OrderModify(OrderTicket(), OrderOpenPrice(), Ask + InitialTrailingStop , OrderTakeProfit(), Red);
              }
            }
          
         else if ((OrderStopLoss() != Ask + StopLoss * PointValue) && (StopLoss != 0))
            OrderModify(OrderTicket(), OrderOpenPrice(), Ask + StopLoss * PointValue, OrderTakeProfit(), Red);
            
            }
             
  }
Secondo voi perchè mi dà questo errore "EURUSD,H1: Error modifying order!, error#130" visto che

Codice: Seleziona tutto

 double IniTrailingStop =MarketInfo( Symbol(), MODE_STOPLEVEL )

IntoTheWild1990
Messaggi: 188
Iscritto il: 12/10/2016, 17:44

Re: Error modifying order!, error#130

Messaggio da IntoTheWild1990 » 09/04/2019, 17:48

hai sbagliato le cifre decimali del normalizedouble(....,2) non Normalizedouble(...,Digits).
i lotti non sono mica il prezzo.

ciao...
Una fenice risorge dalla cenere torna al fuoco per quanto tu la possa uccidere.

Seguici su facebook
https://www.facebook.com/eamt4forex/?mo ... _todo_tour
Seguici su Telegram
FeniceTradingSystem
Rent mt4 ea
https://t.me/fenicetradingsystem

Chi c’è in linea

Visitano il forum: CC [Bot] e 0 ospiti