Diskussion zum Artikel "Der MQL5-Assistent: Wie man einem EA beibringt, einen bedingten Auftrag (Pending Order) eines beliebigen Preises zu platzieren" - Seite 2

 

hallo vladimir,


Ich mag diesen Artikel, ist es möglich, einen EA zu schreiben, die nur schwebende Aufträge verwendet, um Trades mit einem anderen Indikator zu öffnen. zum Beispiel, wenn der Preis in eine Richtung um 5 bewegt es löst einen Kauf oder Verkauf unabhängig.

 
Tafadzwa Nyamwanza :

hallo vladimir,


ich mag diesen Artikel, ist es möglich, einen EA zu schreiben, der nur Pending Orders verwendet, um Trades mit einem anderen Indikator zu öffnen. z.B. wenn sich der Preis in eine Richtung um 5 bewegt, löst er unabhängig davon einen Kauf oder Verkauf aus.

Sind Sie sicher, dass Ihre Frage bezieht sich auf einen Artikel MQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Price?

 
Hallo Vladimir.

Ich weiß, dass es in diesem Artikel um Pending Orders geht, aber wie programmierst du deinen EA, um eine Market Order zu öffnen?

 
Ayanda Mhlauli:
Hallo Wladimir.

Ich weiß, dass es in diesem Artikel um Pending Orders geht, aber wie programmierst du deinen EA, um eine Market Order zu öffnen?

input double             Signal_PriceLevel         =0.0;         // Preisniveau für die Ausführung eines Geschäfts
 
Wäre es nicht ausreichend, PriceLevel() direkt im Signalgenerator aufzurufen, warum müssen Sie den *Signalzeiger an den Signalgenerator übergeben?
 

Hallo @Vladimir Karputov -- das war ein sehr lehrreicher Artikel, danke dafür!

Ich persönlich finde dieses OOP-Framework in MQL5 recht interessant für den Aufbau von Bots durch die Zusammenstellung von Objekten, die Experten, Signale, Filter, Indikatoren, Risikomanager usw. darstellen -- meiner Meinung nach ein sehr eleganter Ansatz, da er die Wiederverwendung von Code und die Erweiterbarkeit begünstigt, ohne anscheinend viel Leistung zu opfern... allerdings scheint die Lernkurve aufgrund seiner Komplexität ziemlich steil zu sein.

Da ich ausschließlich auf MQL5 umsteige und gute Erfahrungen mit OOP-Konzepten/Sprachen habe, bin ich jedenfalls sehr daran interessiert, es für meinen eigenen Gebrauch beim Prototyping neuer Handelsideen und der Entwicklung von Handelssystemen zu adaptieren. Ich habe den Code der Bibliothek studiert und mit ihm gespielt und wollte wissen, welche Vorgehensweise Sie für die folgenden Fälle empfehlen:

FRAGE: Wie würden Sie einen Trendfilter für die im Experten empfangenen Signale integrieren?

Die Bibliothek enthält die Eigenschaft CExpertBase::m_trend_type, aber leider wird sie in den mit der Plattform gelieferten Beispielen nirgends wirklich verwendet. Ich bin zwischen zwei Gestaltungsmöglichkeiten hin- und hergerissen... Hinzufügen eines Trend-Filterungsobjekt direkt in meiner Unterklasse von CExpert (siehe Codeschnipsel unten), was mehr Kontrolle über Handelsentscheidungen auf der Ebene des Experten bieten könnte. Eine andere Möglichkeit, das Problem zu lösen, könnte darin bestehen, mit den Filtern meines Hauptsignalobjekts zu fummeln und irgendwie den Trend zu berechnen und eine Entscheidung innerhalb meiner Unterklasse von CSignalExpert zu treffen, z. B. innerhalb von CSignalWithTrendFilter::Direction(). Ich bin mir noch nicht ganz sicher, was die Vor- und Nachteile der einen Methode gegenüber der anderen sind, und welche mir mehr Flexibilität für die Anforderungen meiner zukünftigen Projekte bietet, d.h. mehr Code-Wiederverwendung ohne Komplikationen und weniger Anpassungen meiner Basisklassen.

class CExpertWithTrendFilter : public CExpert
{
protected:
   CExpertSignal    *m_trend;   // parallel zu CExpert::m_signal arbeiten, um die von ihm erzeugten Signale zu filtern
// ...
   virtual bool      Processing(void);
   virtual bool      CheckOpen(void);
// ...
};

bool CExpertWithTrendFilter::Processing(void)
{
   CExpertBase::m_trend_type = (ENUM_TYPE_TREND) m_trend.Direction();   // Bestimmung des aktuellen Trends anhand eines von CExpertSignal abgeleiteten Spezialobjekts
   
   m_signal.TrendType(m_trend_type);             // Übergabe des Trendtyps/der Trendstärke als Eingabe an m_signal, ebenfalls eine Unterklasse von CExpertSignal
   m_signal.SetDirection();                      // OPTION #1 >>> Signalrichtung berechnen, eventuell unter Berücksichtigung des oben ermittelten Trends (oder auch nicht)

// ...

   if(CheckOpen())                               // OPTION #2 >>> alternativ kann der Trendtyp/die Trendstärke von einem Experten geprüft werden, bevor eine Long- oder Shortposition eröffnet wird
      return(true);

   retun(false);                                 // Rückkehr ohne weitere Operationen
}

bool CExpertWithTrendFilter::CheckOpen(void)
{
   if(m_trend_type > TYPE_TREND_FLAT && CheckOpenLong())    // Erlaubt nur die Eröffnung einer Longposition, wenn die Trendfilterrichtung übereinstimmt
      return(true);
   if(m_trend_type < TYPE_TREND_FLAT && CheckOpenShort())   // Erlaube nur die Eröffnung eines Shorts, wenn die Richtung des Trendfilters übereinstimmt
      return(true);

   return(false);                                // Rückkehr ohne weitere Operationen
}

Vielen Dank im Voraus für Ihre Hilfe und Empfehlungen.

 
Ich habe schon vor langer Zeit auf meine Trading Engine umgestellt . Ein Versuch, einen EA-Konstruktor zu entwickeln - er ist flexibler.
An attempt at developing an EA constructor
An attempt at developing an EA constructor
  • www.mql5.com
In this article, I offer my set of trading functions in the form of a ready-made EA. This method allows getting multiple trading strategies by simply adding indicators and changing inputs.
 
Vladimir Karputov #:
Ich habe vor langer Zeit zu meiner Trading Engine gewechselt Ein Versuch, einen EA-Konstruktor zu entwickeln - er ist flexibler.

OK, ich verstehe - ich lese den Artikel und werde mir den beigefügten Code ansehen... auf jeden Fall würde ich mich über Ihren Kommentar/Meinung zu der obigen Frage freuen, wenn es Ihnen nichts ausmacht. Herzlichen Dank!

 
Dima Diall # :

OK, ich verstehe - ich lese den Artikel und werde mir den beigefügten Code ansehen... auf jeden Fall würde ich mich über Ihren Kommentar/Meinung zu der obigen Frage freuen, wenn es Ihnen nichts ausmacht. Herzlichen Dank!

CExpertSignal ist die Vergangenheit. Keine Kommentare.

 
Vladimir Karputov #:

CExpertSignal ist die Vergangenheit. Keine Kommentare.

:-)