Discussão do artigo "O Histograma de preço (Perfil de mercado) e sua implementação no MQL5" - página 2

 

2010.03.09 21:12:54 PriceHistogram (#DD,MN1) Não há histórico acessível PERIOD_D1

 
gen5s:

Conselheiro maravilhoso! Foi...

O problema apareceu desde a versão 251. Agora, nas versões mais recentes, ele não é refletido, embora o registro diga que está carregado.

Talvez seja necessário alterar alguma coisa, mover para outro diretório?

Obrigado por sua atenção, eu realmente cometi um erro. Corrigido. Aguarde uma atualização.

PS

Houve um erro na pesquisa de matrizes de max/min. Depois de corrigi-lo, apareceu um erro no código do EA

Nas linhas 188, 189 e 205 do ClassPriceHistogram.mqh, é necessário corrigir WHOLE_ARRAY para 0.

 
bcsunwww:

2010.03.09 21:12:54 PriceHistogram (#DD,MN1) Não há histórico acessível PERIOD_D1

Obrigado por sua mensagem. Corrigido, aguarde as atualizações.
 
mql5:

Obrigado por apontar isso, eu realmente cometi um erro. Ele foi corrigido. Aguarde a atualização.

PS

Havia um erro na busca de matrizes de max/min. Depois de corrigi-lo, apareceu um erro no código do Expert Advisor.

Nas linhas 188, 189 e 205 do ClassPriceHistogram.mqh, é necessário corrigir WHOLE_ARRAY para 0.

Obrigado por sugerir (WHOLE_ARRAY), pois eu já estava cansado de procurar o erro.
 

O PriceHistogram.mq5 não funciona no gráfico. As mensagens de erro do Meta editor estão no arquivo anexo.

Arquivos anexados:
 

Substituiu o arquivo incluído ClassPriceHistogramA.mqh:

  • reduziu o número de tentativas de copiar os dados de preço AMOUNT_OF_ATTEMPTS=2;
  • adicionada a função PrintErrorOnCopyFunction() para gerar mensagens quando uma tentativa de executar a função CopyXXX() falhar.
    //+------------------------------------------------------------------+
    //| Exibe uma mensagem quando a cópia falha
    //+------------------------------------------------------------------+
    void PrintErrorOnCopyFunction(string func_name,string symbol,ENUM_TIMEFRAMES tf,int err_code)
      {
       Print(func_name," Falha ao copiar os dados de preço, erro",err_code);
       Print("O primeiro encontro por símbolo-período"+
             symbol+" "+TimeframeToString(tf)+
             " por enquanto = "+
             (datetime)SeriesInfoInteger(symbol,tf,SERIES_FIRSTDATE));
       Print("O primeiro encontro da história por símbolo no servidor =",
             (datetime)SeriesInfoInteger(symbol,tf,SERIES_SERVER_FIRSTDATE));
       Print("Dados do símbolo sincronizados =",
             (bool)SeriesInfoInteger(symbol,tf,SERIES_SYNCRONIZED));
       int bars=Bars(symbol,tf);
       int max_bars_in_chart=TerminalInfoInteger(TERMINAL_MAXBARS);
       Print("Número de barras no histórico por período de símbolo correspondente = ",bars,
             "   max_bars_in_chart =",max_bars_in_chart);
       datetime firstbar[];
       int copied=CopyTime(symbol,tf,bars-1,1,firstbar);
       if(copied<0)
         {
          Print("O primeiro bar disponível tem um horário de funcionamento.",firstbar[0]);
          Comment("Talvez você precise aumentar o valor de 'Número máximo de barras no gráfico'");
         }
       else Print("Não foi possível obter o horário de abertura do bar mais antigo disponível");
       ResetLastError();
      }
Seria mais correto verificar o histórico disponível antes das operações CopyXXX(), analisar o número de barras no gráfico usando a função
TerminalInfoInteger(TERMINAL_MAXBARS);
e fazer uma tentativa de trocar os dados (se fizer sentido), como no exemplo Organização de acesso aos dados
 

Agora ele funciona perfeitamente. Faça o download dos arquivos atualizados.

A documentação completa dos códigos-fonte do artigo está disponível agora: O histograma de preços (Market Profile) e sua implementação em MQL5

A documentação foi criada pelo Doxygen.

Veja os detalhes no artigo Auto-Generated Documentation for MQL5 Code (Documentação gerada automaticamente para o código MQL5).

The Price Histogram (Market Profile) and its implementation in MQL5
The Price Histogram (Market Profile) and its implementation in MQL5
  • 2010.01.28
  • Dmitry
  • www.mql5.com
The Market Profile was developed by trully brilliant thinker Peter Steidlmayer. He suggested to use the alternative representation of information about "horizontal" and "vertical" market movements that leads to completely different set of models. He assumed that there is an underlying pulse of the market or a fundamental pattern called the cycle of equilibrium and disequilibrium. In this article I will consider Price Histogram - a simplified model of Market Profile, and will describe its implementation in MQL5.
 

Tudo está funcionando agora. Faça o download dos arquivos atualizados.

Documentação adicionada aos códigos-fonte fornecidos no artigo: Market_Profile_Help.rar


A documentação foi criada com a ajuda do programa Doxygen.

Detalhes no artigo Criação automática de documentação para programas MQL5.

 
Automated-Trading писал(а) # :

Tudo está funcionando agora. Faça o download dos arquivos atualizados.

Ele não funciona, não consegue lidar com o tempo da primeira barra e emite um aviso ao compilar. "conversão implícita de 'número' para 'string' ClassPriceHistogram.mqh 404 10"

compilação 256 Anexei o registro.

 
Você poderia me dizer em quais diretórios colocar os arquivos? Desde já, obrigado!