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

 

prostotrader:

¿Tiene más sentido "profesor"?

Je-je-je. ¿Eres un adulto o qué?

¿Qué querías mostrar en la captura de pantalla?

Repasemos los puntos de su registro.

En primer lugar:

2016.08.15 15:37:17.720    Test_deff_order (GAZR-9.16,M1)    History done. Ticket: 50942179

En el segundo párrafo, ¿qué ves?

Me tomaré la molestia de escribirlo:

2016.08.15 15:37:17.720    Test_deff_order (GAZR-9.16,M1)    Volume initial: 1.0. Volume current: 0.0 Deals done: 0.0 

 

Pero una vez más estás intentando analizar algo (órdenes) sin tener en cuenta que el trigger que permite analizar el volumen de posiciones es una transacción del tipo TRADE_TRANSACTION_DEAL_ADD - añadir una operación al historial.

Sin embargo, persistentemente, por enésima vez, con TRADE_TRANSACTION_DEAL_ADD no comprueba el volumen de la posición.

Aquí está el código del mensaje anterior:

      case TRADE_TRANSACTION_DEAL_ADD:
        if((order_ticket!=0) && (trans.order==order_ticket))
        {
         Print("Deal done. Ticket: ",trans.order);
        }
      break; 
 
Изменение позиции в терминале происходит строго в результате получения сделочной транзакции, ....

¿No ves que la posición (en el segundo caso) ha cambiado ANTES de que llegara la transacción?

Esto no debería ser, porque Alexndr escribió:

Изменение позиции в терминале происходит СТРОГО в результате получения сделочной транзакции, ....
 

¡ESTRICTAMENTE!

¡ESTRICTAMENTE!

¡ESTRICTAMENTE!

¡ESTRICTAMENTE!

 
prostotrader:

¿No ves que la posición (en el segundo caso) cambió ANTES de que lleg ara la transacción?

NO DEBE HABER, porque Alexndr escribió:

Ah, eso es... Sólo el autor lo dirá con más precisión :-))

Pero, en mi opinión, no vale la pena meterse con estas palabras. La transacción comercial ya ha llegado, sólo que no se procesa inmediatamente en OnTradeTransaction().

Lo curioso es que señalas la transacción comercial, mientras que en tu código hay caso TRADE_TRANSACTION_HISTORY_ADD .

Imho, aquí es importante procesarlo examinando las transacciones - caso TRADE_TRANSACTION_DEAL_ADD.

 
Dennis Kirichenko:

Ah, eso es... Sólo el autor puede ser más preciso :-))

Pero, en mi opinión, no hay que meterse con estas palabras. La transacción ya llegó, sólo que no se procesó inmediatamente en OnTradeTransaction().

En mi opinión, es importante procesarlo examinando la transacción...

¡Gracias Denis!

Soy un tonto que ni siquiera sabe lo que esOnTradeTransaction

 
prostotrader:

¡Gracias Deniska!

Yo soy un tonto que ni siquiera sabe lo que es OnTradeTransaction.

Es un placer. Pero su ironía no tiene fundamento. Ya te han frotado varias veces seguidas lo que está mal en el código.

Al menos deberías haberle dado las gracias a Vladimir, que fue el primero en apuntar en la dirección correcta ;-)

 
Dennis Kirichenko:

Es un placer. Pero su ironía no tiene sentido. Se le ha dicho varias veces seguidas lo que está mal en el código.

Al menos deberías dar las gracias a Vladimir, que fue el primero en apuntar en la dirección correcta ;-)

Lea "a su gusto":

https://www.mql5.com/ru/forum/93357#comment_2707875

 

Karputov Vladimir

¿No se pueden multiplicar los números bajo mis avatares por 1000?

Una cosa más...

Por si no te has dado cuenta, debo decir que en todos los ejemplos las órdenes se ponen

asíncronos, por lo que es importante controlarlos.

 
prostotrader:

Karputov Vladimir

¿No pueden los números bajo mi avatar morir por 1000?

Los dígitos bajo tu avatar no te pertenecen, por lo que no tienes poder sobre ellos (no puedes cambiarlos a voluntad).

Añadido.

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