¿Qué es order_id? - página 2

 
toi10005doi:

@Raptor:

Sí, pero apenas lo entendí porque sólo me interesa escribir EA. Sr para molestar a usted.

No entiendo por qué mi orden de cierre al instante después de que la estrella.

Si no entiendes mi hilo tienes que leer más el Libro... el hilo es sólo sobre un bucle y el cierre de las órdenes y es muy simple y claro y todavía no han tomado atención de ella.


¿Por qué tratas de cerrar tu orden 4 veces? dos veces en la oferta y dos veces en la demanda?

 
Mi condición cercana es una cobina. Pero cuando lo escribí, no funcionó. Así quelo separé.
 
toi10005doi:
Mi condición cercana es una cobina. Pero cuando lo escribí, no funcionó. Así quela separé.
Pero está intentando cerrar la misma orden (por número de ticket) cuatro veces... ¿por qué?
 
toi10005doi:

Sí, lo tengo.

He arreglado mi código, pero mi orden todavía cerrar al instante después de que la estrella. Por favor, muéstrame lo que estoy mal

En el bucle donde cierras tu orden imprime estos valores . DIPlus1 DIMinus1 Main0 Rsi asegúrese de utilizar DoubleToStr() para obtener el número correcto de decimales.
 
Raptor ya te ha dicho lo que tienes que hacer. Añade algunas sentencias de impresión con el valor completo de la variable en tu bucle y descubrirás por qué
 
RaptorUK:
En el bucle en el que cierra su Orden Imprima estos valores . DIPlus1 DIMinus1 Main0 Rsi asegúrese de utilizar DoubleToStr() para obtener el número correcto de decimales.

Haga esto. ¿Qué obtiene en el registro?
 
RaptorUK:
Haz esto. ¿Qué obtienes en el registro?

¿Puedes mostrarme el código?

 
toi10005doi:

¿Puede mostrarme el código?

¿Estás bromeando? Es sólo una línea usando Print() y DoubleToStr() .

Escríbelo tú mismo, publícalo aquí y te daré mi tiempo gratis para revisarlo.
 
RaptorUK:
¿Estás bromeando? es una sola línea usando Print() y DoubleToStr() .

Escríbelo tú mismo, publícalo aquí y yo daré mi tiempo gratis para revisarlo por ti.

int start()
{
   int i ,times;
   string DIPlus1;
   string DIPlus0;
 
   string DIMinus1;
   string DIMinus0;
   
   string Main1;
   string Main0;
   
   string MACD_main;
   string MACD_signal;
   string Rsi;
   
   string err = 26;
   string x = 70;
   string xx = 30;
   
   double sl = 300;
   double tp = 50;
   
   int MagicNumber1=1234,MagicNumber2=4321;
//----
/*DIPlus1=DoubleToStr(  DIPlus1, 4);
DIPlus0=DoubleToStr(    DIPlus0, 4);
DIMinus1=DoubleToStr(   DIMinus1, 4);
DIMinus0=DoubleToStr(   DIMinus0, 4);
Main1=DoubleToStr(      Main1, 4);
Main0=DoubleToStr(      Main0, 4);
Rsi=DoubleToStr(        Rsi, 4);
//err=DoubleToStr(err,4);
//x=DoubleToStr(x,4);
//xx=DoubleToStr(xx,4);*/

//---
 
DIPlus1=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,1);
DIPlus0=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,0);
 
DIMinus1=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,1);
DIMinus0=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,0);

Main1=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,1);
Main0=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0);

Rsi = iRSI(NULL,0,14,PRICE_CLOSE,0);

times = Minute() % 15 ==0 && Seconds() ==0;

//MACD_main = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); 
//MACD_signal = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
   
//----
if(Minute() % 15 ==0 && Seconds() ==0)
{
  if( Main0 > err && Main1 < err && DIPlus0 > DIMinus0 && Rsi < x )

    
       OrderSend(Symbol(),OP_BUY,0.03,Ask,5,Ask-sl*Point,Ask+tp*Point,"",1234,0,Blue);
          
   

   if (Main0 > err && Main1 < err && DIPlus0 < DIMinus0  && Rsi > xx)
     
       OrderSend(Symbol(),OP_SELL,0.03,Bid,5,Bid+sl*Point ,Bid-tp*Point,"",4321,0,Red);
}
     
  //---
 int PositionIndex;    
 
int TotalNumberOfOrders;  

TotalNumberOfOrders = OrdersTotal();   

for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --)  
   {
   if(  OrderSelect(PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue;   
   
   if( OrderMagicNumber() == MagicNumber2      
     && OrderSymbol() == Symbol()          
      && OrderType() == OP_BUY         
       || OrderType() == OP_SELL )  
       Print("DIPlus1",DoubleToStr(     DIPlus1, 4));
         Print("DIMinus1",DoubleToStr(  DIPlus1, 4));
          Print("Main0",DoubleToStr(    DIPlus1, 4));
           Print("Rsi",DoubleToStr(     DIPlus1, 4));  
     {if( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx)
                   OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
     } 
   if( OrderMagicNumber() == MagicNumber1      
     && OrderSymbol() == Symbol()          
      &&  OrderType() == OP_BUY          
        || OrderType() == OP_SELL )  
        Print("DIPlus1",DoubleToStr(    DIPlus1, 4));
         Print("DIMinus1",DoubleToStr(  DIPlus1, 4));
          Print("Main0",DoubleToStr(    DIPlus1, 4));
           Print("Rsi",DoubleToStr(     DIPlus1, 4));
    { if( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x  )
                   OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);   
   }
      {  if ( ! OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), 3 ) )               
         Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); 
    }           
    }
 return(0);
 }
   
¿Te refieres a esto? Pero ahora no cierra la orden.
 
toi10005doi:
¿Se refiere a esto? Pero ahora no cierra la orden.
Dije que se añadiera una línea... que era todo lo que se necesitaba.

Mira tu código. . . siga línea por línea, vea lo que ha añadido, vea por qué lo ha roto . . . así es como se aprende. ¿Entiende cómo funciona una sentencia if? ¿entiende el propósito de las llaves { }?