Erros, bugs, perguntas - página 3153

 

Bug- Código Fantasma Indicador

Há um indicador, há um espert a trabalhar nele. O código do indicador é alterado. É recompilado e as mudanças de indicadores podem ser claramente vistas no gráfico. O Expert Advisor é executado no testador, mas parece que o código não foi alterado. O resultado é o mesmo.

Pode até apagar o ex5 do indicador. Pode continuar a executar o perito no testador (este ex5 eliminado está claramente marcado nele) como se nada tivesse acontecido. Onde obtém o ficheiro para execução, a partir de ether????

Se reiniciar o terminal e executar o testador depois disso, ele verá o novo código. (e atira um erro se faltar o ex5)


Tentei diferentes maneiras de o fazer ver o novo código - recoloquei o terminal (sem reiniciar) e recompilei o espert em si. Alteração dos parâmetros de peritos no testador. Nada ajuda, excepto reiniciar o terminal

 
Max B #:

Bug- Código Fantasma Indicador

Há um indicador, há um espert a trabalhar nele. O código do indicador é alterado. É recompilado e as mudanças de indicadores podem ser claramente vistas no gráfico. O Expert Advisor é executado no testador, mas parece que o código não foi alterado. O resultado é o mesmo.

Pode até apagar o ex5 do indicador. Pode continuar a executar o perito no testador (este ex5 eliminado está claramente marcado nele) como se nada tivesse acontecido. Onde obtém o ficheiro para execução, a partir de ether????

Se reiniciar o terminal e executar o testador depois disso, ele verá o novo código. (e atira um erro se faltar o ex5)


Tentei diferentes maneiras de o fazer ver o novo código - recoloquei o terminal (sem reiniciar) e recompilei o espert em si. Alteração dos parâmetros de peritos no testador. Nada ajuda excepto reiniciar o terminal.

Já respondeu à sua própria pergunta. Se apagar algo e ele aparecer, significa que está a ser salvo algures))))) Quando se arranca o terminal, todo o ambiente é arrancado do perfil do último estado. É como se tivesse reiniciado todos os Expert Advisors e indicadores na janela do terminal com parâmetros predefinidos. No seu caso, o Expert Advisor precisa de ser recompilado ou pode ser removido e carregado de novo. Ele (o EA) já puxou os cabos e dados da versão antiga e não os recalcula.

 
Valeriy Yastremskiy #:

O senhor mesmo respondeu à sua própria pergunta. Se apagar algo e este aparecer, deve ser armazenado em algum lugar). Quando se carrega o terminal, todo o ambiente é puxado do perfil do último estado. É como se tivesse reiniciado todos os Expert Advisors e indicadores na janela do terminal com parâmetros predefinidos. No seu caso, o Expert Advisor precisa de ser recompilado ou pode ser removido e carregado de novo. Ele (o EA) já puxou as pegas e os dados da versão antiga e não os recalcula.

O Conselheiro Especialista no terminal não se pendura em nada, é apenas o testador de estratégia que o deixa entrar. O próprio Expert Advisor tem um deinit onde eu tenho IndicatorRelease(handle_mtf_Sys); tentei recompilar a EA - não ajuda. Ainda assim, de alguma forma leva o código fantasma

 
Max B #:

O Expert Advisor no terminal não se pendura em nada, só o testador de estratégia o permite. O próprio Expert Advisor tem um deinit onde I IndicatorRelease(handle_mtf_Sys); tentei recompilar o Expert Advisor - não ajuda. Ainda é preciso de alguma forma código fantasma

No verificador, para além do separador Definições, existe também um separador Definições. Verifique-os, talvez existam valores por defeito antigos. Se não for isso também, então sim, é um insecto, eu tive o mesmo há cerca de 2 meses, depois desapareceu, não sei do que se tratava.
 
Max B #:

O Expert Advisor no terminal não se pendura em nada, só o testador de estratégia o permite. O próprio Expert Advisor tem um deinit onde eu tenho IndicatorRelease(handle_mtf_Sys); eu tentei recompilar a EA - não ajuda. Ainda assim, de alguma forma é preciso código fantasma

Primeiro compila o indicador, depois a EA? E a EA toma os dados do antigo indicador? Se assim for, deve ser um insecto. O Expert Advisor não é pendurado, ele trabalha na janela do gráfico do terminal. E o encerramento normal recorda e esconde o estado de todos os gráficos. Talvez mesmo com ficheiros físicos. Não sei. Mas, a julgar pelo insecto, é possível.

Se eliminou um exechanger, mas tem um ficheiro mcl, então todos os ficheiros mcl com exechangers em falta são compilados quando o terminal é carregado. Esta é uma das formas de compilar e obter exeshes de ficheiros mcl sem meta-editor - para recarregar o terminal.

 
Wizard #:
No Testador de Estratégia, para além do separador Definições, existe também o separador Definições. Verifique-os, talvez os valores antigos estejam lá por defeito. Se não for o mesmo, então sim, isto é um insecto, há 2 meses atrás, eu era o mesmo, depois desapareci, não sei o que era.

Os parâmetros são aí memorizados - mas não mudam e, neste caso, não importam. É o código dentro do indicador que muda. Em geral, o bug é desagradável - cada vez antes de executar o testador, o terminal tem de ser recarregado.

Valeriy Yastremskiy #:

Primeiro compila o indicador, depois o Consultor Especialista, e o Consultor Especialista toma os dados do antigo indicador? Se assim for, deve ser um insecto. O Expert Advisor não é pendurado, ele trabalha na janela do gráfico do terminal. E o encerramento normal recorda e esconde o estado de todos os gráficos. Talvez mesmo com ficheiros físicos. Não sei. Mas a julgar pelo insecto, pode ser que assim seja.

A questão é que a nossa EA não se senta em nenhuma tabela. Está apenas no testador de estratégia seleccionado. Estou preocupado com a depuração no testador de estratégias, não no terminal. Não deve ser colocado em cache em nenhum lugar.

Ao iniciar o Testador de Estratégia, deve ser carregada a última versão compilada do indicador e da EA, e não o fantasma desconhecido de fontes desconhecidas. Será que faz sentido?

 
Max B #:

Os parâmetros são aí memorizados - mas não mudam e, neste caso, não importam. É o código dentro do indicador que muda. Em geral, este bug é desagradável - cada vez antes de iniciar o testador tenho de reiniciar o terminal.

A questão é que a nossa EA não pertence a nenhuma tabela. Está apenas no testador de estratégias. Preocupo-me com a depuração no testador de estratégias, não no terminal. Não deve ser colocado em cache em nenhum lugar.

Ao iniciar o Testador de Estratégia, deve ser carregada a última versão compilada do indicador e da EA, e não o fantasma desconhecido de fontes desconhecidas. Será que faz sentido?

Faça um exemplo reprodutível de um bug e afixe-o aqui com o código e a sequência de acções. Talvez os programadores prestem atenção).
 

Quero fazer uma lista pendente de pares de moedas e instrumentos (pares próprios) na janela de definições de entrada da EA. Como o posso fazer?

Segunda questão: Como seria correcto escrever...

Assim:

double stop = SymbolInfoDouble(_Symbol, SYMBOL_ASK) - NormalizeDouble(100*_Point, _Digits);

Ou assim:

double stop = NormalizeDouble(SymbolInfoDouble(_Symbol, SYMBOL_ASK) - 100*_Point, _Digits);

???

Terceira pergunta. É possível normalizar os preços 2-3 vezes seguidas? Não irá afectar o trabalho?

Sei que as perguntas são disparatadas, mas são as pequenas coisas que me atormentam neste momento, mesmo que ambas as opções funcionem. Necessidade de saber como fazer as coisas bem.

 
Wizard #:

Quero fazer uma lista pendente de pares de moedas e instrumentos (pares próprios) na janela de definições de entrada da EA. Como o posso fazer?

Segunda pergunta: Como seria correcto escrever...

Assim:

Ou assim:

???

Terceira pergunta. É possível normalizar os preços 2-3 vezes seguidas? Não irá afectar o trabalho?

Sei que as perguntas são disparatadas, mas são as pequenas coisas que me atormentam neste momento, mesmo que ambas as opções funcionem. Necessidade de saber como fazer as coisas bem.

Esta construção NormalizeDouble deve ser evitada se possível, é pesada de manusear.

 
Vitaly Muzichenko #:

Esta construção NormalizeDouble deve ser evitada se possível, é pesada de manusear.

Já está. E se eu não quiser usar a função NormalizePrice da classe CSymbolInfo (tento evitar bibliotecas, se possível), existe alguma alternativa?

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