Erros, bugs, perguntas - página 814

 
paladin800:

Nos parâmetros EA externos utilizo apenas o parâmetro R = 1 ou 2 ou 12 ou 13 (exemplo geral simples). Pode verificar este parâmetro no OnInit() para verificar se está correcto e se um cidadão introduziu outro número por engano, então comunicar um erro. No entanto, existem tipos de ENUM_... para entrada. (ex. ENUM_MA_METHOD), quando pode simplesmente seleccionar um valor a partir da janela expandida.

Pergunta. Existe alguma opção onde eu possa fazer tal construção, para que em parâmetros externos, por analogia com o ENUM_... aparecem apenas o que o programador pretendia, sem a necessidade de verificar OnInit(). Ainda não o encontrei na documentação. Caso contrário, o desejo é de fazer tal coisa.

O mesmo acontece com a ENUM.

enum MyLimitedType
  {  
   Адын = 1,
   Дыва = 2,
   Трынацать = 13,
   Читырныцыть = 14,
  };
Até fiz um truque sujo usando matrizes duplas ENUM com passos limitados (exemplo aqui), mas aqui não posso fazer sem conversão em OnInit(), claro.
 
MetaDriver:

O mesmo acontece com a ENUM.

Até me decidi a utilizar a ENUM para criar matrizes duplas com passos limitados (exemplo aqui), mas não se pode passar sem conversão para OnInit(), claro.
Algo parecido com isto! Obrigado pela ligação, vou descobrir por mim mesmo.
 
paladin800:
Assim! Obrigado pela ligação, eu próprio a descobrirei.

Isto também funciona para a entrada de dados:

enum MyLimitedType
  {  
   Адын = 1,// почти Адын 
   Дыва = 2,// совсем Дыва
   Трынацать = 13,// ++ Трынацать
   Читырныцыть = 14,// Читырныцыть.--
  };

Escreva o código e abra a janela, veja como são as opções de enumeração.

O código utilizará variantes de enumeração e a janela de entrada utilizará comentários.

 

Tenho um enumero como este:

enum ENUM_FIBO_LEVEL
  {
   O_0,  //0.0
   O_236,//0.236
   O_382,//0.382
   O_5,  //0.5
   O_618 //0.618
  };

ZY se não forem atribuídos valores como o MetaDriver às opções de enumeração, então elas irão por defeito para valores consecutivos a partir de 0.

Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Основы языка / Операции и выражения / Операции присваивания - Документация по MQL5
 
Urain:

Isto também funciona para a entrada de dados:

Escreva o código e abra a janela, veja como são as opções de enumeração.

O código utilizará variantes de enumeração e a janela de entrada utilizará comentários.

Sim, confirme, tudo funciona. :)

paladin800:
Algo parecido com isto! Obrigado pelo link, eu próprio o procurarei.
Boa sorte. Grandes enumeros (se necessário) tento gerá-los automaticamente, porque em primeiro lugar sou preguiçoso, e em segundo lugar há menos erros/tipos. Em particular, esses enumeros, que foram gerados por estes guiões (ver trailer).
Arquivos anexados:
 
Como saber no OnTesterPass que parâmetros foram utilizados para optimização? Apenas vejo que estes parâmetros são devolvidos no início dos parâmetros de matriz da função FrameInputs, mas em que ponto terminam os parâmetros optimizados e começam os parâmetros constantes?
 
marketeer:
Como saber no OnTesterPass que parâmetros foram utilizados para optimização? Apenas vejo que estes parâmetros são devolvidos no início dos parâmetros de matriz da função FrameInputs, mas em que ponto terminam os parâmetros optimizados e começam os parâmetros constantes?
Não compreendo bem a pergunta, mas posso sugerir uma função útil - ParameterGetRange
 
Rosh:
Não compreendo bem a pergunta, mas posso sugerir uma função útil - ParameterGetRange
Sim, está bem. Ainda não disponível na ajuda local.
 
Como descobri, os mesmos resultados de optimização truncados são passados para o OnTesterPass e para o separador de resultados de optimização. Esperava que pelo menos desta forma fosse possível obter o conjunto completo de dados. Assim, a aplicação #459431 deitada no SD é a única saída, se alguma vez for feita (e se o fizer, será provavelmente depois do Campeonato, infelizmente).
 

Pode dizer-me por que razão ocorre um erro ao obter um manípulo indicador, se o nome do indicador a ser chamado está contido numa variável?

Não há erro nenhum como este:

handle=iCustom(_Symbol,tf_ind,"Name_Indicator",param_ind);

É assim que obtemos o erro 4802 (Indicador não pode ser criado):

string lnm_ind="Name_Indicator";
//---
handle=iCustom(_Symbol,tf_ind,lnm_ind,param_ind);
Razão: