¿Cómo puedo abrir una orden de mercado correctamente? - página 6

 
Gennady Mazur:

Se le aconsejó correctamente sobre la pausa. Ya hubo un tema en el foro que decía que una pausa de varios milisegundos después de enviar la orden suele ser suficiente para seguir trabajando con la posición. Es mejor no confiar en OnTradeTransaction() si es posible.

Y en general, para ser más fiable, intenta comprobar si hay una posición después de que la orden se envíe en el siguiente tick. Si hay una posición, no envíe más órdenes.

 
Alexey Kozitsyn:

No se debe confiar en OnTradeTransaction(), si es posible.


Me pregunto por qué.
 
prostotrader:
Me pregunto por qué.

1. No es seguro que llegue;

2. Se comportó mal antes en el probador. No lo sé ahora;

Añadido:

3. Algunos parámetros de orden o transacción (no recuerdo exactamente) como la enumeración pueden tener "valores por defecto" que no son. Es decir, MQ no hizo WRONG_VALUE sino, por ejemplo, ORDER_TYPE_BUY. Podría ser engañoso;

 
Alexey Kozitsyn:

Se le aconsejó correctamente sobre la pausa. Ya hubo un tema en el foro que decía que una pausa de varios milisegundos después de enviar la orden suele ser suficiente para seguir trabajando con la posición. Es mejor no confiar en OnTradeTransaction() si es posible.

Y en general, para ser más fiable, intenta comprobar si hay una posición después de que la orden se envíe en el siguiente tick. Si hay una posición, no envíe más órdenes.

En principio, lo hago, pero en Forts a menudo se acepta una orden con éxito... pero no hay posición en el siguiente tick.
Aquí es donde se puede colar la apertura adicional .... solucionando parcialmente el tema de la siguiente manera, si la orden es aceptada, aumento la variable Int, y después del aumento las condiciones de apertura son ligeramente diferentes, por lo que no se produce una nueva apertura, pero.... si la orden no es aceptada la variable no aumenta, y aquí está la parte complicada... No he identificado correctamente el estado y están llegando pedidos extra.
 
Alexey Kozitsyn:

1. No es seguro que llegue;

2. Se comportó mal antes en el probador. No lo sé ahora;

Probablemente no hayas visto el mensaje de los desarrolladores de que ahora, OnTradeTransaction() está garantizado.

Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.
Что касается этой фразы.

Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.

¿Cuántos segundos de pausa? ¿1 segundo 2, tal vez 10?

2016.12.14 22:01:41.371 Trades  'xxxxx': cancel order #49932961 buy limit 1.00 CHMF-6.17 at 92501 placed for execution in 64873.549 ms

Añadido

No olvide que está trabajando con una aplicación CLIENTE - SERVIDOR (petición-respuesta)

 
prostotrader:

Probablemente no hayas visto el mensaje de los desarrolladores de que ahora, OnTradeTransaction() está garantizado.

Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.
Что касается этой фразы.

Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.

¿Por cuánto tiempo debemos hacer una pausa? 1seg 2, ¿tal vez 10?

2016.12.14 22:01:41.371 Trades  'xxxxx': cancel order #49932961 buy limit 1.00 CHMF-6.17 at 92501 placed for execution in 64873.549 ms

Sí, tienes razón, no vi la frase, tampoco los cadáveres :)

Acerca de la pausa - usted dio un caso bastante exótico, sin embargo, por supuesto, es posible. Me refiero al caso para trabajar con instrumentos líquidos, contratos actuales y para trabajar en el tick actual inmediatamente después de enviar la orden. En la gran mayoría de los casos bastan varios milisegundos. Y, por supuesto, después de la pausa, es necesario comprobar la presencia de la posición para seguir trabajando con ella.

 
Gennady Mazur:
En principio lo hago así, pero en Forts la orden suele ser aceptada con éxito...pero en el siguiente tick aún no hay posición...
Aquí es donde la apertura adicional puede deslizarse .... resolver parcialmente el problema de esta manera, si la orden es aceptada, aumento la variable int, y después del aumento las condiciones de apertura son ligeramente diferentes, por lo que no hay una nueva apertura, pero.... si la orden no es aceptada la variable no se incrementa, pero aquí está la parte complicada... Me equivoqué de estado y empezaron a aparecer pedidos extra.
En cualquier caso poco claro, como ya se ha sugerido, utilice el registro avanzado, no sólo un retorno de sí/no. Especialmente en la fase de desarrollo.
 
Alexey Kozitsyn:

Sí, tienes razón, no vi la frase, y tampoco los cadáveres:)

En cuanto a la pausa, has citado un caso bastante exótico, aunque, por supuesto, es posible. Me refiero al caso para trabajar con instrumentos líquidos, contratos actuales y para trabajar en el tick actual justo después de enviar la orden. En la gran mayoría de los casos bastan varios milisegundos. Y, por supuesto, después de la pausa, es necesario comprobar la presencia de la posición para seguir trabajando con ella.

¡Alexey!

Un instrumento bastante líquido :)

2016.12.14 22:01:41.431 Trades  'xxxxx': cancel order #49931802 sell limit 1.00 GOLD-9.17 at 1190.2 placed for execution in 64926.078 ms

No se trata del instrumento (liquidez), sino del retraso, que puede darse en CUALQUIER instrumento.

Llevo casi 4 años operando activamente con EAs.

En ninguno de mis EAs hay pausas (Excepto la pausa mientras se espera que los datos se descarguen del servidor en INDICADORES),

Si hace una pausa, es un signo seguro de que su EA no lo hizo bien :(

 
prostotrader:

¡Alexey!

Llevo casi 4 años operando activamente con EAs.

No tengo ninguna pausa en ninguno de mis EAs (excepto la pausa para esperar a que se descarguen los datos del servidor en INDICADORES),

Si está entrando en una pausa, es una señal VERDADERA de que ha creado mal el algoritmo de su EA :(

Michael, si no has visto o hecho algo, no significa que no sea posible o que no sea necesario.
 
Alexey Kozitsyn:
Michael, si no has visto o hecho algo, no significa que sea imposible o innecesario.

Estoy completamente de acuerdo contigo.

Cada uno hace lo que quiere o lo que puede.

Razón de la queja: