Diskussion zum Artikel "Andere Klassen in der Bibliothek DoEasy (Teil 66): MQL5.com die Kollektionsklasse der Signale"

 

Neuer Artikel Andere Klassen in der Bibliothek DoEasy (Teil 66): MQL5.com die Kollektionsklasse der Signale :

In diesem Artikel werde ich die Kollektionsklasse der Signale des MQL5.com Signals-Dienstes mit den Funktionen zur Verwaltung von Signalen erstellen. Außerdem werde ich die Schnappschuss-Objektklasse der Markttiefe (Depth of Market, DOM) verbessern, um das gesamte Kauf- und Verkaufsvolumen im DOM anzuzeigen.

Kompilieren Sie den EA und starten Sie ihn auf einem Symboldiagramm, während Sie vorher einstellen, dass er auf dem aktuellen Symbol/Zeitrahmen arbeitet und die Flagge für die Arbeit mit Handelssignalen des MQL5.com Signalservice aktivieren:


Aktivieren Sie auf der Registerkarte die Optione "Allow modification of Signals settings" (Änderungen der Signaleinstellungen erlauben"):


Andernfalls kann der EA nicht mit den MQL5.com Signals arbeiten.

Nach dem Start des EA zeigt das Journal die Meldung über die erfolgreiche Erstellung der Signalsammlung und deren Kurzbeschreibung an:

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

 

Warum ist das Tag "Handelssysteme" in der Rubrik "Artikel"? Hier gibt es keine TCs

Der gesamte Bereich "Handelssysteme" ist voll von Ihren Artikeln, zusammenfassend

 
Maxim Dmitrievsky:

Warum ist das Tag "Handelssysteme" in der Rubrik "Artikel"? Hier gibt es keine TCs.

Der gesamte Bereich "Handelssysteme" ist voll von Ihren Artikeln, zusammenfassend

Weil die Bibliothek speziell für die Erstellung von Handelssystemen erstellt wurde.

 
Artyom Trishkin:

Denn die Bibliothek ist speziell für die Erstellung von Handelssystemen konzipiert.

gibt es hier einen logischen Widerspruch

 
Maxim Dmitrievsky:

gibt es einen gewissen logischen Widerspruch

Ja. Es ist wie das Problem mit dem Huhn und dem Ei.
 
 
Es tut mir sehr leid, dass ich wieder etwas getan habe, was ich nicht hätte tun sollen, und ich bereue es.
Meine eigene Unwissenheit
Bitte vergib mir, dass ich die Menschen um mich herum mit meinen Taten belastet habe, es tut mir leid.



 
Hallo Sir, ich chatte mit Ihnen auf WhatsApp
 
Lovely Raja :
Hallo Sir, ich chatte mit Ihnen auf WhatsApp

Ich kommuniziere nicht über WhatsApp

 

Boa noite!

Saudações aqui do 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 #:

Boa noite!

Saudações aqui do 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.

In Trading.mqh müssen Sie einige Methoden in den geschützten Bereich verschieben, damit sie von abgeleiteten Klassen aufgerufen werden können. Jetzt befinden sie sich im privaten Bereich der Klasse. Ich habe diesen Fehler aus Unachtsamkeit gemacht, aber der alte Compiler hat ihn übersehen. Nach der Aktualisierung des Terminals wurde dieser Fehler entdeckt.

In den Zeilen 84 - 89 der Datei Trading.mqh sollten Sie die folgenden Änderungen vornehmen:


In der Datei Trading.mqh müssen einige Methoden in einen geschützten Bereich verschoben werden, damit sie von abgeleiteten Klassen aufgerufen werden können. Jetzt befinden sie sich im privaten Bereich der Klasse. Dieser Fehler wurde von mir versehentlich gemacht, aber der alte Compiler hat ihn übersehen. Nach der Aktualisierung des Terminals wurde dieser Fehler erkannt.

In den Zeilen 84 - 89 der Datei Trading.mqh müssen Sie die folgenden Änderungen vornehmen:

//--- Gibt die Auftragsrichtung nach Vorgangsart zurück
   ENUM_ORDER_TYPE      DirectionByActionType(const ENUM_ACTION_TYPE action)  const;
//--- Setzt das Handelsobjekt auf den gewünschten Ton
   void                 SetSoundByMode(const ENUM_MODE_SET_SOUND mode,const ENUM_ORDER_TYPE action,const string sound,CTradeObj *trade_obj);

protected:
//--- Legt die Preise für Handelsanfragen fest
   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:
//--- Liefert das Flag für die Prüfung der Zulässigkeit anhand des Abstands von (1) StopLoss, (2) TakeProfit, (3) des Ordersetzungspreises vom StopLevel-Preis
   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);


und in den Zeilen 155 - 181 nehmen Sie die folgenden Änderungen vor :


und in den Zeilen 155 - 181 ähnliche Änderungen vornehmen:
//--- Gibt die Fehlerbehandlungsmethode zurück
   ENUM_ERROR_CODE_PROCESSING_METHOD   ResultProccessingMethod(const uint result_code);
//--- Fehlerkorrektur
   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) Eröffnet eine Position, (2) setzt einen schwebenden Auftrag
   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:
//--- Gibt den Index des Abfrageobjekts in der Liste nach (1) Bezeichner zurück,
//--- (2) Bestellschein, (3) Anforderungspositionsschein
   int                  GetIndexPendingRequestByID(const uchar id);
   int                  GetIndexPendingRequestByOrder(const ulong ticket);
   int                  GetIndexPendingRequestByPosition(const ulong ticket);

public:

Danach wird alles kompiliert.

Die korrigierte Datei ist an diesen Beitrag angehängt.


Danach wird alles kompiliert.

Die korrigierte Datei ist an diesen Beitrag angehängt.

Dateien:
Trading.mqh  448 kb