¿La desaceleración lineal es un error de programación o una característica de MT4? - página 9

 
Serj_Che:

No tengo ninguna queja contra ti.

Tampoco el papaklass .

¿Es usted su abogado?

¿Es usted su fiscal? No me gustó que pensaras que podías decirlo por él, pero no por ti, y que no puedes decirlo aquí, pero sí por ese hombre.

No me gustaba, así que hablé. No hay reclamaciones personales, sólo en relación con la situación.

 

-Aleks-:

Por lo tanto, la tasa de procesamiento aproximada es de 23 pases desde el año 2000 hasta el 2013 en la franja horaria a los precios de apertura:

1. Kamikadze_MA_V_01 - 5 minutos

2. Kamikadze_MA_V_02 - 15 minutos.

3. Kamikadze_MA_V_03 - más de 30 minutos

Una operación de este tipo sencillamente acaba con la posibilidad de afinar la EA en tiempo real.


¿Así que 23 pases en 30 minutos es mucho tiempo? Eso es interesante.

Mi Asesor Experto en M15 desde junio hasta septiembre tarda 24 horas para una pasada en el probador. Eso es mucho tiempo. Ni siquiera voy a hablar de la optimización. Y no es necesario...

 
decanium:

Mi EA en M15 de junio a septiembre en todas las garrapatas en el probador pasa un día en una sola pasada. Eso es mucho tiempo. Ni siquiera hablo de la optimización. Y no es necesario.

Y el de multidivisas en M5 sobre los precios de apertura en el histórico de 9 meses gasta 20 minutos para 15000 pases de la genética. Pero eso tampoco es un indicador. Depende mucho del número de indicadores utilizados...
 
decanium:

¿Así que 23 pases en 30 minutos es mucho tiempo...? Interesante.

Mi EA en M15 desde junio hasta septiembre en todas las garrapatas en el probador pasa un día para un pase. Eso es mucho tiempo. Ni siquiera voy a hablar de la optimización. Y no es necesario.

Lo más importante es que he mostrado cómo la velocidad ha retrocedido durante la evolución del Asesor Experto. En general, dudo de un EA que utilice ticks porque los ticks se generan y no tienen nada que ver con la historia.

micle:
Y tengo un EA multidivisa en M5 sobre precios de apertura en un histórico de 9 meses gasta 20 minutos en 15000 pases genéticos. Pero tampoco es un indicador. Depende mucho del número de indicadores utilizados...

¿Pero es posible acelerar significativamente el rendimiento del EA en el historial preparando los datos calculados de los indicadores y guardándolos en un archivo?

 
-Aleks-:

Lo más importante es que he mostrado cómo la velocidad ha retrocedido a medida que el EA ha evolucionado. Un EA que funciona con ticks - Dudo de tales EAs en absoluto, ya que los ticks se generan y no tienen nada que ver con la historia.

¿Es posible acelerar significativamente el trabajo del EA en el historial, preparando los datos calculados de los indicadores y guardándolos en un archivo?

Es probable que la velocidad de lectura del disco sea más lenta que la velocidad de cálculo del indicador optimizado. ¿Y qué pasa con los cálculos de los agentes remotos? ¿Quiere enviarles los indicadores calculados? En su caso, hay muchas formas de optimizar la velocidad de ejecución. Hay que evitar los bucles innecesarios. + pensar si es tan crítico realizar todas las acciones en cada tick, quizás sea suficiente con limitarlo a " evento de barra nueva".

 
micle:

Existe la posibilidad de que la velocidad de lectura del disco salga perdiendo frente a la velocidad de cálculo del indicador optimizado. ¿Y qué pasa con los cálculos de los agentes remotos? ¿Quiere enviarles los indicadores calculados? En su caso hay muchas formas de optimizar la velocidad de ejecución. Hay que evitar los bucles innecesarios. + pensar si es tan crítico hacer todo en cada tick, tal vez será suficiente para limitar con "nuevo evento de la barra".

¿No podemos leer los datos una vez, crear un array a partir de ellos y acceder a ellos después?

En cuanto a mi EA concreto, recuerdo que lo optimicé por precios de apertura, es decir, sin ticks, aparentemente. Y por pensar en ello, al final estoy pagando al Aplicador/Desarrollador por la optimización de mi propio código, pero sin la comprobación de eventos en el código para la acción del EA, que promete un aumento significativo de la velocidad en el optimizador, espero que sea así.

¡Eso espero! ¡Gracias por el sabio consejo!

Me gustaría hacer una pregunta, si 20 EAs trabajan simultáneamente en el momento de la apertura de la barra, ¿no causará un pico de ralentización y errores en la apertura de la orden porque el precio cambia drásticamente durante la estimación de los datos?

 
-Aleks-:

¿No podemos leer los datos una vez, crear una matriz con ellos y luego acceder a ellos?

Durante las pruebas, lo pasamos por el historial. Emulación de la negociación. Cuando el Asesor Experto recibe sólo los datos que ya se han recibido en cada recuento siguiente (llamada del Asesor Experto). En el caso del fichero, tendrá a su disposición todo el historial del indicador, incluido el futuro que le espera en próximas convocatorias. Por cierto, el array ocupará mucho espacio de memoria en este caso. Le aseguro que esta no es la dirección en la que debemos avanzar durante la optimización. Al menos, no en este caso.


-Aleks-:

Tengo una pregunta relevante: si 20 EAs trabajan simultáneamente en el momento de la apertura de la barra, ¿no causará un pico de ralentización y errores en la apertura de órdenes, porque el precio cambiará mucho durante el cálculo de los datos?

Si los 20 EAs trabajan sobre el mismo símbolo, sí. Comenzarán los cálculos casi simultáneamente. Pero hay que tenerlo en cuenta:

- Cada una de ellas se ejecutará en un hilo independiente. En el caso de la configuración de un ordenador de 4 núcleos, 4 de ellos pueden ejecutarse simultáneamente y casi no tienen influencia mutua.

- el tiempo requerido para un solo cálculo será probablemente incomparablemente corto comparado con el tiempo de envío de una orden de negociación. Es por esta razón, que sería mejor enviar asincrónicamente órdenes de comercio para los precios actuales (si se pueden generar varias órdenes en 1 pase). Así no tendrá que esperar el resultado de la primera orden antes de enviar la segunda. Pero aquí también puede haber diferentes opciones. Todo depende de la estrategia de negociación.


En el caso de los Asesores Expertos que se ejecutan en diferentes símbolos, los ticks y la nueva barra no suelen ocurrir simultáneamente.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
micle:

Al hacer la prueba, se realiza un recorrido por el historial. Emulación de la negociación. Cuando en cada siguiente cuenta atrás (llamada del Asesor Experto) recibe sólo los datos que ya habría recibido. En el caso del fichero, tendrá a su disposición todo el historial del indicador, incluido el futuro que le espera en próximas convocatorias. Por cierto, el array ocupará mucho espacio de memoria en este caso. Le aseguro que esta no es la dirección en la que debemos avanzar durante la optimización. Al menos, no en este caso.

En caso de que los 20 Asesores Expertos se ejecuten en una misma herramienta, sí. Comenzarán los cálculos casi simultáneamente. Pero hay que tenerlo en cuenta:

- Cada una de ellas se ejecutará en un hilo independiente. En el caso de la configuración de ordenadores de 4 núcleos, 4 pueden ejecutarse simultáneamente sin prácticamente ninguna influencia mutua.

- Lo más probable es que el tiempo de un solo cálculo sea incomparablemente corto con el tiempo de envío de una orden de negociación. Por esta razón, sería mejor enviar las órdenes de comercio para los precios actuales (si se pueden generar varias de ellas en una sola pasada) de forma asíncrona. Así no tendrá que esperar el resultado de la primera orden antes de enviar la segunda. Pero aquí también puede haber diferentes opciones. Todo depende de la estrategia de negociación.

En el caso de los Asesores Expertos que operan en diferentes símbolos, los ticks y una nueva barra no suelen ocurrir simultáneamente.

¿He entendido bien que hay que hacer un retraso artificial en el envío de las órdenes de apertura sin esperar la confirmación de que las órdenes se han abierto?

 
-Aleks-:

¿Estoy en lo cierto al suponer que debería haber un retraso artificial cuando se envíen las órdenes a las órdenes abiertas, pero sin esperar la confirmación de que se han abierto?

No es necesario hacer ningún retraso artificial. Internet y el corredor lo harán por ti...
 

micle:
никаких искусственных задержек делать не нужно. Это за вас сделает интернет и брокер... 

Me refiero a la situación que se da en el trading manual - envías una solicitud de apertura de una orden y esperas a que se procese, a veces esperas un minuto y cuando intentas enviar otra orden te sale "el canal está ocupado", como resultado, la primera orden no se abre por los cambios de precio y la segunda no fue enviada por el terminal (¿o el broker no la aceptó?).¿Cómo se comportará el EA en tal caso? ¿Es necesario prescribir de alguna manera especial o podrá enviar órdenes sin esperar a su ejecución?

Razón de la queja: