Discussão do artigo "Os princípios do cálculo econômico de indicadores"

 

Novo artigo Os princípios do cálculo econômico de indicadores foi publicado:

Chamadas para usuário e indicadores técnicos ocupam um espaço muito pequeno no código do programa dos sistemas de negócio automatizado. Geralmente, são apenas algumas linhas de código. Mas, o que geralmente acontece é que essas poucas linhas de código são as que usam a maior parte do tempo, tempo que precisa ser gasto em teste do Expert Advisor. Então, tudo que está relacionado com cálculos de dados dentro de um indicador, precisa ser considerado mais a fundo do que só ser visto de relance. Este artigo falará precisamente sobre isso.

Fig. 11 O resultado de passar o teste com o consultor especialista AMA_Ex_Test

Autor: Nikolay Kositsin

 

Obrigado pelo artigo.

Tenho uma pergunta. Você usa a primeira forma do indicador para otimizar os cálculos do indicador, onde há begin. Mas se você não puder usá-lo (para os cálculos corretos, você precisa de open[], high[], low[], close[] ...), como fazer? Não há begin na segunda forma.

 
Prival:

Obrigado pelo artigo.

Tenho uma pergunta. Você usa a primeira forma do indicador para otimizar os cálculos do indicador. Mas se você não puder usá-lo (para os cálculos corretos, você precisa de open[], high[], low[], close[] ...), como será? Não há begin na segunda forma.

E ele não é necessário lá, porque os parâmetros de entrada são sempre características de preço - eles estão em todos os elementos, ele não usa uma matriz "arbitrária" preenchida somente a partir do begin.
 

nem tudo é considerado, mas, em geral, ainda é interessante =)

e, especificamente, uma coisa como a otimização da chamada de indicadores técnicos não é considerada.

Acho que esse tópico é bastante relevante.

 

mais precisamente, como inicializar melhor o indicador técnico

Em geral, a função de verificação de dados é implementada

mas o exemplo da inicialização não é exatamente considerado

até onde se sabe pela ajuda

Нельзя обратиться к данным индикатора сразу после его создания, так как на расчет значений индикатора требуется некоторое время, и поэтому создавать хэндлы индикаторов лучше всего в OnInit(). Функция iCustom() создает соответствующий пользовательский индикатор и при успешном создании возвращает его хэндл. Пользовательские индикаторы могут содержать до 512 индикаторных буферов, содержимое которых также можно получать при помощи функции CopyBuffer(), используя полученный хэндл.

qual a melhor maneira de contornar esse recurso....

 

Sempre me pergunto a mesma coisa.

   if (Handle == INVALID_HANDLE)  Print(" Falha ao obter a alça do indicador SMA");

Se essa condição funcionar, o que devo fazer? Digamos que seja o campeonato, é isso... a unidade não correrá mais.

 
Prival:

Eu estava me perguntando a mesma coisa o tempo todo.

Se essa condição funcionar, o que devo fazer? Digamos que seja o campeonato, é isso... a inicialização não será mais executada.

Sim! É um fato não documentado, eu também não sabia disso! Definitivamente, deveríamos dar uma olhada nisso! Mas é mais fácil para mim, vou colocar todos os perus no próprio Expert Advisor e pronto, para que o Expert Advisor corra como um velocista em distâncias de maratona e não tropece em lugar nenhum e nunca!

 
Prival:

Sempre me pergunto a mesma coisa.

Se essa condição funcionar, o que devo fazer? Digamos que seja um campeonato, é isso... a inicialização não será mais executada.

Em primeiro lugar, obtenha o código de erro e envie-o para o registro. E tente acessá-lo novamente em OnTick() ou OnCalculate(). Se você não conseguir obter o identificador do indicador, provavelmente o indicador não existe ou não há memória suficiente. Nesse caso, o Expert Advisor não tem o direito de negociar.
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5
 
Rosh:
Em primeiro lugar, obtenha o código de erro e envie-o para o registro. Em seguida, tente acessá-lo novamente em OnTick() ou OnCalculate(). Se você não conseguir obter o identificador do indicador, provavelmente esse indicador não existe ou não tem memória. Nesse caso, o Expert Advisor não tem o direito de negociar.

Bem, aqui estamos nós, podemos fazer isso sozinhos! Em tal situação, se pudéssemos fazer com que a função OnInit() retornasse menos um para chamar OnInit() novamente e assim por diante até que o identificador aparecesse! Mas agora está claro que, se você não sobrecarregar seu computador, não haverá motivo para não obter o identificador. Mas eu já vi isso uma vez ao atualizar uma compilação, e isso pode ser resolvido recompilando o indicador!

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
Um valor negativo pode ser retornado, mas não é um bom presságio para o EA/indicador.
 
Felizmente, o erro de criação do indicador devido à falha do terminal praticamente não ocorre.