Mira cómo descargar robots gratis
¡Búscanos en Facebook!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Asesores Expertos

Steve Cartwright Trader Camel CCI MACD - Asesor Experto para MetaTrader 5

Publicado por:
Vladimir Karputov
Visualizaciones:
1195
Ranking:
(27)
Publicado:
2017.03.27 13:16
Actualizado:
2018.02.27 12:31
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Autor de la idea — John Smithautor del código mq5 — barabashkakvn

Los parámetros establecidos en el EA son para el símbolo USDJPY, período de tiempo H1.

Se utilizan dos МAs, una MACD y una CCI. OnTradeTransaction se utiliza para obtener la hora de la apertura de la posición.

Todos los valores de los indicadores se toman de la barra №1.

//--- Indicator Setup 
   CAMELHIGHP1=iMAGet(handle_iMA_PRICE_HIGH,1);
   CAMELLOWP1=iMAGet(handle_iMA_PRICE_LOW,1);
//
   MACDSP1=iMACDGet(SIGNAL_LINE,1);
   MACDSP2=iMACDGet(SIGNAL_LINE,2);
//
   MACDHP1=iMACDGet(MAIN_LINE,1);
   MACDHP2=iMACDGet(MAIN_LINE,2);
//
   CCIP1=iCCIGet(1);

Se realiza el control correspondiente: si la posición ya ha sido abierta en esta barra, no es necesario chequear todas las posiciones (porque otros EAs pueden trabajar en esta cuenta comercial).

La cuenta de la hora de la apertura se realiza en OnTradeTransaction. Si se detecta el momento del cierre de la posición, la hora de la apertura se resetea:

//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- get transaction type as enumeration value 
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in history
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      long     deal_entry        =0;
      long     deal_time         =0;
      string   deal_symbol       ="";
      long     deal_magic        =0;
      if(HistoryDealSelect(trans.deal))
        {
         deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_time=HistoryDealGetInteger(trans.deal,DEAL_TIME);
         deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);
         deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
        }
      else
         return;
      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
        {
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            m_last_close_time=(datetime)deal_time;
           }
         else if(deal_entry!=DEAL_ENTRY_OUT)
           {
            m_last_close_time=0;
           }
        }
     }
  }

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/17841

ColorXWPR_Histogram_HTF ColorXWPR_Histogram_HTF

El oscilador ColorXWPR_Histogram permite cambiar el período de tiempo del indicador en los parámetros de entrada.

VTS_Keltner VTS_Keltner

Indicador de tendencia VTS con el uso del canal de Keltner.

ColorKeltnerCandles ColorKeltnerCandles

Este indicador colorea las velas en diferentes colores dependiendo de la fuerza y la dirección de la tendencia, usando para eso los canales de Keltner.

SSL_HTF SSL_HTF

El indicador SSL permite cambiar el período de tiempo del indicador en los parámetros de entrada