Proffessor v3: Asesor Experto para MetaTrader 5

Mike 2018.10.26 00:30 14 0 0
Archivos adjuntos

Autor de la idea: vitaly

Autor del código MQL5: barabashkakvn

La estrategia de trading es bastante sencilla. Se abre una posición de COMPRA o VENTA y se protege con una orden de Stop pendiente a una distancia de Delta 1. Luego, se crea una cuadrícula compuesta por órdenes Limit o Stop pendientes a una distancia de Delta 2 entre sí. El número de órdenes pendientes en cada dirección se establece en Max Lines. Las órdenes pendientes (Buy Limit, Sell Limit, Buy Stop y Sell Stop) se configuran a través de una única función PendingOrder, a la que se le pasan el tipo de orden (order_type), volumen (volume), stop loss (sl) y take profit (tp).

//+------------------------------------------------------------------+
//| Orden pendiente                                                 |
//+------------------------------------------------------------------+
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. Result Retcode: ",m_trade.ResultRetcode(),
               ", descripción del resultado: ",m_trade.ResultRetcodeDescription());
         PrintResultTrade(m_trade,m_symbol);
        }
      else
        {
         Print("#2 ",EnumToString(order_type)," -> true. Result Retcode: ",m_trade.ResultRetcode(),
               ", descripción del resultado: ",m_trade.ResultRetcodeDescription());
         PrintResultTrade(m_trade,m_symbol);
        }
    }
  else
    {
      Print("#3 ",EnumToString(order_type)," -> false. Result Retcode: ",m_trade.ResultRetcode(),
            ", descripción del resultado: ",m_trade.ResultRetcodeDescription());
      PrintResultTrade(m_trade,m_symbol);
    }
//---
  }

Al alcanzar el objetivo de Cierre de Ganancia, se cierran todas las posiciones y se eliminan todas las órdenes pendientes. También puedes cerrar todas las posiciones y eliminar órdenes pendientes si pierdes más de Cierre de Pérdida (si configuras Cierre de Pérdida en 0.0, este parámetro se desactiva).

El funcionamiento del Asesor Experto (apertura de posiciones y configuración de órdenes pendientes protectoras) se lleva a cabo dentro del intervalo horario laboral, desde Hora de Inicio hasta Hora de Fin (la Hora de Inicio puede ser menor o mayor que la Hora de Fin).


Idea Principal

Analizando el valor del ADX en el marco de tiempo Work TimeFrame. Si el ADX está por debajo de 40, esto se considera una tendencia plana, y se colocan órdenes Limit pendientes. De lo contrario, se utilizan órdenes Stop pendientes;

Si DI+ es mayor que DI-, se compra; de lo contrario, se vende.


Los mejores resultados de optimización de los dos parámetros (ADX del Bar Actual de 0 a 2, paso de 1 y Work TimeFrame de M1 a H1).

EURUSD, ADX del Bar Actual 0, Work TimeFrame H1.

Proffessor v3 EURUSD

USDJPY, ADX del Bar Actual 2, Work TimeFrame M1.

Proffessor v3 USDJPY


En el caso de EURUSD, ADX del Bar Actual 0, Work TimeFrame H1, pero el parámetro Cierre de Pérdida está configurado a "0.0".

Proffessor v3 EURUSD Loss Close 0

Y USDJPY, ADX del Bar Actual 2, Work TimeFrame M1, pero el parámetro Cierre de Pérdida está configurado a "0.0".

Proffessor v3 USDJPY Loss Close 0

    Lista
    Comentarios 0