Erros, bugs, perguntas - página 2934

 
Vitaly Muzichenko:

Portanto, faça uma saída se os dados não forem copiados

No próximo tick tudo será carregado e o código funcionará correctamente

Não, no meu caso, o código funcionará terrivelmente incorrectamente, os objectos escorregarão das suas posições no indicador. Tratarei do carregamento da história...

 
Евгений Баженов:

Olá, estou a testar o meu robô, depois de terminar os testes vi muitos campos com requotes no Registo, o que significam estas pilhas de mensagens e o que posso acrescentar ao código para evitar que elas apareçam? Obrigado, Feliz Ano Novo!

Assumo que a sessão de negociação no símbolo é menor do que a sessão de cotação. Depois as citações vão no Testador, mas a sua comercialização é proibida durante tais períodos.

 
x572intraday:

A idiotice é quehttps://www.mql5.com/ru/docs/series/timeseries_access menciona Sleep() no artigo sobre o histórico de carregamento no código, mas a ajuda para Sleep() diz: "A função Sleep() não pode ser chamada a partir de indicadores personalizados, porque os indicadores são executados no fio da interface e não deve abrandá-la". Acontece que preciso de carregar o histórico num indicador.

Idiotice de quem?

Ao solicitar dados do indicador (não do Consultor Especialista), os mesmos dados são recebidos de imediato e sem qualquer atraso. Vitaly disse-o correctamente.

Solicitar o período-símbolo requerido no OnInit para iniciar a criação do histórico requerido

 
Slava:

Idiotice de quem?

Ao solicitar dados de um indicador (e não de um Consultor Especialista), estes dados são fornecidos tal como estão, sem demora. Vitaly disse correctamente.

Solicitar o período-símbolo requerido no OnInit para iniciar a criação do histórico requerido

1. Se bem entendi, sugere-se que o pedido seja feito uma vez no início do indicador . Aquihttps://www.mql5.com/ru/docs/runtime/event_fire o Init está rodeado de muitas condições:"Este evento também é gerado após uma mudança de símbolo e/ou período gráfico, após recompilar o programa no MetaEditor, após uma mudança dos parâmetros de entrada de um EA ou indicador personalizado. O Conselheiro Especialista também é inicializado após a conta ter sido alterada."Mas o utilizador não tem de gerar estes eventos, pode sentar-se confortavelmente na única TF actual e observar o indicador, pelo que a reinicialização e recarga da história mais do que uma vez não acontecerá. No entanto, a falta de história não ocorre necessariamente no início do trabalho, o erro aparece repentina e repetidamente em momentos aleatórios durante o trabalho (além disso, durante o trabalho a longo prazo do indicador pode não aparecer de todo; muitas vezes não há erro no início do trabalho). Então a parte que falta da história deve ser descarregada não só no OnInit, mas também noOnCalculate, a fim de evitar o erro recorrente?

Ou por"iniciar a construção da história certa" quis dizer que é suficiente fazer isto uma vez noOnInit e depois não vai precisar de o fazer novamente? Mas, por um lado, ocorre um erro mesmo quando todo o historial do instrumento está carregado e todos os prazos estão afinados, porque o indicador é multitempo e ryllime; por outro lado, sob as mesmas condições, pode não ocorrer um erro.

2. O que significa "falta de parte da história"? Quando executa o terminal pela primeira vez após a instalação, descarrega o histórico em falta - literalmente o da esquerda, mais cedo no tempo. Mas copia o CopyTime(_Symbol,tf,0,1,Arr), ou seja, copia a última barra do lado direito, não a barra da história. Poderá o novo bar relacionar-se de alguma forma com a história e a sua falta?

3. Admito que as minhas vagas explicações podem não ser suficientes para compreender o problema; não quero ser enviado parahttps://www.mql5.com/ru/forum/133408, por isso estou pronto a partilhar o código com comentários com os programadores e outros que gostariam de o depurar em conjunto, porque quero disponibilizar o indicador gratuitamente através do CodeBase. A propósito, se for esse o caso, é aceitável libertar código livre não libertado?

Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
События клиентского терминала - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

1. Se bem entendi, sugere que se faça um pedido uma vez no início do trabalho do indicador, no OnInit. Aqui https://www.mql5.com/ru/docs/runtime/event_fire Noit é rodeado por um monte de condições de acompanhamento:"Este evento também é gerado após uma mudança de símbolo e/ou período gráfico, após recompilar o programa no MetaEditor, após uma mudança de parâmetros de entrada de um Expert Advisor ou de um indicador personalizado. O Conselheiro Especialista também é inicializado após a conta ter sido alterada."Mas o utilizador não tem de gerar estes eventos, pode sentar-se confortavelmente na única TF actual e observar o indicador, pelo que a reinicialização e recarga da história mais do que uma vez não acontecerá. No entanto, a falta de história não ocorre necessariamente no início do trabalho, o erro aparece repentina e repetidamente em momentos aleatórios durante o trabalho (além disso, durante o trabalho a longo prazo do indicador pode não aparecer de todo; muitas vezes não há erro no início do trabalho). Então a parte que falta da história deve ser descarregada não só no OnInit, mas também noOnCalculate, a fim de evitar o erro recorrente?

Ou por"iniciar a construção da história certa" quis dizer que é suficiente fazer isto uma vez noOnInit e depois não vai precisar de o fazer novamente? Mas, por um lado, ocorre um erro mesmo quando todo o histórico do símbolo é carregado e todos os prazos são completados, porque o indicador é multitempo e ryllime; por outro lado, sob as mesmas condições, pode não ocorrer um erro.

2. O que significa a própria noção de "falta de um pedaço de história"? Quando executa o terminal pela primeira vez após a instalação, descarrega o histórico em falta - literalmente o da esquerda, mais cedo no tempo. Mas copia o CopyTime(_Symbol,tf,0,1,Arr), ou seja, copia a última barra à direita, não a barra da história. Poderá o novo bar, de alguma forma, relacionar-se com a história e a sua falta?
Nos indicadores, ninguém lhe garantirá a saída dos dados solicitados se estes não estiverem prontos.

Os guiões e os Consultores Especialistas têm garantia suficiente.

Portanto, nos indicadores, aguardar o ciclo de disponibilidade dos dados.

Para aumentar a probabilidade de obter os dados certos, fazer pedidos de dados falsos no indicador. Isto provocará o carregamento de dados de fundo.
 
Renat Fatkhullin:
Nos indicadores, ninguém garante que os dados solicitados serão emitidos se não estiverem prontos.

Parece-me, da minha torre sineira baixa, que os dados solicitados estão prontos, porque é o último bar disponível no momento. Como pode não estar pronto? Se aparecer na tabela, está pronto.

 
Renat Fatkhullin:
Nos indicadores, ninguém lhe garantirá a divulgação dos dados solicitados se estes não estiverem prontos.

Nos guiões e nos peritos há garantia suficiente.

Assim, nos indicadores, aguardar ciclo após ciclo de disponibilidade de dados.

Fixe... Mesmo no novo ano, no posto. Feliz Ano Novo. !!!!!!!

 
x572intraday:

Parece-me, da minha torre sineira baixa, que os dados solicitados estão prontos, porque é o último bar disponível no momento. Como pode não estar pronto? Se aparecer na tabela, está pronto.

Leia atentamente a minha resposta.
 
Renat Fatkhullin:
Leia atentamente a minha resposta.

Precisamos de definir a noção de disponibilidade de dados. Se eu vir um bar no terminal, já está disponível ou existem outras opções? E sim, Renat, e o ponto 3 do meu post anterior?

 
x572intraday:

Precisamos de definir a noção de disponibilidade de dados. Se eu vir um bar no terminal, já está disponível ou existem outras opções? E sim, Renat, e o ponto 3 do meu post anterior?

Se obtiver uma resposta de função, então os dados não estão disponíveis.

Se tiver provas em contrário, deve fornecê-las de uma forma totalmente consistente e tecnicamente reprodutível.