[Erro em obter o tempo do TF sênior no temporizador! - página 11

 
Alexey Kozitsyn:

Qual a hora de encerramento? Preciso de um horário de abertura...

Você tem a última verificação de tempo aberto em todos os lugares, isso é o que você recebe. Imediatamente após a abertura do terminal, a barra ainda não foi formada no OnInit.

 
Konstantin Nikitin:

Você tem o último bar aberto em todos os lugares, é o que você recebe. Imediatamente após a abertura do terminal, a barra ainda não foi formada no OnInit.

...Sem comentários, já terminei de falar com você.

 
Alexey Kozitsyn:

Pergunta! Por que ele emite os dados anteriores após a conexão com o servidor já ter sido estabelecida, houve uma pré-venda de dados no OnInit(), uma verificação de carga de dados em cada uma das funções CheckCurren...(). Quantos controlos sangrentos temos que fazer para que funcione corretamente...

Há muitos símbolos e períodos, se o terminal está desconectado há muito tempo, ele precisa carregar muitos dados.
Para não esperar por este carregamento, que depende da velocidade da internet e do servidor do corretor, o terminal lhe fornece os dados anteriores de uma só vez.
As que já estão disponíveis.

Portanto, não é uma "solução de muleta", é um controle necessário para carregar a última vela.

ps. como você verifica ainda mais o aparecimento de um novo bar?

 
Taras Slobodyanik:

Há muitos símbolos e períodos, se o terminal estiver desligado há muito tempo, muitos dados precisam ser baixados.
Para evitar esperar por este download, que depende da velocidade da internet e do servidor do corretor, o terminal lhe fornece imediatamente os dados anteriores.
As que já estão disponíveis.

Portanto, não é uma "solução de muleta", mas uma verificação necessária para carregar a última vela.

Você sente o problema lógico? Se o histórico ainda não estiver carregado, e me deixar emitir "algo" e esperar até que os dados sejam atualizados. E não importa se os dados estão corretos ou não...

Além disso, mesmo que o terminal esteja desligado por 5-10 minutos - o mesmo absurdo. Mesmo que haja apenas 3 caracteres na janela de dados - o mesmo disparate. Todas as verificações foram seguidas - o mesmo absurdo.

Você entende que o conselho do desenvolvedor sobre o carregamento correto NÃO funciona. Isso não significa nada para você?

 
A atualização 1126 chegou agora no MQDemo... Checaremos mais sobre esta versão na segunda-feira.
 
Alexey Kozitsyn:

Você sente um problema de lógica? Se o histórico ainda não tiver sido carregado, e deixe-me dar "algo" e esperar até que os dados sejam atualizados. E não importa se os dados estão corretos ou não...

Esta lógica está apenas no primeiro símbolo aberto.
O terminal não sabe se há mais candelabros, ele dá o que tem.

Em seguida, aparece a última vela.

 
Taras Slobodyanik:

Esta lógica só funciona na primeira vez em que se abre um símbolo.
O terminal não sabe se haverá mais velas, ele lhe dá o que tem.

Em seguida, aparece a última vela.

Atualizei meu posto.

Diga-me, você quer passar horas de trabalho toda vez para descobrir tais nuances, ou você quer ler a documentação uma vez e entender tudo? Você quer sofrer com "pré-carga" ou apenas receber um erro quando os dados ainda não foram atualizados?

 
Taras Slobodyanik:

A propósito, que versão do terminal você tem?

 
Taras Slobodyanik:

ps. como verificar ainda mais o aspecto de um novo bar?

//+------------------------------------------------------------------+
//| Проверяем образование нового часа                                |
//+------------------------------------------------------------------+
bool CheckNewHour()     
        {
         //--- Сбрасываем код последней ошибки
         ResetLastError();
         //--- Получаем время открытия текущего часа
         const datetime hOpenTime = iTime( _Symbol, PERIOD_H1, 0 );
         //--- Проверяем корректность полученного времени
         if( hOpenTime == 0 || GetLastError() != 0 )            // Если возникла ошибка или время не получено
                 return( false );                                                                               // Возвращаем ложь
         //--- Сравниваем полученное время с сохраненным
         if( hOpenTime == _hourOpenTime )                                       // Если время совпадает
                 return( false );                                                                               // Возвращаем ложь
         //--- Запоминаем время нового часа
         _hourOpenTime = hOpenTime;
         //--- Возвращаем истину
         return( true );
        }
 

Não vejo nenhum problema, há uma vela nova - recalcule a última vela do indicador/conselheiro.
Há mais de uma vela nova - faça um recálculo completo do indicador/conselheiro.
O mesmo acontece - aparece uma nova vela.

Outra coisa - os períodos necessários devem ser constantemente "puxados" para atualizá-los.
Se não há ninguém trabalhando no período do símbolo (as citações não são verificadas, o indicador não está funcionando), então ele "dorme" porque é considerado desnecessário.