" Error de PositionSelect() flotante - página 6

 
Karputov Vladimir:
Los números bajo tu avatar no te pertenecen, por lo que no tienes poder sobre ellos (no puedes cambiarlos a voluntad).

No quiero cambiarlo yo, por favor :)

Bueno, si no puedes cambiarlo por 1000, al menos multiplícalo por 100.

 
prostotrader:

No quiero cambiarlo yo, por favor :)

Bueno, si no puedes multiplicarlo por 1000, al menos multiplícalo por 100.

No se puede. No está permitido. Imposible.
 
Karputov Vladimir:

Los números bajo tu avatar no te pertenecen, por lo que no tienes control sobre ellos (no puedes cambiarlos a voluntad).

Añadido.

Olvídese de las órdenes antes de la transacción con el tipo TRADE_TRANSACTION_DEAL_ADD. ¿Por qué "olvidarlo"? Porque es un error.

Olvídate de las transacciones, te diré en confianza que puedes averiguar las transacciones del historial,

cuando llegó la transacción histórica. No hay orden, por lo que se puede ver lo que el orden ha "hecho".

Con esta sencilla función:

double GetDealsVolume(const string a_symbol,const ulong a_ticket,const datetime start)
  {
   double volume=0;
   if(HistorySelect(start-180,TimeTradeServer()+180))
     {
      int deals=HistoryDealsTotal();
      if(deals>0)
        {
         for(int i=deals-1; i>=0; i--)
           {
            ulong deal_ticket=HistoryDealGetTicket(i);
            ulong ticket=ulong(HistoryDealGetInteger(deal_ticket,DEAL_ORDER));
            if(( ticket>0) && (ticket==a_ticket))
              {
               volume+=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
              }
           }
        }
     }
   return( volume );
  } 
 
prostotrader:

Olvídate de las transacciones, te diré en confianza que puedes averiguar las transacciones del historial,

cuando llegó la transacción histórica.

Con esta sencilla función:

No estás atento:

...
Olvídese de las órdenes hasta que una transacción de tipo TRADE_TRANSACTION_DEAL_ADD. ¿Por qué "olvidar"? Porque esto está mal.

Entonces puedes recordar lo de las órdenes de detención.

 
Karputov Vladimir:

No estás atento:

Entonces puedes recordar lo de las órdenes de detención.

Gracias, intentaré no olvidarlo :)

¿Y qué pasa con la x100?

Añadido:

Este es el problema:

La transacción es lo primero, ¿cómo sé si es lo primero?

O viceversa La transacción es lo primero.

 
prostotrader:

Gracias, intentaré no olvidarlo :)

¿Y qué pasa con el x 100?

Ya lo hice:

 
prostotrader:

...

Añadido:

Este es el problema:

La transacción es lo primero, pero ¿cómo sé que es lo primero?

O viceversa La transacción es lo primero.

Hay que pensar en ello. Aclarar, ¿es cuando se activa una orden con más de 1 volumen?
 
Karputov Vladimir:
Tengo que pensar en ello. Por favor, aclárese, ¿es cuando se activa una orden con un volumen superior a 1?
No importa cuál sea el pedido o el volumen
 

Si todo funcionara como dijoMQ Alexander, entonces

no habríahabido ningún problema.

Tal y como están las cosas, es imposible saber... :(

Porque la transacción puede estar ya en el historial antes de las Operaciones realizadas: 1.0.

Y según las palabras de Alexadr, funcionaría así ( ¡y tendría razón! ):

Cuando llega la transacción histórica:

Volumen inicial - Volumen actual = Operaciones realizadas - Transacción ya llegada

¡No pongas una bandera y trata con posiciones y órdenes!

--------------------------------

Volumen inicial - Volumen actual != Operaciones realizadas - La operación es la siguiente

Debería fijar el indicador, esperar a la transacción de las Operaciones y utilizar el indicador para tratar las posiciones y las órdenes.

¡Eso es todo!

 
Historial de transacciones actualizado antes de TRADE_TRANSACTION_DEAL_ADD
Sin procesar, Iniciado: 2016.08.15 18:43, #1537513