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

 
Ihor Herasko:

¿Y la disponibilidad de luz e internet? Por no hablar de la habitual pérdida de paquetes de la red. Las MetaQuotes se han vuelto geniales: ¡todas garantizan todo! ))

Igor, la solución a todo esto es simple o muy simple. Si hay frecuentes cortes de energía, alquila un VPS. Si estos problemas ocurren también en el VPS, cambie de proveedor de servicios. Lo mismo ocurre con la pérdida de Internet por parte del usuario. Sólo es posible añadir una opción para cambiar de proveedor de Internet. Si el problema se produce en el lado de la CC... ya sabes cómo y dónde enviarlos...
 
Ihor Herasko:

¿Y la disponibilidad de luz e internet? Por no hablar de la habitual pérdida de paquetes de la red. Las MetaQuotes se han vuelto geniales: ¡todas garantizan todo! ))

¿Quizás tampoco tienes un ordenador?

 
Alexey Viktorov:
Igor, la solución a todo esto es simple o muy simple. Si hay frecuentes cortes de energía, alquila un VPS. Si estos problemas ocurren también en el VPS, cambia de proveedor de servicios. Lo mismo ocurre con la pérdida de Internet por parte del usuario. Sólo es posible añadir una opción para cambiar de proveedor de Internet. Si el problema se produce en el lado de la CC... ya sabes cómo y dónde enviarlos...

¿Y contar todo esto a los usuarios normales que trabajan con expertos? Los usuarios no deberían preocuparse por estas cosas, ya que de lo contrario este tipo de software no tiene ningún valor.

 
prostotrader:

¿Quizás tampoco tienes un ordenador?

Sí, en Internet soy telepático ))

 
Ihor Herasko:

Sí, en Internet soy telepático ))

Ya veo, pero entonces no hagas afirmaciones vagas que puedan inducir a error

los miembros de este foro confundidos.

 
prostotrader:

Ya veo, pero entonces no hagas afirmaciones vagas que puedan inducir a error

los participantes del foro en la confusión.

Esta afirmación es falsa

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

¿Cómo sustituir OnTradeTransaction() en mql4?

prostotrader, 2020.01.26 14:59

¡Estás irremediablemente fuera de onda!

Estos eventos están garantizados desde hace mucho tiempo.


Apostar por la ausencia de un precipicio en el VPS cuando se negocia es un riesgo financiero adicional.

 
prostotrader:

Ya veo, pero entonces no hagas afirmaciones vagas que puedan inducir a error

los miembros de este foro confundidos.

No hay conceptos erróneos. Si está desarrollando un software, lo primero que se le exige es un funcionamiento correcto y fiable. Si su Asesor Experto sólo utiliza OnTrade y OnTradeTransaction para respaldar sus posiciones y órdenes, el más mínimo fallo en la recepción de información de ellos distorsionará el panorama general (no sabemos con certeza si se pierde un paquete del servidor o no). La única forma más o menos fiable de recoger esta información es recorrer la lista de posiciones/órdenes. Incluso entonces, si se produce una pérdida de paquetes, no puede ser permanente. Al final (después de dos o tres consultas) los datos se recuperarán y la imagen global coincidirá plenamente con la realidad.

Dicho esto, no estoy afirmando que el uso de OnTrade() y OnTradeTransaction() no tenga sentido. Pueden utilizarse como un canal alternativo para obtener datos. Si la información llegó a través de este canal, no necesitamos revisar demasiado las listas.

 

Estoy escribiendo código portable. MT4/MT5 - gracias a MT4Orders.mqh del Sr. fxsaber. Y probador/combatiente - gracias a la compilación condicional.

Para el Probador de Estrategias, utilizo OnTradeTransaction y el almacenamiento del estado del entorno en variables, lo que acelera enormemente la optimización. En realidad - el sondeo del servidor, la velocidad no importa aquí.

 
Edgar Akhmadeev:

Uso OnTradeTransaction y el estado del entorno almacenando en variables para el probador, lo que acelera la optimización.

Te agradecería que me dieras algún ejemplo reproducible (sin interrogar al historial de operaciones).

 

Si necesitamos una solución rápida, entonces colocaría todos los tickets aCArrayInt y compararía los tickets de las órdenes abiertas con CArrayInt; el método Search() está ahí; si no hay ningún ticket, dejamos de comparar CArrayIntcon los contadores de las órdenes abiertas, reiniciar CArrayInt y escribir todas las entradas en CArrayInt de nuevo y establecer globalmente la bandera descrita MyOnTradeTransaction - la señal de que la lista de órdenes ha cambiado - el código será bastante compacto

Razón de la queja: