Analógico para iBarShift - página 13

 
Nikolai Semko:

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.


Este não é o lugar para ir - ir para a kodobase. Tanto iBars() como iBarShift()

 
Nikolai Semko:

A funcionalidade iBars, embora bastante complicada, recomendo-a em vez das Barras normais até que o MQ corrija o bug de pendurar nela.

Ainda é possível acelerá-lo fazendo o seguinte.

start_time -= start_time % PeriodSeconds(timeframe);
TimeCur -= TimeCur % PeriodSeconds(timeframe);

O iBar fica pendurado quando logicamente deve retornar 0. Como regra, devolve-o por mais de 10 segundos. Este erro não existe na MQL4.

Esta chamada

SeriesInfoInteger(symbol_name,timeframe,SERIES_LASTBAR_DATE)

Funciona incorrectamente - causa um carregamento de história quando não deveria existir. Daí os desfasamentos (ver aspecto dos ficheiros hcc).

 
Nikolai Semko:

Um 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.

Mais uma vez, o desempenho deve ser medido onde é necessário - Optimizador.

 
Artyom Trishkin:

Não aqui - na kodobase. Tanto iBars() como iBarShift()

Sim, tenciono fazê-lo. Vamos testá-lo por agora.

 
fxsaber:

Pode também acelerar o processo fazendo o seguinte

O Start_time já está aí implementado desde o início, mas com oTimeCur, é possível acelerá-lo um pouco. Será suficiente. Obrigado.

A propósito, só é bom de M1 a D1. W1 tem de ser movido em três dias porque 01.01.1970 é quinta-feira. E com MN1 tem de jogar com diamantes, porque um mês pode ser 28,29,30,31 dias.

Esta chamada

Esta chamada não funciona correctamente - faz com que a história seja trocada quando não deveria ser. Daí os desfasamentos (pode-se ver o aparecimento de ficheiros hcc).

Estranho, não tenho visto tal comportamento.

fxsaber:

Mais uma vez, o desempenho deve ser medido onde é necessário - Optimizer.

O que quer dizer com optimizador?

 
Nikolai Semko:

Comstart_time já está implementado desde o início

Implementado com um erro. Por exemplo, M1 starttime === D'12:00:05'. O tempo de paragem também precisa de ser feito.

O que quer dizer com optimizador?

Modo de optimização no testador.

 
fxsaber:

Implementado com um erro. Por exemplo, M1 starttime === D'12:00:05'. O tempo de paragem também precisa de ser feito.

Explicar o que é o erro? E porquê apenas a hora e onde está a data?

As barras e iBars dão 0 para este formato.

 
Nikolai Semko:

Explicar o que é o erro? E porquê apenas a hora e onde está a data?

Eu era demasiado preguiçoso para escrever a data.

t=start_time-(start_time-1)%PerSec;

Substituir o start_time por um número não zero de segundos num minuto nesta linha.

 
fxsaber:

Eu era demasiado preguiçoso para escrever a data.

Nesta linha, substitua o start_time com um número de segundos não nulo num minuto.

Está tudo bem. Não se trata de um erro. Deveria ser.

Tente executar o código desta forma:

   Print(Bars(_Symbol,PERIOD_M1,D'2018.04.04 18:00:00',UINT_MAX));
   Print(Bars(_Symbol,PERIOD_M1,D'2018.04.04 18:00:01',UINT_MAX)); //результат на единицу меньше
 
Nikolai Semko:

Está tudo bem. Não se trata de um erro. Deveria ser.

Tente executar um código como este:

Então não percebo porque é que o Bars pensa que 18:00:01 pertence à M1-bar 18:01 e não às 18:00.


A propósito, a TimeCurrent deve ser substituída por SYMBOL_TIME.

Razão: