und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
Long Short only EA basierend auf CExpert - Experte für den MetaTrader 5
- Ansichten:
- 1286
- Rating:
- Veröffentlicht:
- 2016.05.18 15:05
- Aktualisiert:
- 2016.11.22 07:34
- Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Der vorliegende Expert Advisor erlaubt es nur Long/Short-Aufträge (oder beide) auf Basis der CExpertKlasse zu eröffnen.
Es werden zwei verschiedene Dateien zur Verfügung gestellt:
- LongShortExpertModified.mqh: Diese Klasse erweitert dei StandardCExpert indem die CheckOpen() und CheckReverse() Methoden verändert wurden, sodass nur die gewünschten Aufträge geöffnet werden können;
- LongShortExpertMACD.mq5: Dieser EA eine eine einfache Modifikation der eingebetteten ExpertMACD.mq5 Klasse, einschließlich des entwickelten, modifizierten Experts, um nur die passend zu den gewählten Eingabeparametern gewünschten Auftragstypen zu erlauben und wird zur Verfügung gestellt, um die Verwendung des Experten zu verdeutlichen.
LongShortExpertModified
Diese Klasse modifiziert das Verhalten der Standard CExpert Klasse, indem es nur Aufträge eines bestimmten Typs erlaubt - und zwar folgende laut enum:
enum ENUM_AVAILABLE_POSITIONS
{
LONG_POSITION,
SHORT_POSITION,
BOTH_POSITION
};
Diese Enumeration wird als Eingabeparameter für den endgültigen EA verwendet, um festzulegen, welche Art von Aufträgen erlaubt wird und wird intern verwendet, um nur die gewünschten Aufträge zu eröffnen und Auftragsumkehrungen nur dann zu verarbeiten, wenn beide Typen erlaubt sind (BOTH_POSITION enum Wert).
Um das zu erreichen, wurden die CheckOpen() und CheckReverse() Methoden umgeschrieben:
class CLongShortExpertModified : public CExpert { protected: ENUM_AVAILABLE_POSITIONS m_positions; public: CLongShortExpertModified(void); ~CLongShortExpertModified(void); virtual bool CheckOpen(void); virtual bool CheckReverse(void); void SetAvailablePositions(ENUM_AVAILABLE_POSITIONS newValue){m_positions=newValue;}; };
CheckOpen() wurde modifiziert, sodass nur Long oder Short Positionen entsprechend dem m_positions Wert geprüft werden:
bool CLongShortExpertModified :: CheckOpen() { switch(m_positions) { case LONG_POSITION: return CheckOpenLong(); //prüfen nur neue Longpositionen case SHORT_POSITION: return CheckOpenShort(); //prüfe nur neue Shortpositionen default: return CExpert::CheckOpen(); //Standardverhalten } }
CheckReverse() wurde modifiziert um nur dann eine Positionsumkehr zu prüfen, wenn beide Positionstypen erlaubt sind:
bool CLongShortExpertModified::CheckReverse() { switch(m_positions) { case LONG_POSITION: case SHORT_POSITION: return false; // keine Umkehr erlaubt default: return CExpert::CheckReverse(); //Standardverhalten } }
LongShortExpertMACD
Diese Klasse stellt ein Beispiel für die Verwendung der vorherigen Klasse in einem spezifischen EA dar, basierend auf dem Standard ExpertMACD EA, der in der MQL5 Distribution enthalten ist.
Zuerst muss die konkrete Expert-Klasse eingebunden und der korrespondierende Eingabeparameter hinzugefügt werden. Außerdem wird der externe Expert mit der Subklasse statt dem Standard CExpert verknüpft:
#include <Expert\LongShortExpertModified.mqh> //[...] input ENUM_AVAILABLE_POSITIONS Inp_Allowed_Positions=BOTH_POSITION; //short / long / beide Positionen erlaubt //[...] CLongShortExpertModified ExtExpert; //spezifisch entworfene CExpert Subklasse
Nach der Initialisierung des Expert muss der Parameter dem Eingabewert entsprechend gesetzt werden:
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber)) { //--- fehlgeschlagen printf(__FUNCTION__+": Fehler beim Initialisieren des Expert"); ExtExpert.Deinit(); return(-1); } // Specifischer Parameter, der steuert, welche Positionen erlaubt sind ExtExpert.SetAvailablePositions(Inp_Allowed_Positions);
Es sind keine weiteren Änderungen notwendig. Die folgende Abbildung zeigt die Konfigurationsparameter für den Expert:
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/1896
Der Commentator Indikator analysiert eine Gruppe von technischen Indikatoren und zeigt Informationen über den aktuellen Zustand des Marktes und Handelsempfehlungen an.
Mercado AbertoEinfacher Indikator der anzeigt, wann der Markt geöffnet ist.
Digitales Momentum in Form von kolorierten Buchstaben.
i-PassLevCCI_v.1.3Eine Datenstruktur mit einem Signalindikator gezeichnet auf Basis des Commodity Chanel Index Oszillator.