Analógico para iBarShift - página 8

 
Vitaly Muzichenko:

Verifiquei rapidamente: há uma função que está a funcionar há mais de um dia, substituí oiBarShift3 e consegui que a EA trabalhasse incorrectamente. Foi essa a conclusão que daí retirei.

Aqui está o que eu uso

Tente com a sua função fazer isto:

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')));

A sua função dará valores diferentes, mas a hora é a mesma. Isso significa que não está a funcionar.

A função nativa em MQL4 dá os mesmos valores.

iBarShift3 também dá os mesmos valores, mas para os períodos D1, W1 e MN1 é igualmente errado. Preciso de afinar um pouco o código. Eu sei como fazê-lo e fá-lo-ei mais tarde quando tiver tempo suficiente.

Caso contrário, estas funções comportam-se da mesma forma, apenas o iBarShift3 é muito mais rápido.


ZS: Desculpe. A sua função funciona correctamente. Introduzi o código errado. É a minha que não se comporta correctamente nos períodos D1,W1 e MN1. Vou arranjá-lo hoje.

 
Já estou confuso com os pilares da programação - então que função conta agora exactamente com tudo em todas as TFs?
 
Aleksey Vyazmikin:
Já estou confuso com os pilares da programação - então qual a função que conta com precisão em todas as TFs hoje em dia?
Logicamente, a função mais lenta parece acertá-la :-)
 
Aleksey Vyazmikin:
Já estou confuso com os pilares da programação - então que função conta agora exactamente com tudo em todas as TFs?
https://www.mql5.com/ru/forum/743/page7#comment_6995147
 
Aleksey Vyazmikin:
Já estou confuso com os pilares da programação - então que função conta agora exactamente com tudo em todas as TFs?
E tudo isto funciona correctamente quando há saltos de bar!
 
Yury Kirillov:
Se olharmos para a lógica, a mais lenta parece acertá-la :-)

Não, o mais lento não está correcto, a julgar pelo indicador afixado anteriormente.

Yury Kirillov:
E façam todos eles funcionar correctamente quando há lacunas nas barras!

Isto é muito importante, porque às vezes o tempo passa e não há bar, especialmente em pequenos TFs, então um número diferente de bares com minutos pode ser diferente em dias diferentes...

 
Vitaly Muzichenko :

Fiz uma verificação rápida: há uma função que está a funcionar há mais de um dia, substituí o iBarShift3 e consegui que a EA trabalhasse incorrectamente. Foi essa a conclusão que daí retirei.

Aqui está o que estou a usar

Este é o meu código. Algum problema ?

 
Nikolai Semko :
...

Todos os algoritmos disponíveis anteriormente, incluindo o de @Alain Verleyen, têm situações anormais.

Pode-se criar um análogo completo de iBarShift MQL4, mas o código será muito pesado e não vejo qualquer sentido nele.

Qual foi o problema que encontrou?

 
Alain Verleyen:

Qual foi o problema detectado?

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

iBarShift Análogo

Nikolai Semko, 2018.04.04 17:47

Tente com a sua função fazer isto:

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')));

A sua função dará valores diferentes, mas a hora é a mesma. Portanto, não está a funcionar.

Na MQL4 a função nativa dá os mesmos valores.

iBarShift3 também dá os mesmos valores, mas para os períodos D1, W1 e MN1 está igualmente enganado. Preciso de afinar um pouco o código. Eu sei como fazê-lo e fá-lo-ei mais tarde quando tiver tempo suficiente.

Caso contrário, estas funções comportam-se da mesma forma, apenas o iBarShift3 é muito mais rápido.


ZS: Desculpe. A sua função funciona correctamente. Introduzi o código errado. É a minha que não se comporta correctamente nos períodos D1,W1 e MN1. Irei corrigi-lo hoje.


 
Vitaly Muzichenko :

Obrigado.
Razão: