Proffessor v3: Der ultimative Expert für MetaTrader 5

Mike 2018.10.26 00:30 17 0 0
Anhang

Der Autor der Idee: vitaly

MQL5-Code Autor: barabashkakvn

Die Handelsstrategie ist einfach. Eine BUY- oder SELL-Position wird eröffnet und durch einen ausstehenden Stop-Order in einem Abstand von Delta 1 geschützt. Dann wird ein Gitter aus Limit- oder Stop-Orders in einem Abstand von Delta 2 voneinander erstellt. Die Anzahl der ausstehenden Orders in jede Richtung wird in Max Lines festgelegt. Die ausstehenden Orders (Buy Limit, Sell Limit, Buy Stop und Sell Stop) werden über eine einzige PendingOrder-Funktion gesetzt, der der Ordertyp (order_type), das Volumen (volume), der Stop Loss (sl) und der Take Profit (tp) übergeben werden.

//+------------------------------------------------------------------+
//| Ausstehende Order                                                    |
//+------------------------------------------------------------------+
void PendingOrder(ENUM_ORDER_TYPE order_type,double volume,double price,double sl,double tp)
  {
   sl=m_symbol.NormalizePrice(sl);
   tp=m_symbol.NormalizePrice(tp);

   if(m_trade.OrderOpen(m_symbol.Name(),order_type,volume,0.0,
      m_symbol.NormalizePrice(price),m_symbol.NormalizePrice(sl),m_symbol.NormalizePrice(tp)))
     {
      if(m_trade.ResultOrder()==0)
        {
         Print("#1 ",EnumToString(order_type)," -> false. Ergebnis Retcode: ",m_trade.ResultRetcode(),
               ", Beschreibung des Ergebnisses: ",m_trade.ResultRetcodeDescription());
         PrintResultTrade(m_trade,m_symbol);
        }
      else
        {
         Print("#2 ",EnumToString(order_type)," -> true. Ergebnis Retcode: ",m_trade.ResultRetcode(),
               ", Beschreibung des Ergebnisses: ",m_trade.ResultRetcodeDescription());
         PrintResultTrade(m_trade,m_symbol);
        }
     }
   else
     {
      Print("#3 ",EnumToString(order_type)," -> false. Ergebnis Retcode: ",m_trade.ResultRetcode(),
            ", Beschreibung des Ergebnisses: ",m_trade.ResultRetcodeDescription());
      PrintResultTrade(m_trade,m_symbol);
     }
//---
  }

Beim Erreichen des Profit Close-Zielgewinns werden alle Positionen geschlossen und alle ausstehenden Orders entfernt. Du kannst auch alle Positionen schließen und ausstehende Orders löschen, wenn du mehr als Loss Close verlierst (wenn du Loss Close auf 0.0 setzt, wird der Parameter deaktiviert).

Die EA-Operation (Öffnen von Positionen und Setzen von Schutz-Orders) erfolgt innerhalb des Arbeitszeitraums von Startstunde bis Endstunde (Startstunde kann kleiner als Endstunde oder größer sein).


Hauptidee

Der ADX-Wert wird im Arbeitszeitrahmen analysiert. Wenn der ADX unter 40 liegt, wird dies als flach angesehen, und Limit-Orders werden platziert. Andernfalls werden Stop-Orders verwendet;

Wenn DI+ höher als DI- ist, kaufe, andernfalls verkaufe.


Die besten Optimierungsergebnisse der beiden Parameter (Current bar ADX von 0 bis 2, Schritt 1 und Arbeitszeitrahmen von M1 bis H1)

EURUSD, Current bar ADX 0, Arbeitszeitrahmen H1

Proffessor v3 EURUSD

USDJPY, Current bar ADX 2, Arbeitszeitrahmen M1

Proffessor v3 USDJPY


Im Fall von EURUSD, Current bar ADX 0, Arbeitszeitrahmen H1, aber der Loss Close-Parameter ist auf "0.0" gesetzt

Proffessor v3 EURUSD Loss Close 0

und USDJPY, Current bar ADX 2, Arbeitszeitrahmen M1, aber der Loss Close-Parameter ist auf "0.0" gesetzt

Proffessor v3 USDJPY Loss Close 0

    Liste
    Kommentar 0