¿Qué diseño es el correcto? - página 2

 
PapaYozh:


No se cierra.

Si no me crees, haz un experimento con una demo.

el problema puede ser que el precio no está normalizado, todo lo demás es cierto en la primera opción.
 
Techno:
la junta podría estar en el precio no normalizado, todo lo demás es cierto en la primera opción.


en cuanto se cierre la orden cero, toda la numeración cambiará y se perderá la siguiente orden.

Como último recurso, puedes hacerlo de esta manera:

  for (int i=0; i < Total; i++)
  {                                                                                          
    if( OrderSelect( 0, SELECT_BY_POS, MODE_TRADES ) )
 
PapaYozh:


Como último recurso, puedes hacer lo siguiente:


Pero es mejor así:

  for ( ; OrdersTotal()>0; )
  {                                                                                          
    if( OrderSelect( 0, SELECT_BY_POS, MODE_TRADES ) )
 
Techno:
el chabón puede estar en el precio no normalizado, todo lo demás es cierto en la primera versión.

requotes en el intento - no se cerró.
 
requotes, orden perdida, bueno estos no son errores tan grandes, lo principal es que no hay zona muerta, esta 1 orden no cerrada se cerrará en el segundo tick.
 
Techno:
La primera es básicamente correcta, cerrará todas las órdenes, pero hay que normalizar los precios de cierre. El segundo falla, no todas las órdenes se cierran (el ciclo no es correcto)


¿Y qué tiene que ver la normalización con esto; de hecho, aquí simplemente se da la orden de cerrar la orden independientemente de los precios?
 
valenok2003:


¿Qué tiene que ver la normalización, porque la orden de cerrar la orden es sólo eso?
¡¡¡Así que hay que normalizarlo!!! Si se lanzan creaciones a la base de código, no se conocen verdades tan sencillas.
 
Lo siento. Dame un ejemplo, por favor.
 
PapaYozh, estas dos opciones son sólo para el cierre, pero ¿qué pasa con la modificación? Prefiero tener 2 ticks para el procesamiento completo que 2 ciclos diferentes para el cierre y la modificación
 
valenok2003:
Lo siento. Dame un ejemplo, por favor.
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5);
Por cierto, si vas desde el final, ¿habrá una junta? Se supone que no.