Errores, fallos, preguntas - página 814

 
paladin800:

En los parámetros externos de EA utilizo el parámetro R sólo = 1 o 2 o 12 o 13 (ejemplo simple general). Puede comprobar este parámetro en OnInit() e informar de un error si un ciudadano introduce un número diferente por error. Sin embargo, existen tipos ENUM_... para la entrada. (por ejemplo, ENUM_MA_METHOD), cuando puede simplemente seleccionar un valor de la ventana expandida.

Pregunta. ¿Existe alguna opción en la que pueda realizar dicha construcción, de forma que en los parámetros externos por analogía con el ENUM_... aparecen sólo lo que el programador pretendía, sin necesidad de comprobar OnInit(). No lo he encontrado en la documentación. Si no es así, el deseo es hacer tal cosa.

Lo mismo ocurre con ENUM.

enum MyLimitedType
  {  
   Адын = 1,
   Дыва = 2,
   Трынацать = 13,
   Читырныцыть = 14,
  };
Incluso hice un truco sucio usando matrices dobles ENUM con pasos limitados (ejemplo aquí), pero aquí no puedo prescindir de la conversión en OnInit(), por supuesto.
 
MetaDriver:

Lo mismo ocurre con ENUM.

Incluso me decidí a usar ENUM para crear arrays dobles con pasos limitados (ejemplo aquí), pero no se puede prescindir de la conversión a OnInit(), por supuesto.
Algo así. Gracias por el enlace, lo averiguaré por mi cuenta.
 
paladin800:
¡Así! Gracias por el enlace, lo averiguaré por mi cuenta.

Esto también funciona para la entrada:

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

Escriba el código y llame a la ventana, vea cómo son las opciones del enum.

El código utilizará variantes de enum y la ventana de entrada utilizará comentarios.

 

Tengo un enum 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 si no se asignan valores a las opciones del enumerador como MetaDriver entonces se asignarán valores consecutivos a partir de 0.

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

Esto también funciona para la entrada:

Escriba el código y llame a la ventana, vea cómo son las opciones del enum.

El código utilizará variantes de enum y la ventana de entrada utilizará comentarios.

Sí, confirme, todo funciona. :)

paladin800:
Algo así. Gracias por el enlace, lo buscaré yo mismo.
Buena suerte. Los enum's grandes (si son necesarios) trato de generarlos automáticamente, porque en primer lugar soy perezoso, y en segundo lugar hay menos errores/tipicidades. En particular, aquellos enum's, que fueron generados por estos scripts (ver trailer).
Archivos adjuntos:
 
¿Cómo saber en OnTesterPass qué parámetros se utilizaron para la optimización? Sólo veo que estos parámetros se devuelven al principio de los parámetros del array de la función FrameInputs, pero ¿en qué momento terminan los parámetros optimizados y comienzan los parámetros constantes?
 
marketeer:
¿Cómo saber en OnTesterPass qué parámetros se utilizaron para la optimización? Sólo veo que estos parámetros se devuelven al principio de los parámetros del array de la función FrameInputs, pero ¿en qué momento terminan los parámetros optimizados y comienzan los parámetros constantes?
No entiendo muy bien la pregunta, pero puedo sugerir una función útil - ParameterGetRange
 
Rosh:
No entiendo muy bien la pregunta, pero puedo sugerir una función útil - ParameterGetRange
Sí, está bien. Todavía no está disponible en la ayuda local.
 
Como he comprobado, se pasan a OnTesterPass los mismos resultados de optimización truncados que a la pestaña de resultados de optimización. Esperaba que al menos de esta manera fuera posible obtener el conjunto completo de datos. Así que la solicitud #459431 que yace en la SD es la única salida, si es que alguna vez se hace (y si se hace, probablemente será después del Campeonato, por desgracia).
 

¿Pueden decirme por qué se produce un error al obtener el mango de un indicador, si el nombre del indicador a llamar está contenido en una variable?

Es decir, no hay ningún error como este:

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

Así es como obtenemos el error 4802 (No se puede crear el indicador):

string lnm_ind="Name_Indicator";
//---
handle=iCustom(_Symbol,tf_ind,lnm_ind,param_ind);
Razón de la queja: