Discusión sobre el artículo "Experto comercial universal: integración con los módulos estándar de señales de MetaTrader (parte 7)"

 

Artículo publicado Experto comercial universal: integración con los módulos estándar de señales de MetaTrader (parte 7):

Esta parte está dedicada a la integración del motor comercial CStrategy con los módulos de señales incluidos en la biblioteca estándar de MetaTrader. El material describe los métodos de trabajo con las señales y la creación de estrategias de usuario basadas ellas.

En el diagrama de más abajo se muestra el esquema general de herencia vertical de las clases implicadas durante la generación automática de estrategias:

 

Fig. 1. Esquema de herencia de las clases estándar del autogenerador de estrategias

Autor: Vasiliy Sokolov

 

Vasily, interesante como siempre. En primer lugar, desde el punto de vista de la programación... aunque ¿qué otra cosa se puede esperar en un foro MQL....

Una pequeña observación :-)))

La herencia se suele trazar de abajo hacia arriba. Aproximadamente así:



 
Escribí algo similar en mql4 en un archivo y sin necesidad de utilizar bibliotecas de terceros, de modo que para generar una señal de usuario puede construir un árbol libre de las relaciones entre los 70 elementos de diez indicadores personalizados, para recoger el resultado de las condiciones construidas a partir de un jardín de este tipo es un montón de diversión, pero resultó algo realmente universal.
 
Dennis Kirichenko:

Vasily, interesante como siempre. En primer lugar, desde el punto de vista de la programación... aunque ¿qué otra cosa se puede esperar en un foro MQL....

Una pequeña observación :-)))

La herencia se suele dibujar de abajo hacia arriba. Es más o menos correcto:

No lo sabía. Supongo que soy zurdo, así que lo entendí al revés:)
 
Aleksey Semenov:
Escribí algo similar en mql4 con un archivo y sin necesidad de utilizar bibliotecas de terceros, de modo que para generar una señal de usuario puede construir un árbol libre de las relaciones entre los 70 elementos de diez indicadores personalizados, para recoger el resultado de las condiciones construidas a partir de un jardín es un montón de diversión, pero resultó algo realmente universal
¿Puedes ver el prototipo?
 
Aleksey Semenov:
Escribí algo similar en mql4 con un archivo y sin el uso de bibliotecas de terceros, de modo que para generar una señal de usuario puede construir un árbol libre de las relaciones entre los 70 elementos de diez indicadores personalizados, para recoger el resultado de las condiciones construidas de un jardín tal es un montón de diversión, pero resultó algo realmente universal.
Sí, me inclino por el hecho de que un generador de estrategia universal debe ser escrito sobre la base de un árbol, pero la tarea es bastante difícil.
 
Pregunta para el público: ¿alguien utiliza el sistema de señales MetaTrader en absoluto? ¿Y quién utiliza las clases de señal en su programación Asesor Experto?
 
Vasiliy Sokolov:
Pregunta para el público: ¿alguien utiliza el sistema de señales MetaTrader en absoluto? Y quién utiliza clases de señales en su programación de Asesores Expertos?

Я. Yo siempre hago esto

  • escribir un indicador
  • Hago un módulo de señal sobre la base del indicador
  • Al construir un Asesor Experto, conecto el módulo necesario de señales.
Al principio puede parecer que el camino no está cerca, pero en realidad es muy conveniente para cambiar, modificar las señales del indicador o inventar nuevas señales.

 
Karputov Vladimir:

Я. Siempre lo hago:

  • escribo un indicador
  • Hago un módulo de señales basado en el indicador
  • Al construir un Asesor Experto, conecto el módulo necesario de señales.
Al principio puede parecer que el camino no está cerca, pero en realidad es muy conveniente para cambiar, modificar las señales del indicador o inventar nuevas señales.

Un enfoque realmente minucioso. Sí, tiene sus ventajas.

En general, muchos desarrolladores ya han escrito sus propios módulos de señales. ¿Por qué no crear una base centralizada de dichos módulos? Cualquiera puede compartir su módulo y publicarlo en la base de datos. Grial por supuesto no al agua, pero los beneficios serán evidentes para todos, no tendremos que reinventar la rueda.

 

Al inicializar las señales indicadoras

//+------------------------------------------------------------------+
//| Inicialización del módulo de señalización CSignalMacd ||.
//+------------------------------------------------------------------+
COnSignal_RSI_AC::COnSignal_RSI_AC(void)
{
   MqlSignalParams params;
   params.every_tick = false;
   params.magic = 32910;
   params.point = 10.0;
   params.symbol = Symbol();
   params.period = Period();
   params.usage_pattern = 2;
   params.signal_type = SIGNAL_AC;
   CSignalAC* ac = m_adapter_ac.CreateSignal(params);
   params.usage_pattern = 1;
   params.magic = 32911;
   params.signal_type = SIGNAL_RSI;
   CSignalRSI* rsi = m_adapter_rsi.CreateSignal(params);
   rsi.PeriodRSI(RSI_Period);
}
un módulo de señal (adaptador) se transmite un Magik (32910), el segundo se transmite el segundo (32911). Es decir, ¿se utilizará un Magik para abrir posiciones y otro para cerrarlas? ¿O he entendido algo mal?
 
Гога:

Al inicializar las señales indicadoras

un módulo de señal (adaptador) se transmite un Magik (32910), el segundo se transmite el segundo (32911). Es decir, ¿se utilizará un Magik para abrir posiciones y otro para cerrarlas? ¿O he entendido algo mal?
En este caso, los Magiks son rudemembers CExpert, de los que se hereda la propia señal. La señal no lo necesita, al menos en CStrategy, porque no coloca órdenes pendientes. Sin embargo, se especifica algún majic por si acaso.