Errores, fallos, preguntas - página 3027
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Los indicadores son mi punto más débil ))))
¡Pero!
O no entiendo nada de nada, o estás un poco equivocado.
Por lo que sé, prev_calculated es un contador de datos no calculados. Y una vez que se cuentan los datos entrantes, ese contador se pone a cero... Como, eso es todo, chico, no hay más datos nuevos para calcular.... )))
Y por qué razón el indicador debería recalcular completamente en tal caso - ¡no lo sé!
---------------
Mintió un poco ))))
No son los indicadores los que se recalculan, sino que se recalculan los "índices" para que "queden bien" en el historial ;)
El contador se pone a cero por razones ajenas al programador, ¡como si el indicador estuviera funcionando por primera vez!
¿Es así en cada bar nuevo? Se están tranquilizando, ¿no?
Si no es cada barra, hay diferentes razones para restablecer el pre_calc.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Bichos, errores, preguntas
Andrey Dik, 2021.05.27 13:53
Es decir, el contador precalculado se pone a cero en cuanto aparece la nueva barra del timeframe. significa que el indicador se recalcula de nuevo como si se hubiera lanzado la primera vez.
¿le resulta familiar esta construcción?
¡el problema no está en la lógica del EA (redibujar, no redibujar, infradibujar o lo que sea) sino en el hecho de que prev_calculated se reinicia mientras que nadie le pidió que lo hiciera!
Creo que el problema es:
No dejas que el indicador llamado en otro TF calcule cada tick y luego lo llamas y se sincroniza el historial y el cálculo desde cero de ese indicador
he creado una prueba. el indicador llamado cuenta todo y no se reinicia a prev_calculated == 0
He dibujado el cierre en el indicador y he desenrollado el evento con una nueva barra y prev_calculado == 0 :
llamar a este indicador (obtener los 2 últimos valores del buffer) y también dibujar el cierre en su TF:
ejecutó el último indicador en M1 , log:
2021.05.27 21:48:34.196 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:48:00
2021.05.27 21:48:34.197 tst_tf (EURUSD,M1) tst_tf prev_calculated == 0
2021.05.27 21:48:34.197 tst_tf (EURUSD,M1) Error CopyBuffer # 4806
2021.05.27 21:48:34.197 tst (EURUSD,M5) tst Nueva barra 2021.05.27 21:45:00
2021.05.27 21:48:34.197 tst (EURUSD,M5) tst prev_calculated == 0
2021.05.27 21:49:01.636 tst_tf (EURUSD,M1) tst_tf new bar 2021.05.27 21:49:00
2021.05.27 21:50:00.149 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:50:00
2021.05.27 21:50:00.149 tst_tf (EURUSD,M5) tst Nueva barra 2021.05.27 21:50:00
2021.05.27 21:51:01.789 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:51:00
2021.05.27 21:52:02.832 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:52:00
2021.05.27 21:53:00.920 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:53:00
2021.05.27 21:54:02.778 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:54:00
2021.05.27 21:55:00.308 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:55:00
2021.05.27 21:55:00.308 tst_tf (EURUSD,M5) tst Nueva barra 2021.05.27 21:55:00
2021.05.27 21:56:00.118 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:56:00
2021.05.27 21:57:00.419 tst_tf (EURUSD,M1) tst_tf Nueva barra 2021.05.27 21:57:00
¿Es así en cada bar nuevo? ¿Están asegurando demasiado o algo así...
Si no es en cada barra, hay diferentes razones para restablecer pre_calc.
exactamente en cada nueva barra de la TF mayor.
Por ejemplo, si el indicador funciona en M1 y accede al indicador en M5, entonces cada 5 minutos el indicador se recalculará completamente.
Creo que el problema es:
No dejas que el indicador llamado en otro TF calcule cada tick y luego lo llamas y hay una sincronización del historial y cálculo desde cero de ese indicador
he creado una prueba. el indicador llamado cuenta todo y no se reinicia a prev_calculated == 0
He dibujado el cierre en el indicador y he desenrollado el evento con una nueva barra y prev_calculado == 0 :
llamar a este indicador (obtener los 2 últimos valores del buffer) y también dibujar el cierre en su TF:
Compruebo la sincronización de los datos en el TF superior solicitado (M5) y la preparación del indicador en él, si no está listo, entonces salgo.
Como resultado, el indicador funciona sólo una vez en la apertura de la barra M1, y no en cada tick:
Espero que los desarrolladores escuchen mis ruegos.
Compruebo la sincronización de datos en el TF superior solicitado (M5) y la disponibilidad del indicador en él, si no está listo, entonces salgo.
Como resultado, el indicador funciona sólo una vez en la apertura de la barra M1, y no en cada tick:
Espero que los desarrolladores escuchen mis ruegos.
esto no debería funcionar correctamente en los indicadores:
si no me equivoco, en la ayuda hay un recorrido del script para paginar los datos de todos los TFs y debería haber una advertencia de que no se pueden solicitar datos históricos al indicador debido a que el indicador trabaja de forma asíncrona
y se recomienda utilizar BarsCalculated() una vez que se haya vinculado la manija
UPD: script para la paginación del historial y explicación de por qué no funciona en los indicadores:https://www.mql5.com/ru/docs/series/timeseries_access
Compruebo la sincronización de datos en el TF superior solicitado (M5) y la disponibilidad del indicador en él, si no está listo, entonces salgo.
Como resultado, el indicador funciona sólo una vez en la apertura de la barra M1, y no en cada tick:
Espero que los desarrolladores escuchen mis ruegos.
¿Para qué sirve ese cheque?
Sería mucho más sencillo escribir return 0; sin condición y ya está.
En cada nueva barra, la condición se cumplirá y todas las barras se recalcularán independientemente de la sincronización. Has escrito un código poco meditado y pretendes que sea un bug terminal...
¿Qué sentido tiene esa comprobación?
Sería más fácil escribir return 0; sin condición y ya está...
La condición se cumplirá en cada nueva barra y todas las barras se recalcularán independientemente de la sincronización. Has escrito un código precipitado y lo has hecho pasar por un error del terminal...
piénsalo de nuevo.