Não vejo o problema. Uma nova vela aparece - recalculamos a última vela no indicador/conselheiro. Há mais de uma vela nova - fazemos 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.
Estamos puxando, estamos puxando. Fazemos um pedido, recebemos um erro, saímos. Mas aqui, veja, outra "peculiaridade" vem à tona - o erro não é reinicializado após a reinicialização. Se isso acontecesse, não haveria problema. Mas a devolução de dados incorretos é o problema. E eu posso vê-lo muito claramente.
Todo o sistema de verificação de erros vai por água abaixo neste exemplo.
Como o terminal sabe que os últimos dados estão desatualizados? Porque a história está lá - ela está lá. O pedido é enviado para o corretor... o mais rápido possível.
Aparece uma nova barra - os dados são atualizados.
Como o terminal sabe que os últimos dados estão desatualizados? Afinal de contas, existe uma história - existe. O pedido ao corretor é enviado... Tão logo seja assim.
Aparece uma nova barra - os dados são atualizados.
A comunicação com o servidor é estabelecida. Ao solicitar dados da TF sênior, se os dados não estiverem prontos - erro ou retorno 0. Se os dados estiverem prontos - retornar SOMENTE dados reais. Isso é tudo. Se os dados não estiverem prontos por muito tempo - deixe-os retornar erro ou 0.
A propósito, você não respondeu à pergunta sobre a versão terminal.
O que a versão terminal tem a ver com isso? Novos dados, estão lá ou não estão. E nenhuma versão os salvará se eles não vierem do servidor. O indicador simplesmente começa antes que os novos dados cheguem. Alternativamente, passe os cheques para a OnCalculate, que é acionada quando um novo tick é recebido.
Alternativamente, mova os cheques para OnCalculate, que é acionado quando um novo tick é recebido.
foi sugerido várias vezes, assim como a administração
no indicadorOnCalculate() será iniciado no início do indicador, mas a segunda vez OnCalculate() será iniciada no recebimento do tick - aqui é necessário iniciar o temporizador e baixar novos dados OHLC
ele já foi oferecido várias vezes, assim como a administração
o indicador iniciará OnCalculate() no início do indicador, mas a segunda vez OnCalculate() será iniciada no recebimento do tick - aqui é necessário iniciar o temporizador e baixar novos dados OHLC
Dê uma olhada no meu último código publicado. Não se trata de timer, tudo já foi movido para OnCalculate(). Ainda não funciona quando o terminal inicia.
//--- Проверяем связь с серверомif(firstrun)
{
firstrun=false; // первый запуск индикатораreturn(0);
}
if(!IsConnected()) // Если не удалось установить связь с сервером
{
//--- Сбрасываем флаг соединения с сервером
_isConnected=false;
//--- Выходимreturn( 0 );
}
Eu também verificaria GetTickCount() para dar tempo para o terminal carregar, gerar gráficos e estabelecer comunicação com o servidor; você também precisa rastrear o reinício do terminal, eu não sei como rastreá-lo, mas você precisa dar tempo
Dê uma olhada no último código que publiquei. Não se trata mais do temporizador, tudo já foi movido para OnCalculate(). Ainda não funciona quando se inicia o terminal.
Não vejo o problema. Uma nova vela aparece - recalculamos a última vela no indicador/conselheiro.
Há mais de uma vela nova - fazemos 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.
Estamos puxando, estamos puxando. Fazemos um pedido, recebemos um erro, saímos. Mas aqui, veja, outra "peculiaridade" vem à tona - o erro não é reinicializado após a reinicialização. Se isso acontecesse, não haveria problema. Mas a devolução de dados incorretos é o problema. E eu posso vê-lo muito claramente.
Todo o sistema de verificação de erros vai por água abaixo neste exemplo.
Como o terminal sabe que os últimos dados estão desatualizados?
Porque a história está lá - ela está lá.
O pedido é enviado para o corretor... o mais rápido possível.
Aparece uma nova barra - os dados são atualizados.
Como o terminal sabe que os últimos dados estão desatualizados?
Afinal de contas, existe uma história - existe.
O pedido ao corretor é enviado... Tão logo seja assim.
Aparece uma nova barra - os dados são atualizados.
A comunicação com o servidor é estabelecida. Ao solicitar dados da TF sênior, se os dados não estiverem prontos - erro ou retorno 0. Se os dados estiverem prontos - retornar SOMENTE dados reais. Isso é tudo. Se os dados não estiverem prontos por muito tempo - deixe-os retornar erro ou 0.
A propósito, você não respondeu à sua pergunta sobre a versão terminal.
A propósito, você não respondeu à pergunta sobre a versão terminal.
O que a versão terminal tem a ver com isso? Novos dados, estão lá ou não estão. E nenhuma versão os salvará se eles não vierem do servidor.
O indicador simplesmente começa antes que os novos dados cheguem. Alternativamente, passe os cheques para a OnCalculate, que é acionada quando um novo tick é recebido.
Alternativamente, mova os cheques para OnCalculate, que é acionado quando um novo tick é recebido.
foi sugerido várias vezes, assim como a administração
no indicadorOnCalculate() será iniciado no início do indicador, mas a segunda vez OnCalculate() será iniciada no recebimento do tick - aqui é necessário iniciar o temporizador e baixar novos dados OHLC
ele já foi oferecido várias vezes, assim como a administração
o indicador iniciará OnCalculate() no início do indicador, mas a segunda vez OnCalculate() será iniciada no recebimento do tick - aqui é necessário iniciar o temporizador e baixar novos dados OHLC
Dê uma olhada no meu último código publicado. Não se trata de timer, tudo já foi movido para OnCalculate(). Ainda não funciona quando o terminal inicia.
Dê uma olhada no último código que publiquei. Não se trata mais do temporizador, tudo já foi movido para OnCalculate(). Ainda não funciona quando se inicia o terminal.
Pular o primeiro passe na partida
Pular o primeiro passe na partida
Leia o ponto 1.