¡Problemas encontrados durante las pruebas de espalda y no se puede encontrar la causa raíz! - página 5
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
. Sigo sin ver la desaparición de los picos. ¿Cómo se puede "reiniciar"?
Se puede reiniciar cambiando los plazos
o
abriendo la ventana de entrada del indicador y haciendo clic en OK
You can re-initialise by either changing timeframes
or
Abrir la ventana de entrada del indicador y hacer clic en Aceptar.
Después de probar, entiendo que es el mismo significado que dije el cambio de ubicación de los picos. ¿Correcto?
EstimadoGumRai,
Para cada iteración, (excepto la primera,) Fish1 es el valor del elemento anterior del buffer, pero no lo inicializas a ExtBuffer1[límite ].
Así que para la iteración inicial (cuando el límite == barras) se establece ExtBuffer1[0] = 1,1*ExtBuffer1[1] .
Pero para los siguientes ticks (cuando límite == 1) estableces ExtBuffer1 [0] = 1.1*0.00001 .
Estimado WHRoeder,
Muchas gracias y veo el tema un poco mejor con tu dirección.
Sin embargo, puede que todavía necesite algunas preguntas más para aclarar más:
1. Se puede ver "double Fish1=0.00001; " se define en el principio y fuera de todas las funciones.
Así que debería ser una variable global y entiendo que se ha asignado con el último ExBuffer1[0] aunque venga un nuevo tick posterior.
¿O se recupera automáticamente a "0.00001" cada vez que llega un nuevo tick?
2. Ahora que cada barra se pinta de forma diferente con un solo tick o con muchos ticks posteriores, ¿por qué puedo ver el repintado de .., bar[8], ..., o bar[1], en un gráfico M1 en vivo sin ninguna interrupción?
3. ¿Por qué se cambian las ubicaciones de los picos después de ser refrescados?
4. ¿Por qué puedo ver algunos picos (alrededor de 959870576) formados mucho, mucho menos que"EMPTY_VALUE" (2147483647) en los gráficos M1 en vivo?
5. Si sale una nueva barra, el anterior ExtBuffer1[0] cambiará a ExtBuffer1[1] automáticamente. ¿Es correcto?
6. ¿Cómo se puede evitar una posible reinicialización o repintado?
¡Tal vez todavía estoy confundido en algunos puntos críticos y necesito su gran paciencia para ayudar! ¡Se agradece mucho si puedes ayudarme con las preguntas una por una!
EstimadoWHRoeder,GumRai,
He actualizado mi indicador como el código de abajo de acuerdo a mi comprensión después de leer sus mensajes de nuevo.
Después de usarlo para la prueba de espalda, el resultado es mucho más consistente con el indicador. Sin embargo, todavía hay 2 problemas. Por favor, consulte las capturas de pantalla a continuación.
1. El comercio tiene lugar después de 4 señales del indicador al principio de la primera orden.
2. Todavía hay un cambio de orden que ocurre 4 barras antes de la señal del indicador.
A continuación se muestra el código del indicador actualizado.
1. Puedes ver que "double Fish1=0.00001; " está definido al principio y fuera de todas las funciones.
Así que debería ser una variable global y entiendo que se ha asignado con el último ExBuffer1[0] aunque venga un nuevo tick posterior.
¿O se recupera automáticamente a "0.00001" cada vez que llega un nuevo tick?
Personalmente, creo que los argumentos rates_total/prev_calculated/OnCalculate son una abominación ya que los gráficos/buffers son series de tiempo, y lo haría de la manera antigua: