Discusión sobre el artículo "Otras clases en la biblioteca DoEasy (Parte 66): Clases de Colección de Señales MQL5.com"

 

Artículo publicado Otras clases en la biblioteca DoEasy (Parte 66): Clases de Colección de Señales MQL5.com:

En este artículo, crearemos una clase de colección de señales del Servicio de señales de MQL5.com con funciones para gestionar las señales suscritas, y también modificaremos la clase del objeto de instantánea de la profundidad de mercado para mostrar el volumen total de la profundidad de mercado de compra y venta.

A continuación, compilamos el asesor y lo iniciamos en el gráfico del símbolo, configurando previamente en los ajustes el trabajo con el símbolo/marco temporal actual y estableciendo la bandera que indica si vamos a trabajar con las señales comerciales del servicio Señales de MQL5.com:


Debemos asegurarnos de marcar en la pestaña "General" de la ventana de ajustes del asesor la casilla "Permitir el cambio de los ajustes de las señales":


Si nos saltamos este paso, el asesor no podrá trabajar con el servicio de Señales de MQL5.com.

Después de iniciar el asesor, en el diario se mostrará un mensaje sobre la creación exitosa de la colección de señales, así como una breve descripción de la misma:

Collection of MQL5.com Signals service signals created successfully
Collection of MQL5.com Signals service signals:
- Free signals: 195, Paid signals: 805

Autor: Artyom Trishkin

[Eliminado]  

¿Por qué hay una etiqueta para "sistemas de negociación" en la sección de artículos? no hay TCs aquí

Toda la sección "sistemas de trading" está llena de tus artículos, en resumen

 
Maxim Dmitrievsky:

¿Por qué está la etiqueta "sistemas de negociación" en la sección de artículos? Aquí no hay sistemas de negociación.

Toda la sección "sistemas de negociación" está llena de tus artículos, en resumen

Porque la biblioteca se ha creado especialmente para crear sistemas de negociación.

[Eliminado]  
Artyom Trishkin:

Porque la biblioteca se ha creado especialmente para crear sistemas de negociación.

hay alguna contradicción lógica en esto

 
Maxim Dmitrievsky:

hay una cierta contradicción lógica

Sí. Es como el problema del huevo y la gallina.
 
 
Siento mucho haber vuelto a hacer algo que no debía, y me arrepiento.
Mi propia ignorancia
Por favor, perdóname por llenar a los que me rodean con mis acciones, lo siento.



 
Hola señor chateo con usted por WhatsApp
 
Lovely Raja :
Hola señor chateo con usted por WhatsApp

No me comunico por WhatsApp

 

Buenas noches.

Saludos aquí en Brasil.


Estou tendo impedimento na hora de compilar o código e como meu conhecimento de mql5 é muito básico, resta pedir sua ajuda para superar os problemas na compilação...não sei resolver.

Quero aproveitar e parabenizá-lo pelo trabalho brilhante, seus códigos me ajudam muito.

 
Francisco Carlos Sobral Ribeiro #:

¡Buena noche!

Saludos aquí en Brasil.


Estou tendo impedimento na hora de compilar o código e como meu conhecimento de mql5 é muito básico, resta pedir sua ajuda para superar os problemas na compilação...não sei resolver.

Quero aproveitar e parabenizá-lo pelo trabalho brilhante, seus códigos me ajudam muito.

En Trading.mqh, necesita mover algunos métodos a la sección protegida para que puedan ser accedidos desde clases derivadas. Ahora están en la sección privada de la clase. Cometí este error por falta de atención, pero el compilador antiguo lo pasó por alto. Después de actualizar el terminal, este error se hizo detectable.

En las líneas 84 - 89 del archivo Trading.mqh debes hacer los siguientes cambios:


En el fichero Trading.mqh, algunos métodos necesitan ser movidos a una sección protegida para que puedan ser accedidos desde clases derivadas. Ahora están en la sección privada de la clase. Este error lo cometí yo sin querer, pero el antiguo compilador lo pasó por alto. Después de actualizar el terminal, este error comenzó a ser detectado.

En las líneas 84 - 89 del archivo Trading.mqh, necesitas hacer los siguientes cambios:

//--- Devuelve la dirección de la orden por tipo de operación
   ENUM_ORDER_TYPE      DirectionByActionType(const ENUM_ACTION_TYPE action)  const;
//--- Establece el objeto comercial al sonido deseado
   void                 SetSoundByMode(const ENUM_MODE_SET_SOUND mode,const ENUM_ORDER_TYPE action,const string sound,CTradeObj *trade_obj);

protected:
//--- Establece los precios de solicitud de operaciones
   template <typename PR,typename SL,typename TP,typename PL> 
   bool                 SetPrices(const ENUM_ORDER_TYPE action,const PR price,const SL sl,const TP tp,const PL limit,const string source_method,CSymbol *symbol_obj);

private:
//--- Devuelve la bandera para comprobar la permisibilidad por la distancia de (1) StopLoss, (2) TakeProfit, (3) el precio de establecimiento de la orden desde el precio StopLevel.
   bool                 CheckStopLossByStopLevel(const ENUM_ORDER_TYPE order_type,const double price,const double sl,const CSymbol *symbol_obj);
   bool                 CheckTakeProfitByStopLevel(const ENUM_ORDER_TYPE order_type,const double price,const double tp,const CSymbol *symbol_obj);
   bool                 CheckPriceByStopLevel(const ENUM_ORDER_TYPE order_type,const double price,const CSymbol *symbol_obj,const double limit=0);


y en las líneas 155 - 181 hacer los siguientes cambios :


y en las líneas 155 - 181 haga ediciones similares:
//--- Devuelve el método de tratamiento de errores
   ENUM_ERROR_CODE_PROCESSING_METHOD   ResultProccessingMethod(const uint result_code);
//--- Corrección de errores
   ENUM_ERROR_CODE_PROCESSING_METHOD   RequestErrorsCorrecting(MqlTradeRequest &request,const ENUM_ORDER_TYPE order_type,const uint spread_multiplier,CSymbol *symbol_obj,CTradeObj *trade_obj);

protected:
//--- (1) Abre una posición, (2) establece una orden pendiente
   template<typename SL,typename TP> 
   bool                 OpenPosition(const ENUM_POSITION_TYPE type,
                                    const double volume,
                                    const string symbol,
                                    const ulong magic=ULONG_MAX,
                                    const SL sl=0,
                                    const TP tp=0,
                                    const string comment=NULL,
                                    const ulong deviation=ULONG_MAX,
                                    const ENUM_ORDER_TYPE_FILLING type_filling=WRONG_VALUE);
   template<typename PR,typename PL,typename SL,typename TP>
   bool                 PlaceOrder( const ENUM_ORDER_TYPE order_type,
                                    const double volume,
                                    const string symbol,
                                    const PR price,
                                    const PL price_limit=0,
                                    const SL sl=0,
                                    const TP tp=0,
                                    const ulong magic=ULONG_MAX,
                                    const string comment=NULL,
                                    const datetime expiration=0,
                                    const ENUM_ORDER_TYPE_TIME type_time=WRONG_VALUE,
                                    const ENUM_ORDER_TYPE_FILLING type_filling=WRONG_VALUE);

private:
//--- Devuelve el índice del objeto de consulta en la lista por (1) identificador,
//--- (2) billete de pedido, (3) billete de solicitud de posición
   int                  GetIndexPendingRequestByID(const uchar id);
   int                  GetIndexPendingRequestByOrder(const ulong ticket);
   int                  GetIndexPendingRequestByPosition(const ulong ticket);

public:

Después de eso todo se compilará.

El archivo corregido se adjunta a este post.


Después de eso, todo va a compilar.

El archivo corregido se adjunta a este post.

Archivos adjuntos:
Trading.mqh  448 kb