Errores, fallos, preguntas - página 2766

 
Alexey Viktorov:

La segunda pregunta es: ¿Cómo se fija el día, en qué formato? ¿O no importa la hora del día que se fije?

En MqlTradeRequest::expiration se debe establecer el tiempo cero

 
A100:

mediante ORDER_TIME_SPECIFIED y MqlTradeRequest::expiration

Deberías haber leído la documentación hace mucho tiempo.

¡Una vez más! No me interesa el tipo ORDER_TIME_SPECIFIED, me interesa

HORA_DE_PEDIDO_DÍA_ESPECIFICADA

El pedido será válido hasta las 23:59:59 de la fecha indicada. Si esa hora no cae en una sesión comercial, el vencimiento se producirá a la hora comercial más cercana.

Si opero en TF W1, quiero establecer el tiempo de expiración al viernes. Por supuesto, podemos calcular el tiempo hasta el viernes, no sólo puedo leer, sino también contar hasta 1000. Pero mi pregunta es la que me interesa. También quiero saber el formato para especificar el DÍA. ¿O no es importante especificar la hora exacta del día, siempre que caiga en el día deseado? ¿Qué ocurrirá con su orden si cierra la operación el viernes a las 21:00, por ejemplo, y la orden se abre el lunes? Que debería ser la primera expiración o activación.

 
A100:

La hora cero debe ser fijada.

Gracias por borrar el mensaje al que tardé en responder.

¿Estás seguro de eso? Yo lo haría por precaución. Pero me gustaría saberlo con seguridad.

 
Alexey Viktorov:

Gracias por borrar el mensaje al que tardé en responder.

¿Estás seguro de eso? Lo haría por precaución, por supuesto. Pero quiero estar seguro.

Hay que colocar manualmente la orden pendiente con fecha (sin hora) y leer programáticamente sus valores de type_time y expiración.

No lo he inventado yo, lo he hecho así.

 
A100:

Establecer manualmente una orden pendiente para que expire en una fecha específica (sin hora) y leer programáticamente sus valores type_time y de expiración

Esto no se me ocurrió a mí, lo hice yo.

Gracias por el consejo. Yo no cambio de mano en absoluto y ni siquiera pensé que se pudiera comprobar así. Yo lo he hecho de una manera ligeramente diferente. Aquí está el código.

  trade.OrderOpen(_Symbol, ORDER_TYPE_SELL_STOP, 0.1, 0, 1.24000, 0.0, 0.0, ORDER_TIME_SPECIFIED_DAY, D'2020.06.03 23:41:02');

y esta orden.


Resulta que el tiempo no se tiene en cuenta.

Pero aún nos queda la segunda pregunta. Qué se ejecutará primero, el vencimiento o la activación de la orden...

Lo único que temo es un comportamiento diferente en tester y en real o demo. E incluso en la demo, puedes esperar hasta que te quedes estupefacto...
 
Alexey Viktorov:

Pero sin aclaración hay una segunda pregunta. Qué se ejecutará primero o se activará la orden...

Depende del corredor y del factor humano, de cómo organicen las cosas allí. Me di cuenta de que la orden del día del viernes quedó pendiente hasta la sesión de negociación del lunes (incluso durante la sesión de cotización seguía pendiente).

Una noche llamé al banco a la sala de operaciones y pregunté por qué no se había ejecutado mi orden. Dijeron: ¡No lo vemos! ¿Cómo no lo ves? Aquí está en mi MetaTrader - lo coloqué hace unas horas y el precio ya ha estado allí hace una hora. Trabajamos con otro programa. Por la mañana, un nuevo empleado viene a descargar datos de MetaTrader y lo veremos todo.

Así, sus órdenes por debajo del umbral no interesan a nadie (y por encima del umbral operan en la modalidad de precio a la demanda) porque no salen a ningún lado y el distribuidor recibe una posición agregada en el mejor de los casos

 

La terminal se actualizó para construir 2470 en el abierto

Y no hay problema, el robot empezó a mostrar peores resultados en el probador que antes de la actualización.

Me puse a investigar y esto es lo que vi.

Cuando ejecuté el robot a través de la historia en el modo normal, al final llamó a un gráfico que muestra todas mis operaciones y me desplazó hacia abajo y se sorprendió de lo que estaba pasando allí

Como se puede ver en el gráfico, en una cuenta de red, los futuros del petróleo están abriendo algunas posiciones, aunque el robot no tiene ningún promedio, escala, etc. Sólo hay una posición de parada y toma, después de la apertura de la posición el algoritmo de entrada se desactiva.


Pero, tomé e hice la misma prueba, pero sólo en la prueba visual, haciendo la prueba visual, todo está bien allí


Por favor, dígame si se trata de una actualización de errores, en general, todos los salpicados después de la actualización, la toma y la parada se estableció previamente en el precio Ask y bid método separado después de que el mercado va a aparecer la posición, ahora se han quedado atascados y se mueven junto con los precios, tuve que rehacer y poner el precio y la parada en el precio de apertura de una posición y añadir la propagación a la sangría.

Qué hacer dónde cavar

 
Konstantin Seredkin:

La terminal se actualizó para construir 2470 en el abierto

Y aquí está el problema, el robot empezó a mostrar peores resultados en el probador que antes de la actualización.

...

Qué hacer

Cave para comprobar "¿Se ejecuta el Asesor Experto en la prueba?

 
Artyom Trishkin:

Escarbar hacia la comprobación de "¿Es el EA correcto el que ejecuta la prueba?

Es el único que hay en el terminal, no hay más, incluso se han eliminado los de serie

 
Konstantin Seredkin:

Es el único que hay en el terminal, no hay más, incluso se han eliminado los de serie

A juzgar por el comportamiento que has descrito, se trata de un EA diferente con un algoritmo completamente distinto.