Bibliotecas: iBarShift - página 2

 
RaptorUK:
Você pode explicar como sua função funciona em relação ao parâmetro exato? o que quero dizer é o que é retornado? a documentação em inglês para iBarShift() está incorreta...
Quando você disse que a documentação do mql4 está incorreta, você está se referindo a?

Se a barra com o tempo de abertura especificado estiver faltando, a função retornará -1 ou o deslocamento de barra mais próximo, dependendo do exato.

Portanto, minha função retorna exatamente o mesmo que a versão mql4. Se exact for falso, ela retornará o deslocamento da barra que contém o valor de tempo e não necessariamente o deslocamento da barra mais próxima.
 
MaxTrader:

Hi,

o fato de funcionar bem com o 842 não ajudará, pois todos são obrigados a atualizar para a versão mais recente, ou você tem um método para evitar as atualizações em tempo real?

Parabéns pela rotina atualizada

Obrigado

Ontem fiz um teste com a compilação 842 em um corretor MT5. Ainda não há uma atualização para o build 858/868.

Se estiver usando o servidor de demonstração da Metaquotes, a atualização será imediata, mas não com corretoras "normais", pelo menos para algumas delas.

 
angevoyageur:

Ontem, fiz um teste com a compilação 842 em uma corretora MT5. Ainda não há uma atualização para o build 858/868.

Se você estiver usando o servidor de demonstração da Metaquotes, a atualização será imediata, mas não com corretoras "normais", pelo menos para algumas delas.

ah! ok, entendo que as corretoras controlam a atualização para seus usuários quando estiverem prontas.

Obrigado

 
angevoyageur:
Quando você disse que a documentação do mql4 está incorreta, você está se referindo a ?

"Se a barra com o tempo de abertura especificado estiver faltando, a função retornará -1 ou o deslocamento de barra mais próximo, dependendo do exact."

Portanto, minha função retorna exatamente o mesmo que a versão mql4. Se exact for falso, ela retornará o deslocamento da barra que contém o valor de tempo e não necessariamente o deslocamento da barra mais próxima.

Sim, o russo traduzido pelo Google conta uma história diferente...

Barra de pesquisa na hora. A função retorna o deslocamento da barra que contém a hora especificada. Se não houver uma barra de tempo especificada ("buraco" na história), a função retornará, dependendo do parâmetro Exact , -1 ou o deslocamento da barra mais próxima.

. . . não se trata do tempo aberto, mas do tempo que está dentro da vida útil de uma barra...

 
RaptorUK:

Sim, o russo traduzido pelo Google conta uma história diferente....

. . . não é sobre o tempo aberto, mas sobre o tempo dentro da vida de um bar...

Sim, portanto, minha versão funciona como a documentação em russo. Você relatou esse erro de tradução ao Service Desk?
 
angevoyageur:
Sim, então minha versão funciona como a documentação russa. Você relatou esse erro de tradução ao Service Desk?
Não.
 
RaptorUK:
Não.
Feito.
 
angevoyageur:
Feito.
Obrigado, senhor
 
angevoyageur:

De que retórica você está falando?

Não se preocupe, eu verifiquei. Não é o meu código que fica vagando pelo terminal, é um novo bug do MT5/mql5 (build 858? - 868).

Todas as versões, inclusive a sua, apresentam erros quando testadas com o DateTime não correspondendo ao horário de abertura da barra.

Por favor, escreva em inglês. O tradutor automático não é perfeito.


Aqui está o código e os resultados do MT4:

#property  show_inputs

extern datetime searchDate  = D'2013.10.25 21:15:00';
extern bool     exacts      = false;

//+------------------------------------------------------------------+
//| função de início do programa de script|
//+------------------------------------------------------------------+
int start()
{
   int shift=iBarShift(Symbol(),PERIOD_M15,searchDate,exacts);
   Print("iBarShift for ",TimeToStr(searchDate)," is ",shift);

   return(0);
  }
//+------------------------------------------------------------------+

22:52:16 sBarShift EURUSD,M15 inputs: searchDate='2013.10.25 21:15'; exacts=false;

22:52:16 sBarShift EURUSD,M15: iBarShift para 2013.10.25 21:15 é 6


22:52:29 sBarShift EURUSD,M15 inputs: searchDate='2013.10.25 21:17'; exacts=false;

22:52:29 sBarShift EURUSD,M15: iBarShift para 2013.10.25 21:17 é 6


22:52:38 sBarShift EURUSD,M15 inputs: searchDate='2013.10.25 21:14'; exacts=false;

22:52:38 sBarShift EURUSD,M15: iBarShift para 2013.10.25 21:14 é 7


22:53:32 sBarShift EURUSD,M15 inputs: searchDate='2013.10.25 21:15'; exacts=true;

22:53:32 sBarShift EURUSD,M15: iBarShift para 2013.10.25 21:15 é 6

22:52:52 sBarShift EURUSD,M15 inputs: searchDate='2013.10.25 21:17'; exacts=true;

22:52:52 sBarShift EURUSD,M15: iBarShift para 2013.10.25 21:17 é 6


22:53:17 sBarShift EURUSD,M15 inputs: searchDate='2013.10.25 21:14'; exacts=true;

22:53:17 sBarShift EURUSD,M15: iBarShift para 2013.10.25 21:14 é 7

Aqui estão os resultados do MT5:

searchDate='2013.10.25 21:15'; exacts=false;

2013.10.27 22:58:08 TestBarShift (EURUSD,M15) iBarShift (komposter) for 2013.10.25 21:15 is 6 in 0 milliseconds.

searchDate='2013.10.25 21:17'; exacts=false;

2013.10.27 22:58:20 TestBarShift (EURUSD,M15) iBarShift (komposter) for 2013.10.25 21:17 is 5 in 0 milliseconds.

searchDate='2013.10.25 21:14'; exacts=false;

2013.10.27 22:58:29 TestBarShift (EURUSD,M15) iBarShift (komposter) for 2013.10.25 21:14 is 6 in 0 milliseconds.


searchDate='2013.10.25 21:15'; exacts=true;

2013.10.27 22:58:40 TestBarShift (EURUSD,M15) iBarShift (komposter) for 2013.10.25 21:15 is 6 in 0 milliseconds.

searchDate='2013.10.25 21:17'; exacts=true;

2013.10.27 22:58:49 TestBarShift (EURUSD,M15) iBarShift (komposter) for 2013.10.25 21:17 is -1 in 0 milliseconds.

searchDate='2013.10.25 21:14'; exacts=true;

2013.10.27 22:58:58 TestBarShift (EURUSD,M15) iBarShift (komposter) para 2013.10.25 21:14 é -1 em 0 milissegundos.


Estou vendo a diferença nos resultados e vou corrigir meu código em breve.

Quanto ao seu código, não posso testá-lo porque ele não funciona na última versão do MT5.

 
komposter:

Por favor, escreva em inglês. O tradutor automático não é perfeito.


Aqui estão o código e os resultados do MT4:

Aqui estão os resultados do MT5:


Estou vendo a diferença nos resultados e corrigirei meu código em breve.

Quanto ao seu código, não posso testá-lo porque ele não funciona na última versão do MT5.

Obrigado, mas preciso corrigir meu código também quando exact for true, pois não entendi direito esse parâmetro. A documentação em inglês do iBarShift está errada.

O bug do mql5 está na função Bars(), eu o relatei ao Service Desk.