¿Con qué sustituir OnTradeTransaction() en mql4? - página 5

 
Vitaly Muzichenko:

Hoy me he encontrado con que una posición se ha cerrado y la otra se ha abierto en otra, y casi al mismo tiempo entre ticks.

Al final OrdersTotal() se quedó en 8. La lógica del Asesor Experto se confundió - no ha recalculado los nuevos datos

Eso es exactamente lo que pienso y no me gusta. Aunque mi situación sea ligeramente diferente, la esencia es la misma. Estoy pensando.

 
Aleksandr Volotko:

Eso es exactamente lo que estoy pensando y no me gusta. Aunque mi situación será un poco diferente, pero la cuestión es la misma. Estoy pensando.

Alexander, no encontrarás nada mejor que la biblioteca de Artem Trishkin. Aunque me critica, es sólo sobre mql5 y no estoy haciendo mucho en mql4 por eso no estoy usando esa biblioteca. He iniciado un Asesor Experto y he intentado utilizarlo, pero he desistido. La idea resultó ser incompetente antes de que se terminara de implementar... )))

En mi opinión, construir un algoritmo sobre la búsqueda de la historia no es la mejor opción. Y cambiar el tamaño de la historia es aún peor. Uno de los problemas ha sido descrito por Vitaly. El otro es que, si no escribimos sólo para nosotros, es generalmente inaceptable. El número de órdenes en el historial en mql4 depende de la selección de profundidad

E imagina que un usuario decide revisar el historial de hoy, luego el de una semana y un par de interruptores más... El EA se volvería loco si quisiera))))

 
Aleksandr Volotko:

Eso es exactamente lo que estoy pensando y no me gusta. Aunque mi situación será un poco diferente, pero el punto es el mismo. Estoy pensando.

La suma hash de las propiedades de las órdenes y las posiciones. El símbolo se codifica en la suma de los códigos de caracteres que componen su nombre. Pero entonces sólo un bucle completo. Cuando la suma de hash cambia - ver lo que pasó.
 
Artyom Trishkin:
La suma hash de las propiedades de las órdenes y las posiciones. El símbolo se codifica en la suma de los códigos de caracteres que componen su nombre. Pero entonces sólo un bucle completo. Cuando se cambia la suma de hash - ver lo que pasó.

¿Cómo es eso?

 
Alexey Viktorov:

Alexander, no encontrarás nada mejor que la biblioteca de Artem Trishkin. No sé por qué no lo uso. Empecé un EA intentando usarlo, pero lo dejé. He iniciado un Asesor Experto y he intentado utilizarlo, pero he desistido. La idea resultó ser incompetente antes de que se terminara de implementar... )))

En mi opinión, construir un algoritmo sobre la búsqueda de la historia no es la mejor opción. Y cambiar el tamaño de la historia es aún peor. Uno de los problemas ha sido descrito por Vitaly. El otro es que, si no escribimos sólo para nosotros, es generalmente inaceptable. El número de pedidos en el historial en mql4 depende de la selección de profundidad

E imagina que el usuario decide ver el historial de hoy, luego el de una semana, y un par de cambios más... El Asesor Experto se volvería loco si quisiera))))

Alexey, OrdersHistoryTotal() funciona claramente, siempre hay un relleno o truncamiento del "periodo de selección".

 
Vitaly Muzichenko:

Alexei, OrdersHistoryTotal() funciona bien, siempre llena o reduce el "periodo de selección"

No lo entiendo. ¿Dices que no depende de la configuración del terminal? ¿Ha habido algún cambio de este tipo?

 
Alexey Viktorov:

No lo entiendo. ¿Dices que no depende de la configuración del terminal? ¿Ha habido algún cambio de este tipo?

No, pero tal vez estamos hablando de cosas diferentes.

static __TotalHist = -1;
int HT=OrdersHistoryTotal();
  if(HT!=__TotalHist)
   {
     SetHistory();
     __TotalHist=OrdersHistoryTotal(); // запомним количество
   }

Esto siempre funcionará.

Puede que no funcione en 1 caso de cada 100.500.

static __Total = -1;
int OT=OrdersTotal();
  if(OT!=__Total)
   {
     SetMarket();
     __Total=OrdersTotal(); // запомним количество
   }
 
Artyom Trishkin:
Una suma hash de las propiedades de las órdenes y las posiciones. El símbolo se codifica en la suma de los códigos de caracteres que componen su nombre. Pero entonces sólo un bucle completo. Cuando la suma de hash cambia - ver lo que pasó.

dar un ejemplo en código - esta es una característica necesaria

 
Alexey Viktorov:

En mi opinión, no es la mejor manera de construir un algoritmo sobre una búsqueda de la historia.

Ni siquiera se me ocurrió tocar OrderHistoryTotal(), ¿por qué?

 
Igor Makanu:

dar un ejemplo en código - esta es una característica necesaria

Descrito en mis artículos. Está casi al principio. Y para MQL4 - en los artículos sobre la compatibilidad con 4.
Es difícil dar un enlace desde un teléfono móvil. Pero si abres cualquiera de los recientes, hay una lista de todos los artículos al final.