Gracias, tengo que arreglar mi código también cuando exact es true, ya que entendí mal este parámetro. Documentación en Inglés para iBarShift está mal.
Creo que este es mi error también, iBarShift debe devolver la barra que contiene el tiempo especificado (no con el tiempo exacto de apertura).
¿Podría utilizar su función en mi biblioteca (con sus derechos de autor, por supuesto)? Si es más rápido y correcto, ¿por qué debería reinventar la rueda)?
Creo que este es mi error también, iBarShift debe devolver la barra que contiene el tiempo especificado (no con el tiempo exacto de apertura).
¿Podría utilizar su función en mi biblioteca (con sus derechos de autor, por supuesto)? Si es más rápido y correcto, ¿por qué debería reinventar la rueda)?
Gracias, tengo que arreglar mi código también cuando exact es true, ya que entendí mal este parámetro. La documentación en inglés de iBarShift es incorrecta.
El error mql5 está en la función Bars(), lo he reportado al Service Desk.
Parece que el error de Bars() se ha corregido en la versión 880.
Si exact=true, la lógica debería devolver -1 en caso de que el tiempo no pertenezca explícitamente a la última barra, es decir, si time>LastBar+PeriodSeconds(timeframe).
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Gracias, tengo que arreglar mi código también cuando exact es true, ya que entendí mal este parámetro. Documentación en Inglés para iBarShift está mal.
Creo que este es mi error también, iBarShift debe devolver la barra que contiene el tiempo especificado (no con el tiempo exacto de apertura).
¿Podría utilizar su función en mi biblioteca (con sus derechos de autor, por supuesto)? Si es más rápido y correcto, ¿por qué debería reinventar la rueda)?
Creo que este es mi error también, iBarShift debe devolver la barra que contiene el tiempo especificado (no con el tiempo exacto de apertura).
¿Podría utilizar su función en mi biblioteca (con sus derechos de autor, por supuesto)? Si es más rápido y correcto, ¿por qué debería reinventar la rueda)?
Gracias, tengo que arreglar mi código también cuando exact es true, ya que entendí mal este parámetro. La documentación en inglés de iBarShift es incorrecta.
El error mql5 está en la función Bars(), lo he reportado al Service Desk.
La compilación 880 ha corregido el error en Bars(), y todo funciona bien ahora.
en m2 con m1 los valores en trudy, por alguna razon tienen valores no -1, y en barra cero hay un retorno a la barra 1.
La función está torcida en al menos dos sitios:
1) if(time>LastBar)
return(0);
Si exact=true, la lógica debería devolver -1 en caso de que el tiempo no pertenezca explícitamente a la última barra, es decir, si time>LastBar+PeriodSeconds(timeframe).
2) if(CopyTime(symbol,timeframe,time,1,checkcandle)==1)
...
return(-1);
De nuevo, si exact=false, se devolverá la barra más cercana, en este caso Bars(symbol,timeframe)-1.
Creo que hay un pequeño error en tu código:
Si el último tick 'abre' una nueva barra entonces if(time>LastBar) se convierte en falso - porque ahora time == LastBar
Y más tarde aterrizamos aquí
¡Y ahora shift == 0 que devuelve -1 en vez de 0!
Así que creo que esto
debería cambiarse a
Calli
Creo que hay un pequeño error en tu código:
Si el último tick 'abre' una nueva barra entonces if(time>LastBar) se convierte en falso - porque ahora time == LastBar
Y mas tarde aterrizamos aqui:
¡Y ahora shift == 0 que devuelve -1 en vez de 0!
Así que creo que esto
debería cambiarse por
Calli
Tu corrección también funcionaría, pero el caso 'time==LastBar' se procesa como un caso "normal".
La declaración
if(time>LastBar)se añadió como corrección de errores si el tiempo es mayor que el tiempo de la barra 0 actual.