Discusión sobre el artículo "MQL5 Wizard: Nueva Versión" - página 4

 

1. ¿Puede decirme cómo invertir una señal?

ejemplo: para confirmar una señal de compra GBP/USD, necesitamos una señal de venta MACD EUR/GBP.

¿O es más fácil escarbar en el código de la librería y cambiar "más" por "menos" y guardarlo como librería con otro nombre.

P.D. Estaría bien poder elegir al crear un Asesor Experto qué señal tomar: señal de avance o de retroceso.

2. ¿Cómo puedo sacar los pesos de los patrones que están cosidos en la librería, para optimizar estos pesos?

 
52_rus:

1. ¿Puede decirme cómo invertir la señal?

ejemplo: para confirmar una señal de compra GBP/USD, necesitamos una señal de venta MACD EUR/GBP.

O es más fácil de cavar en el código de la biblioteca y cambiar "más" a "menos" y guardarlo como una biblioteca con un nombre diferente.

P.D. Estaría bien poder elegir al crear un Asesor Experto qué señal tomar: señal de avance o de retroceso.

2. ¿Cómo podemos sacar los pesos de los patrones, que están cosidos en la librería, para optimizar estos pesos?

1. Los mecanismos para invertir (e ignorar) señales están incorporados en la clase base CExpertSignal, pero desafortunadamente aún no están disponibles en el Asistente.

2 Lo mismo puede decirse de los pesos de los patrones.

Por favor, adjunte la fuente del Asesor Experto, obtenida después del "Asistente" y brevemente. Intentaré explicar cómo hacerlo "a mano".

PD. El "Asistente" se desarrollará y estos ajustes estarán disponibles más adelante.

 

1. ¿Cómo puedo añadir mi biblioteca (por ejemplo: cambiar el MACD actual y guardarlo sin borrar la biblioteca principal) a la lista maestra de señales?

2. Pregunta sobre el trabajo con bibliotecas:

Consideremos un Asesor Experto basado en MAKD, hecho con la ayuda del asistente: lo creamos y compilamos, lo probamos y obtuvimos algunos resultados

La señal MAKD de la biblioteca fue la siguiente:

//--- establecer los "pesos" por defecto de los modelos de mercado
   m_pattern_0    =10;       // modelo 0 "el oscilador tiene dirección requerida"
   m_pattern_1    =30;       // modelo 1 "inversión del oscilador a la dirección requerida"
   m_pattern_2    =80;       // modelo 2 "cruce de línea principal y señal"
   m_pattern_3    =50;       // modelo 3 "cruce de la línea principal en el nivel cero"
   m_pattern_4    =60;       // modelo 4 "divergencia del oscilador y el precio"
   m_pattern_5    =100;      // modelo 5 "doble divergencia del oscilador y el precio" 

Далее, если я занулю не нужные мне паттерны (например 0,1,2,4,5) в библиотеке:

//--- establecer los "pesos" por defecto de los modelos de mercado
   m_pattern_0    =0;       // modelo 0 "el oscilador tiene dirección requerida"
   m_pattern_1    =0;       // modelo 1 "inversión del oscilador a la dirección requerida"
   m_pattern_2    =80;       // modelo 2 "cruce de línea principal y señal"
   m_pattern_3    =0;       // modelo 3 "cruce de la línea principal en el nivel cero"
   m_pattern_4    =0;       // modelo 4 "divergencia del oscilador y el precio"
   m_pattern_5    =0;      // modelo 5 "doble divergencia del oscilador y el precio" 

Compilaré sólo la librería (no compilaré el código del EA en sí). Lo probaré y obtendré exactamente el mismo resultado que en la primera prueba.

Si compilo también el código EA, obtendré un resultado diferente, en este ejemplo sólo para el patrón 2.

Tengo una pregunta: ¿Por qué tengo que volver a compilar el código EA después de cambiar algunos parámetros en la biblioteca? (No ha cambiado).

 
52_rus:

1. ¿Cómo puedo añadir mi librería (por ejemplo: cambiar el MACD actual y guardarlo sin borrar el principal) a la lista maestra de señales?


¿Te refieres al fichero include que contiene el código del módulo de señales? Cambia el módulo actual como necesites y guárdalo en el mismo directorio, pero con un nombre diferente. Más detalles al respecto en el artículo:

Creación de un robot comercial en el nuevo Asistente MQL5

El código del EA se construye utilizando el Asistente MQL5 del MetaEditor.

Las clases básicas de estrategias comerciales se encuentran en la carpeta terminal_data_folder\MQL5\Include\Expert\. Los algoritmos listos de las clases de señales comerciales, clases de mantenimiento de posiciones abiertas y clases de gestión de capital y riesgo se encuentran en los subdirectorios Signal, Trailing y Money. El MQL5 Wizard analiza los archivos de estos directorios y los utiliza para generar el código del EA.

Esto significa que los módulos de señales están (y deben estar, para ser vistos por el MQL5 Wizard) en el directorio terminal_data_folder\MQL5\Include\Expert\Signal.
 
todo funcionó, gracias, acabo de corregir el código, pero no cambió el nombre de la clase....
 

Por alguna razón, las nuevas versiones del terminal ya no contienen versiones personalizadas de los módulos del generador de señales. Hay 30 módulos en la carpeta /MQL5/Include/Expert/Signal/, pero el Asistente sólo ve 20 módulos suministrados como estándar según la Ayuda.

¿Soy yo o el editor de MT5 ya no escanea la carpeta con módulos de señales en busca de nuevos módulos? Incluso los antiguos módulos de señales basados en patrones de velas desarrollados por Metaquotes no están conectados.

 
Livingston:

Por alguna razón, las nuevas versiones del terminal ya no contienen versiones personalizadas de los módulos del generador de señales. Hay 30 módulos en la carpeta /MQL5/Include/Expert/Signal/, pero el Asistente sólo ve 20 módulos suministrados como estándar según la Ayuda.

¿Soy yo o el editor de MT5 ya no escanea la carpeta con los módulos de señales en busca de nuevos módulos? Incluso los antiguos módulos de señales basados en patrones de velas desarrollados por Metaquotes no están conectados.

Un nuevo módulo de señal debe tener una descripción de módulo diferente y su tipo debe ser SignalAdvanced


 
Rosh:

El nuevo módulo de señal debe tener una descripción de módulo diferente y su tipo debe ser SignalAdvanced


Muchas gracias.
 
Rosh:

Un nuevo módulo de señal debe tener una descripción de módulo diferente y su tipo debe ser SignalAdvanced


Si sustituye Signal por SignalAdvanced en módulos de señal escritos anteriormente, siguen sin funcionar. ¿Ahora las funciones CheckOpenShort/CheckOpenLong no se utilizan y se sustituyen por ShortCondition/LongCondition?

No hay parámetros en estas funciones, por lo que no está claro cómo establecer tomas y paradas.

int CSignalMA::LongCondition()
  {
   int result=0;
   int idx   =StartIndex();
//--- analizar la relación posicional del precio de cierre y el indicador en la primera barra analizada
   if(DiffCloseMA(idx)<0.0)
     {
      //--- el precio de cierre está por debajo del indicador
      if(IS_PATTERN_USAGE(1) && DiffOpenMA(idx)>0.0 && DiffMA(idx)>0.0)
        {
         //--- el precio de apertura está por encima del indicador (es decir, hubo una intersección), pero el indicador se dirige hacia arriba
         result=m_pattern_1;
         //--- consideran que se trata de un "piercing" no formado y sugieren entrar en el mercado al precio actual
         m_base_price=0.0;
        }
     }
   else
     {
      //--- el precio de cierre está por encima del indicador (el indicador no tiene objeciones a la compra)
      if(IS_PATTERN_USAGE(0))
         result=m_pattern_0;
      //--- si se utiliza el modelo 2
      if(IS_PATTERN_USAGE(2) && DiffMA(idx)>0.0)
        {
         //--- el indicador se dirige hacia arriba
         if(DiffOpenMA(idx)<0.0)
           {
            //--- el precio de apertura está por debajo del indicador (es decir, hubo una intersección)
            result=m_pattern_2;
            //--- sugiero entrar en el mercado en el "roll back"
            m_base_price=m_symbol.NormalizePrice(MA(idx));
           }
         else
           {
            //--- el precio de apertura está por encima del indicador
            if(DiffLowMA(idx)<0.0)
              {
               //--- el precio bajo está por debajo del indicador
               result=m_pattern_2;
               //--- consideran que se trata de un "piercing" formado y sugieren entrar en el mercado al precio actual
               m_base_price=0.0;
              }
           }
        }
     }
//--- devuelve el resultado
   return(result);
  }

ahora IS_PATTERN_USAGE() se utiliza en todas partes en el módulo de señales, no está claro por qué.

En general, estamos a la espera de información sobre cómo hacer que el módulo de señales a ti mismo.

¿estará disponible el antiguo modo del asistente Type=Signal? o ¿todos los módulos se escribirán ahora de una nueva manera?

 

A cada modelo de mercado se le asigna una significación, medida de 1 a 100. Cuanto mayor sea el valor, más sólido será el modelo.

MA con un peso de 0,4 y estocástico con un peso de 0,8 -esto se establece en variables externas, y de donde procede MA- su significación es 100. La importancia estocástica de este modelo es igual a 80. ¿Dónde se establece la significación de cada modelo o cómo se determina?