Por favor, explique o que poderia estar errado com esta função. - página 7

 

Este link diz

Механизм обращения к серверу за данными не зависит от того, каким образом был инициирован запрос — пользователем при навигации по графику или программным способом на языке MQL5.


aparentemente se trata dos dados mais antigos, e os últimos, mais recentes devem ser obtidos simplesmente porque o gráfico do instrumento está aberto? Ou não?

Qual é a diferença na obtenção de dados por diferentes funções?

 
Slawa:
Você já leu na íntegra a documentação sobre organização de acesso aos dados?

Slava, você já examinou minha aplicação?

MQL5: erro #4806
Aberto, Iniciado em: 2016.02.15 11:22, #1409574

A manutenção da cache via contração do indicador não está funcionando.

Execute a EA anexa, depois de um tempo você recebe um erro nos registros.

 
Andrey Khatimlianskii:

Slava, você já examinou minha aplicação?

A manutenção da cache via contração do indicador não funciona.

Execute a EA anexa, obtenha um erro nos registros depois de algum tempo.

Sim, eu fiz. Mas eu não encontrei nenhuma EA lá.

Verifiquei com minha EA. Repito: a presença de qualquer manipulador de indicadores (no meu caso iMA) impede o descarregamento do cache histórico.

Vamos enviar sua EA aqui (e você pode fazê-lo na aplicação acima) - eu a executarei em diferentes terminais. Vamos ver

 
Alexey Viktorov:

Dimitri, isso não é estranho? Há um novo bar, mas ainda não o contamos.

Ouça, não é a causa de tal comportamento SeriesInfoInteger(_Symbol, PERIOD_D1, SERIES_LASTBAR_DATE); ? Apareceu uma nova barra, o código disponível é executado, mas o tempo ainda não é considerado????

Em termos de tempo de uso - correto. É aceito que o limite superior do intervalo de tempo especificado não se aplica. Mas, neste caso, é inconveniente - sim.

SobreSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE), não sei, não tinha usado e provavelmente não usarei, se precisar de tempo de barra, usarei CopyTime() ou CopyRates().

Os desenvolvedores devem fazer um análogo de iBarShift(), reescrever Barras() um pouco e isso funcionaria.

 
Slawa:

Sim, eu fiz. Mas eu não encontrei nenhum conselheiro lá.

Verifiquei com minha EA. Repito: a presença de qualquer manipulador de indicadores (no meu caso iMA) impede o descarregamento do cache histórico.

Dê seu EA aqui (ou você pode fazê-lo na aplicação acima) - eu o executarei em terminais diferentes. Vamos ver

O Conselheiro Especialista foi anexado no primeiro posto (zip, 58.91 KB). Você não tem arquivos armazenados em algum lugar?

Construiu a versão onde tudo começou e a anexou. Experimente. As condições de teste e o set-file também estão lá.

 
Dmitry Fedoseev:

Em termos de tempo de uso, correto. É aceito que o limite superior do tempo especificado não se aplica à faixa. Mas, neste caso, é inconveniente - sim.

Sobre aSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE); não sei, eu não tinha usado e provavelmente não usarei, se precisar de tempo de barra, usarei CopyTime() ou CopyRates().

Os desenvolvedores devem fazer um análogo de iBarShift(), reescrever Barras() um pouco e isso funcionaria.

Aceito em outras linguagens de programação?

Bem, atingir o limite superior da faixa é a metade do problema. O que você chama de "inconveniência", eu chamo de estupidez à qual você pode se acostumar e considerar o uso em seus programas.

Simplesmente encontrei um comportamento inadequado da função, e não há outro nome para ela, então tentei explicar isso aos desenvolvedores. Mas ao invés de tentar entender o que estava acontecendo ... é isso... silêncio. Ninguém precisa disso.

Eu também já desisti de usar esta função e a substituí por CopyRates() apenas por inércia continuou a explicar, provavelmente porque o baterista renomeou o tópico para que eu pedisse uma dica, e não relatasse um problema em mql5.

 
Andrey Khatimlianskii:

O assessor foi anexado no primeiro posto (zip, 58.91 KB). Você não tem os arquivos armazenados em algum lugar?

Ter montado a versão onde tudo começou e afixado. Experimente. As condições de teste e o arquivo de configuração também estão lá.

Tivemos muito trabalho ontem. Acontece que há uma fonte zipada do Consultor Especialista no primeiro posto. Isso é o que estou usando.
 
Alexey Viktorov:

Tendo simplesmente descoberto o comportamento inadequado da função, que é a única maneira de descrevê-la, tentei explicar isso aos desenvolvedores. Mas ao invés de tentar entender o que está acontecendo... é isso... silêncio. Ninguém precisa disso.


Onde você vê um comportamento inadequado da função? Você leu a documentação cuidadosamente?

SérieInfoInteger

Retorna informações sobre o estado dos dados históricos.

Retorna informações sobre o estado dos dados históricos. Não atualiza informações, não inicia paginação de dados. Apenas devolve o que está lá atualmente

 
Slawa:

Onde você vê um comportamento inadequado da função? Você leu a documentação cuidadosamente?

Retorna informações sobre o status dos dados históricos. Não atualiza as informações, não inicia a paginação de dados. Apenas devolve o que está lá atualmente

Se você não se importa, vá para https://www.mql5.com/ru/forum/89213/page6#comment_2605980, está tudo lá.

SERIES_LASTBAR_DATE Hora da última abertura do bar pelo símbolo-período. Mas quando uma nova barra aparece, mas a função ou ou não vê, como ela se chama? Culturalmente falando, é chamado de "funcionamento INSTÁVEL da função", ou simplesmente comportamento inadequado...

Em segundo lugar, você não deveria ter dito disparates nas primeiras respostas à minha solicitação ao SD.

 
Alexey Viktorov:

SERIES_LASTBAR_DATE Tempo de abertura da última barra por período de caracteres. Quando uma nova barra aparece mas a função a e não a , como ela se chama? Culturalmente falando, o "funcionamento INSTÁVEL da função", ou simplesmente seu comportamento inadequado...


Se os dados do histórico correspondente foram descarregados por timeout, o que a função SeriesInfoInteger deve retornar com a solicitação SERIES_LASTBAR_DATE?

E quem verificará o resultado do GetLastError()?

Seu pedido de serviço é chamado de "Uma condição estranha se (condição) não for cumprida". (C'um caraças! O SE NÃO ESTAVA FAZENDO!!!) E era você quem estava falando bobagens nesse pedido. Você tem tudo isso misturado ali. Leia novamente sua aplicação em um estado mais calmo, através dos olhos de uma pessoa de fora.

E não há necessidade de atacar - este é um fórum técnico, e os argumentos devem ser preparados de forma competente.