¿Por qué no poner los parámetros de entrada en la estructura? - página 4

 

Alexey Volchanskiy

Por cierto, ¿tiene MQL5 un límite en el número de parámetros de la función?

Parece que hay 64 parámetros por función.

 
Alexey Volchanskiy:

¿Cómo se optimiza? No es la primera vez que pregunto esto y nadie dice nada.


Esa es la cuestión: no lo haces. Esto significa que cualquier ventana personalizada (DLL, GUI en MQL) destruirá completamente la optimización nativa. En casos extremos, tenemos que añadir nuestra propia optimización dentro del EA, que es otra bicicleta.

El archivo ini es el mismo. No está nada claro cómo es conveniente aquí. Al menos, no he visto usuarios sencillos que editen el archivo ini para cambiar los valores de los parámetros de ajuste.

 
Alexey Volchanskiy:

Parece que he escrito con suficiente claridad, pero lo repetiré con un ejemplo. Hay un Asesor Experto, tiene 100 parámetros de entrada, todos ellos deben ser pasados a una instancia de la clase del algoritmo, donde todo el trabajo tiene lugar. Hay dos maneras:

  1. Hacer la función de ajuste de parámetros en la clase. Ahora imagine una función con 100 parámetros. Por cierto, ¿hay un límite en el número de parámetros de la función en MQL5?
  2. La clase se define después de las variables de entrada, es decir, son visibles desde el EA. La desventaja - menos flexibilidad en caso de múltiples instancias de la clase. El plus es la cantidad mínima de escritura.

Así que el problema es cómo pasar las variables de entrada a la instancia de clase del algoritmo

Entonces has acertado.

// Begin: mqh-файл
class CLASS_EXPERT
{
public:  
  template <typename T>
  void Set( void );
};
// End: mqh-файл

input int inNum = 0;

struct INPUTS
{
  const int Num;
  
  INPUTS( void ) : Num(inNum)
  {
  }
};

CLASS_EXPERT Experts[10];

void OnInit()
{
  for (int i = ArraySize(Experts) - 1; i >= 0; i--)
    Experts[i].Set<INPUTS>();
}
 
Ihor Herasko:

¿Cómo es posible? Realmente no entiendo cómo es posible. Conozco ese truco para los scripts, pero no para los Asesores Expertos e indicadores.

ExpertLoader_Example.mq5 desde aquí.

Ihor Herasko:

Esta es la cuestión, no lo hace. Esto significa que cualquier ventana personalizada (DLL, GUI en MQL) destruirá completamente la optimización estándar. En casos extremos, tenemos que añadir nuestra propia optimización dentro del EA, que es otra bicicleta.

El archivo ini es el mismo. No está nada claro cómo es conveniente aquí. Al menos, no he visto ningún usuario sencillo que edite el archivo ini para cambiar los valores de los parámetros de ajuste.

https://www.mql5.com/ru/docs/optimization_frames/parametersetrange

Expert
Expert
  • votos: 16
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Все остальные файлы на данной странице описания библиотеки являются ее примерами/сценариями применения и не нужны для работы самой библиотеки. Возможности Примеры К описанию прикреплены примеры/сценарии ее использования. ExpertsRemove.mq5 ExpertsReopen.mq5 ChartsClose.mq5 ExpertLoader_Example.mq5 ExpertsChange_Example.mq5 Это...
 

Puedes escribir las variables externas en un archivo mqh y conectarlo.

 

Debo de estar atrasado o moviéndome en la dirección equivocada,

Pensaba que cuanto menos parámetros de entrada tenga un EA, mejor.

Lo ideal, en mi opinión, es que un EA no tenga parámetros de entrada(variables de entrada).

Explícame, ¿para qué sirven 100 parámetros?

 
Sergey Chalyshev:

Debo de estar atrasado o moviéndome en la dirección equivocada,

Pensaba que cuanto menos parámetros de entrada tenga un EA, mejor.

Lo ideal, en mi opinión, es que un EA no tenga parámetros de entrada(variables de entrada).

Por favor, explique qué sentido tienen los 100 parámetros.


Sólo para experimentar.

 
Sergey Chalyshev:

Debo de estar atrasado o moviéndome en la dirección equivocada,

Pensaba que cuanto menos parámetros de entrada tenga un EA, mejor.

Lo ideal, en mi opinión, es que un EA no tenga parámetros de entrada(variables de entrada).

Por favor, aclare el significado de 100 parámetros.


Esta cuestión no se discute aquí. Estamos discutiendo los aspectos técnicos del paso de parámetros.

 
Dmitry Fedoseev:

Puedes escribir las variables externas en un archivo mqh y conectarlo.


Estoy perdiendo la cabeza, la gente se obstina en ignorarme. También puedes escribirlos en .mqh, ¿qué diferencia hay encómo pasarlos a la clase algoritmo?

 
Alexey Volchanskiy:

Estoy perdiendo la cabeza, sigo sin ser escuchado. También puedes usar .mqh, ¿qué diferencia hay encómo pasarlos a la clase de algoritmo?


No es necesario pasarlas, las variables globales están disponibles tal cual.