Na primeira maneira de solicitar uma nova linha de coluna, não entendo como o número de novas colunas pode ser atribuído diretamente a 1;
//--- Verificar se há novas linhas de coluna.if(m_lastbar_time<newbar_time)
{
m_new_bars=1; // Número de linhas da nova coluna
m_lastbar_time=newbar_time; // Lembrar o tempo da última barrareturn(true);
}
//--- //--- Verificar se há novas linhas de coluna.if(m_lastbar_time<newbar_time)
{
m_new_bars=1; // Número de linhas da nova coluna
m_lastbar_time=newbar_time; // Lembrar o tempo da última barrareturn(true);
}
//---
Pelas regras de modelagem de objetos é um nome equivocado dar o nome de CIsNewBar.
Vejamos, se carro é uma classe posso criar/ter um objeto carro. Porém, se minha classe é "ÉUmCarroNovo", nós podemos ter o possuir um "ÉUmCarroNovo".
O mais adequado seria o autor ter dado o nome de CNewBarChecker. Alguém poderia inventar um Verificador de Carro Novo e criá-lo (nossa classe seria CVerificadorDeCarroNovo.
Há muitas variações de código no artigo, mas, no final, ainda não está claro qual função é mais correta para usar no MT4 para aumentar, pelo menos um pouco, a correspondência do que o testador desenha com a negociação. Dê-me uma dica!
Pavel Komarovsky: Há muitas variações de código no artigo, mas, no final, ainda não está claro qual função é mais correta para usar no MT4 para aumentar, pelo menos um pouco, a correspondência do que o testador desenha com a negociação. Dê-me uma dica!
datetime counted_bar = 0;
intOnInit()
{
counted_bar = 0; // se você quiser que a última barra seja analisada na reinicialização
...
voidOnTick()
{
// Se houver uma nova barraif ( iTime( _Symbol, _Period, 0 ) > counted_bar )
{
counted_bar = iTime( _Symbol, _Period, 0 );
// Analisar indicadores
...
}
Por que será que esse exemplo não consegue obter os dados da série temporal? Copiar... sempre -1 e Bars() sempre 0. Ou seja, não há acesso aos dados da classe
Esse artigo é tão bom que é usado até mesmo em aulas de programação MQL5, incluindo comentários, colaborações e correções de bugs. Parabéns a todos vocês.
Bom artigo, obrigado por compartilhar! Tudo isso foi muito útil!
De qualquer forma, usei sua função isNewBar e ela exibe a seguinte mensagem ao compilar:"possível perda de dados devido à conversão de tipos".
Então, alterei os tipos de variável de datetime para long dessa forma:
Agora ela compila sem nenhum aviso e parece funcionar bem. Obrigado!
Provavelmente é mais claro alterar desta forma:
Na primeira maneira de solicitar uma nova linha de coluna, não entendo como o número de novas colunas pode ser atribuído diretamente a 1;
Pelas regras de modelagem de objetos é um nome equivocado dar o nome de CIsNewBar.
Vejamos, se carro é uma classe posso criar/ter um objeto carro. Porém, se minha classe é "ÉUmCarroNovo", nós podemos ter o possuir um "ÉUmCarroNovo".
O mais adequado seria o autor ter dado o nome de CNewBarChecker. Alguém poderia inventar um Verificador de Carro Novo e criá-lo (nossa classe seria CVerificadorDeCarroNovo.
Há muitas variações de código no artigo, mas, no final, ainda não está claro qual função é mais correta para usar no MT4 para aumentar, pelo menos um pouco, a correspondência do que o testador desenha com a negociação. Dê-me uma dica!
Andrey, obrigado. Diga-me por que o iTime é usado agora. Antes, lembro que em todas as funções e exemplos, a maioria deles era baseada no iBars.
O iTime funciona com mais precisão?
Andrey, obrigado. Diga-me por que o iTime é usado agora. Antes, lembro que em todas as funções e exemplos, a maioria deles era baseada no iBars.
O iTime funciona com mais precisão?
Esse artigo é tão bom que é usado até mesmo em aulas de programação MQL5, incluindo comentários, colaborações e correções de bugs. Parabéns a todos vocês.