Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Disse que tudo deveria funcionar na MQL4.
Mas este guião também pode ser executado em MQL5
Com exactidão=Verdade e tempo futuro deverá regressar -1
O meu guião também encontrou um estranho erro:
Este erro é confirmado por esta verificação:
Por isso, afinal tinha razão sobre a existência de situações anormais no vosso algoritmo.É bom que tenha finalmente encontrado o erro
Irei verificar, obrigado.
Boa noite a todos. Talvez esteja a interpretar mal alguma coisa, mas mesmo assim - não é bem claro o que está errado com a função padrão, que já foi sugerida no início do Bars(). Tenho estado sempre a usá-lo e não tem causado quaisquer problemas. A única coisa é que pode encontrar "array fora do intervalo" ou valor negativo ao utilizar o TimeCurrent(), mas depois precisa de fazer uma verificação para o verificar. Exemplos:
Boa noite a todos. Talvez esteja a interpretar mal algo, mas mesmo assim - não é bem claro o que está errado com a função padrão, que já foi sugerida no início do Bars(). Tenho estado sempre a usá-lo e não tem causado quaisquer problemas. A única coisa é que pode encontrar "array fora do intervalo" ou valor negativo ao utilizar o TimeCurrent(), mas depois precisa de fazer uma verificação para o verificar. Exemplos:
A julgar pelo número 32000000000, esta é também a minha criação. UINT_MAX é simplesmente mais curto e com um aspecto mais sólido. ))
A questão é que esta variante é mais correcta, como se veio a verificar:
em vez de
não há quase nenhuma diferença externa. Mas a variante superior repete com muita precisão a função iBarShift padrão da MQL4
A julgar pelo número 32000000000, esta é também a minha criação. UINT_MAX parece simplesmente mais curto e mais sólido. ))
A questão é que esta variante é mais correcta, como se veio a verificar:
em vez de
não há quase nenhuma diferença externa. Mas a variante superior repete com muita precisão a função iBarShift padrão da MQL4.
Então qual é a mais fácil e a mais correcta?
Então qual é a coisa mais fácil e a mais correcta a fazer?
Até agora esta variante, mas agora quero complementá-la para contornar o bug do congelamento da função de Barras, sobre o qual já comuniquei ao Service Desk.
A essência deste bug é que se na função Bars tantoo tempo_de_início como otempo_de_paragem estão dentro de uma barra ou estão no futuro (à direita da barra zero), então esta função fica suspensa por mais de 10 segundos.
Talvez eu faça uma versão adequada mais rápida mas mais pesada mais tarde.
Decidi seguir um caminho diferente.
Não vou refazer o iBarShift, mas vou refazer a funcionalidade das Barras com falhas.
E a nova funcionalidade iBars não só contornará o bug dos soluços, como também será mais rápida do que as Barras originais.
Outros poderão utilizar esta funcionalidade e os algoritmos já existentes funcionarão mais rapidamente.
Só preciso de tempo. Só o poderei fazer um dia mais tarde.
Decidi ir por um caminho diferente.
Não vou refazer o iBarShift, mas vou refazer a funcionalidade das Barras com falhas.
E a nova funcionalidade iBars não só contornará o bug dos soluços, como também será mais rápida do que as Barras originais.
Outros poderão utilizar esta funcionalidade e os algoritmos já existentes funcionarão mais rapidamente.
Só preciso de tempo. Só o poderá fazer daqui a um dia, na melhor das hipóteses.
Muito bem! Ansioso por isso!
De toda a análise que fiz, podemos concluir que este análogo completo do iBarShift:
é de longe o mais correcto, e ao mesmo tempo o mais rápido e com o algoritmo mais simples e mais curto.
É agradável, mas algo me confunde...
terá de o testar )
A função iBars é bastante pesada, mas continuo a recomendar a sua utilização em vez das Barras normais, até que o MQ corrija o bug de pendurar nela.
O iBar fica pendurado quando logicamente deve retornar 0. Como regra, devolve-o por mais de 10 segundos. Não existe tal insecto na MQL4.
Na maioria das tarefas, iBars funcionará mais rapidamente do que as Barras normais, uma vez que não só evitará o bug, como tentará não utilizar as funções Bars e SeriesInfoInteger sempre que possível, devido ao algoritmo de guardar valores anteriores.
Tenho testado esta função em todo o lado. Parece ser uma cópia integral de Bars.
Talvez possa ser feito de uma forma mais elegante. Se tiveres um desejo, és bem-vindo. Se encontrar erros, nós iremos corrigi-los.
Por isso...
Depois, a função analógica completa do iBarsShift terá a seguinte forma:
E variante sem último parâmetro, que é utilizada na grande maioria dos casos terá esta forma:
Indicador que mostra o desempenho da função iBars em comparação com as barras integradas e a função iBarShift de @Alain Verleyen
Tempo de execução da função em microssegundos.