Análogo a iBarShift - página 8

 
Vitaly Muzichenko:

Lo he comprobado rápidamente: hay una función que funciona desde hace más de un día, la he sustituido poriBarShift3 y he conseguido que el EA funcione incorrectamente. Esa es la conclusión que saqué.

Este es el que yo utilizo

Intenta con tu función hacer esto:

Print("iBarShift1 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:01')));
Print("iBarShift0 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:00')));

Su función dará valores diferentes, pero la hora es la misma. Eso significa que no está funcionando.

La función nativa en MQL4 da los mismos valores.

iBarShift3 también da los mismos valores, pero para los períodos D1, W1 y MN1 es igualmente erróneo. Tengo que retocar un poco el código. Sé cómo hacerlo y lo haré más adelante cuando tenga suficiente tiempo.

Por lo demás, estas funciones se comportan igual, sólo que iBarShift3 es mucho más rápido.


ZS: Lo siento. Su función funciona correctamente. Puse el código equivocado. Es el mío el que no se comporta correctamente en los períodos D1,W1 y MN1. Lo arreglaré hoy mismo.

 
Ya estoy confundido con los pilares de la programación: ¿qué función cuenta ahora exactamente todo en todos los TF?
 
Aleksey Vyazmikin:
Ya estoy confundido con los pilares de la programación: ¿qué función cuenta con precisión en todos los TFs hoy en día?
Lógicamente, la función más lenta parece acertar :-)
 
Aleksey Vyazmikin:
Ya estoy confundido con los pilares de la programación: ¿qué función cuenta ahora exactamente todo en todos los TF?
https://www.mql5.com/ru/forum/743/page7#comment_6995147
 
Aleksey Vyazmikin:
Ya estoy confundido con los pilares de la programación: ¿qué función cuenta ahora exactamente todo en todos los TF?
¿Y funciona todo correctamente cuando hay saltos de barra?
 
Yury Kirillov:
Si te fijas en la lógica, el más lento parece acertar :-)

No, el más lento no es correcto, a juzgar por el indicador publicado anteriormente.

Yury Kirillov:
¡Y todos ellos funcionan correctamente cuando hay huecos en las barras!

Esto es muy importante, porque a veces pasa el tiempo y no hay ninguna barra, especialmente en TFs pequeños, entonces el número de barras con minutos puede ser diferente en diferentes días...

 
Vitaly Muzichenko :

Lo he comprobado rápidamente: hay una función que funciona desde hace más de un día, la he sustituido por iBarShift3 y he conseguido que el EA funcione incorrectamente. Esa es la conclusión que saqué.

Este es el que estoy utilizando

Este es mi código. ¿Algún problema?

 
Nikolai Semko :
...

Todos los algoritmos que había antes, incluido el de @Alain Verleyen, tienen situaciones anómalas.

Se puede crear un análogo completo de iBarShift MQL4, pero el código será muy engorroso y no le veo ningún sentido.

¿Qué problema ha encontrado?

 
Alain Verleyen:

¿Qué problema ha detectado?

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

iBarShift Analógico

Nikolai Semko, 2018.04.04 17:47

Intenta con tu función hacer esto:

Print("iBarShift1 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:01')));
Print("iBarShift0 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:00')));

Su función dará valores diferentes, pero la hora es la misma. Así que no está funcionando.

En MQL4 la función nativa da los mismos valores.

iBarShift3 también da los mismos valores, pero para los períodos D1, W1 y MN1 se equivoca igualmente. Tengo que retocar un poco el código. Sé cómo hacerlo y lo haré más adelante cuando tenga suficiente tiempo.

Por lo demás, estas funciones se comportan igual, sólo que iBarShift3 es mucho más rápido.


ZS: Lo siento. Su función funciona correctamente. Puse el código equivocado. Es el mío el que no se comporta correctamente en los períodos D1,W1 y MN1. Lo arreglaré hoy mismo.


 
Vitaly Muzichenko :

Gracias.