[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 397

 
VOLDEMAR:

Sí, si lo pones como x=0, irá a cero si sólo lo pones como x:, no irá a cero, subirá.


Lo siento, no me di cuenta de que está en el núcleo de arranque ....
 
Estoy seguro de que se restablecerá. Gracias a todos, es un poco hilarante.
 
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;
int start()
  { 
int    X=0; 
double price=(Ask+Bid)/2;      
int total=OrdersTotal();                                         
                                       
   for (int i=total-1; i>=0; i--)                                 
   {
    if(OrderSelect(i, SELECT_BY_POS))                          
     { 
      Alert ("Uy",i);
      if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
       {
       X ++;
       }  
       }
       }
       Alert ("X",X);}

if (X==0)
   {
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       


   return(0);
  

¡¡¡¡¡Este es el camino correcto !!!!!

 
Dimka-novitsek:
Estoy seguro de que está a cero. Gracias a todos, es un poco hilarante.
Es mejor utilizar comment(); así podrá ver lo que ocurre con sus variables...... en la parte superior izquierda durante la prueba.
 
¡¡¡Gracias!!!
 
He puesto tu código y no compila. No entiendo cuál es el error. Pero lo principal, sigo preguntando, debe haber algún tipo de error lógico, las órdenes se abren en cada tick, lo más probable es que esta parte no funcione.
 if(OrderSymbol()==Symbol()&& OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 && OrderSymbol()==Symbol())
Esta es la parte que no funciona y tampoco puedo entenderla?
 
VOLDEMAR:

Chicos una pregunta más complicada......

Cómo hacer que un EA cierre todas las órdenes cuando se alcanza un determinado beneficio .... Cerrar sólo las órdenes en un símbolo ...

Ejemplo : EA trabaja en 3 pares cantidad para cerrar todas las órdenes en un símbolo 100p ...

Si el EUR tiene más de 100p sólo cerrará las órdenes en EUR mientras que otras pueden tener 200p ...

Si tomo accountbalanse(), entonces el EA se cerrará sólo cuando la suma de los tres pares es más de 100p. Esta opción no funciona para mí !!!!

Ayuda por favor.........



Probablemente con
OrdenProfit( )
Y también si (OrderSymbol()==Symbol()) {} Aunque no puedo escribirlo yo mismo...
 

Por favor, indique qué es lo que está mal en el código. Se supone que el robot debe cerrar una orden de venta, si no está, debe comprar. Aparece el error 4105, que intento solucionar, pero no hay resultado. ¿Tal vez haya otras formas de procesarlo?

PRICECURRENTPPROFIT es el nivel de compra.


// ROBOT VENDE
// determina si hay órdenes de venta
if (Bid>=PRICECURRENTPPROFIT && PRICECURRENTMPROFIT>0)
{
for(cnt=OrdersTotal();cnt>=0;cnt--)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); mode = OrderType(); if(OrderSymbol() == "EURUSD")
{if(mode == OP_BUY)
{go=OrderClose(OrderTicket(), Lots, Bid, slippage, Green);

}
}
} // Si se abre, se cierra
} if(go != true) {Print("Falló la apertura de la orden de VENTA. Error N", GetLastError());
switch(GetLastError()) {caso 4105: OrderSend("EURUSD",OP_SELL,Lots,Bid,2*Point,0,0, "robot vende",MagicNumber,0,Red);break;}
}

 

Quiero añadirle algunas funciones para que se abra para comprar y vender pero para vender y comprar necesito un magicnumber distinto

Si se dispara una orden Take Profit, el robot cierra todas las órdenes pendientes. Quiero que cierre todas las órdenes pendientes OP_SELLLIMIT y las deje sin cambios OP_BUYLIMIT, OP_BUY

 
Dimka-novitsek:
He puesto tu código y no compila. No entiendo cuál es el error. Pero lo más importante, sigo preguntando, debe haber algún tipo de error lógico, las órdenes se abren en cada tick, lo más probable es que esta parte no esté funcionando, y tampoco puedo entenderlo?
O bien no se muestra todo el código o falta la llave de cierre en la parte inferior.