Scalper Nocturno Multi: Tu Asistente de Trading en MetaTrader 5

Mike 2017.01.18 18:24 52 0 0
Archivos adjuntos

El Scalper Nocturno Multi es un asistente de trading que opera en múltiples divisas hasta la medianoche (0 am) hora del terminal. Su estrategia se basa en un rango estrecho (r), determinado con el indicador de Bollinger Bands.

BBHandle=iBands(symb,0,per,0,dev,0);
   CopyBuffer(BBHandle,1,0,1,up);
   CopyBuffer(BBHandle,2,0,1,dn);

   double r=up[0]-dn[0];

La posición se abre después de la hora especificada en Inicio, y solo si no hay posiciones abiertas en el símbolo.

if(CountTrades(symb)<1 && TimeCurrent()>StringToTime(s))

Compra si el precio es menor que el límite inferior de Bollinger Bands y el rango es menor que el especificado en la variable Razmah.

if(Ask<dn[0] && r<razmah*_Point) trade.PositionOpen(symb,0,Lot,Ask,Ask-stop*_Point,Ask+take*_Point);

Vende si el precio está por encima del límite superior de Bollinger Bands y el rango es menor que el especificado en la variable Razmah.

if(Bid>up[0] && r<razmah*_Point) trade.PositionOpen(symb,1,Lot,Bid,Bid+stop*_Point,Bid-take*_Point);

Las posiciones se cierran mediante stop losses o se forzan a cerrar después de la medianoche.

elseif(CountTrades(symb)>0 && TimeCurrent()<StringToTime(s)) CloseAll(symb);

Las operaciones de trading se realizan utilizando la función SymbolTrade y la clase СTrade:

void SymbolTrade(string symb,int stop,int take,int per,double dev,double razmah,int start)
  {
   string s=(string)start+":00";
   doubleAsk=SymbolInfoDouble(symb,SYMBOL_ASK);
   doubleBid=SymbolInfoDouble(symb,SYMBOL_BID);

   BBHandle=iBands(symb,0,per,0,dev,0);
   CopyBuffer(BBHandle,1,0,1,up);
   CopyBuffer(BBHandle,2,0,1,dn);

   double r=up[0]-dn[0];

   if(CountTrades(symb)<1 && TimeCurrent()>StringToTime(s))
     {
      if(Ask<dn[0] && r<razmah*_Point) trade.PositionOpen(symb,0,Lot,Ask,Ask-stop*_Point,Ask+take*_Point);
      if(Bid>up[0] && r<razmah*_Point) trade.PositionOpen(symb,1,Lot,Bid,Bid+stop*_Point,Bid-take*_Point);
     }
   elseif(CountTrades(symb)>0 && TimeCurrent()<StringToTime(s)) CloseAll(symb);
  }

Las operaciones se ejecutan en una nueva barra.

if(bars!=Bars(NULL,0))
     {
      if(Symbol1!="") SymbolTrade(Symbol1,StopLoss1,TakeProfit1,BBPeriod1,BBDev1,Razmah1,Start1);
      if(Symbol2!="") SymbolTrade(Symbol2,StopLoss2,TakeProfit2,BBPeriod2,BBDev2,Razmah2,Start2);
      if(Symbol3!="") SymbolTrade(Symbol3,StopLoss3,TakeProfit3,BBPeriod3,BBDev3,Razmah3,Start3);
        ...
     }
   bars=Bars(NULL,0);

Configuraciones:

inputstring Symbol1     = "USDCAD";       // Nombre del Símbolo 1inputint    StopLoss1   = 370;            // StopLoss 1inputint    TakeProfit1 = 20;             // TakeProfit 1inputint    BBPeriod1   = 40;             // Periodo de Bands 1inputdouble BBDev1      = 1;              // Desviación de Bands 1inputdouble Razmah1     = 450;            // Desviación de Bands 1 en Puntosinputint    Start1      = 19;             // Hora de Inicio 1inputstring Symbol2     = "GBPUSD";       // Nombre del Símbolo 2inputint    StopLoss2   = 450;            // StopLoss 2inputint    TakeProfit2 = 80;             // TakeProfit 2inputint    BBPeriod2   = 8;              // Periodo de Bands 2inputdouble BBDev2      = 1;              // Desviación de Bands 2inputdouble Razmah2     = 200;            // Desviación de Bands 2 en Puntosinputint    Start2      = 20;             // Hora de Inicio 2inputstring Symbol3     = "NZDUSD";       // Nombre del Símbolo 3inputint    StopLoss3   = 410;            // StopLoss 3inputint    TakeProfit3 = 40;             // TakeProfit 3inputint    BBPeriod3   = 4;              // Periodo de Bands 3inputdouble BBDev3      = 1.2;            // Desviación de Bands 3inputdouble Razmah3     = 450;            // Desviación de Bands 3 en Puntosinputint    Start3      = 19;             // Hora de Inicio 3inputstring Symbol4     = "";             // Nombre del Símbolo 4inputint    StopLoss4   = 500;            // StopLoss 4inputint    TakeProfit4 = 40;             // TakeProfit 4inputint    BBPeriod4   = 24;             // Periodo de Bands 4inputdouble BBDev4      = 1;              // Desviación de Bands 4inputdouble Razmah4     = 200;            // Desviación de Bands 4 en Puntosinputint    Start4      = 20;             // Hora de Inicio 4inputstring Symbol5     = "";             // Nombre del Símbolo 5inputint    StopLoss5   = 500;            // StopLoss 5inputint    TakeProfit5 = 40;             // TakeProfit 5inputint    BBPeriod5   = 24;             // Periodo de Bands 5inputdouble BBDev5      = 1;              // Desviación de Bands 5inputdouble Razmah5     = 200;            // Desviación de Bands 5 en Puntosinputint    Start5      = 20;             // Hora de Inicio 5inputstring Symbol6     = "";             // Nombre del Símbolo 6inputint    StopLoss6   = 500;            // StopLoss 6inputint    TakeProfit6 = 40;             // TakeProfit 6inputint    BBPeriod6   = 24;             // Periodo de Bands 6inputdouble BBDev6      = 1;              // Desviación de Bands 6inputdouble Razmah6     = 200;            // Desviación de Bands 6 en Puntosinputint    Start6      = 20;             // Hora de Inicio 6inputstring Symbol7     = "";             // Nombre del Símbolo 7inputint    StopLoss7   = 500;            // StopLoss 7inputint    TakeProfit7 = 40;             // TakeProfit 7inputint    BBPeriod7   = 24;             // Periodo de Bands 7inputdouble BBDev7      = 1;              // Desviación de Bands 7inputdouble Razmah7     = 200;            // Desviación de Bands 7 en Puntosinputint    Start7      = 20;             // Hora de Inicio 7inputstring Symbol8     = "";             // Nombre del Símbolo 8inputint    StopLoss8   = 500;            // StopLoss 8inputint    TakeProfit8 = 40;             // TakeProfit 8inputint    BBPeriod8   = 24;             // Periodo de Bands 8inputdouble BBDev8      = 1;              // Desviación de Bands 8inputdouble Razmah8     = 200;            // Desviación de Bands 8 en Puntosinputint    Start8      = 20;             // Hora de Inicio 8inputstring Symbol9     = "";             // Nombre del Símbolo 9inputint    StopLoss9   = 500;            // StopLoss 9inputint    TakeProfit9 = 40;             // TakeProfit 9inputint    BBPeriod9   = 24;             // Periodo de Bands 9inputdouble BBDev9      = 1              // Desviación de Bands 9inputdouble Razmah9     = 200            // Desviación de Bands 9 en Puntosinputint    Start9      = 20             // Hora de Inicio 9inputdouble Lot         = 1              // Volumen de Trade

Fig1. Resultado del trading del EA. EURUSD, H1

Fig.2. Operaciones del EA en el diario

Fig.3. Resultados del trading del EA y optimización del 11.01.2016 al 13.09.2016. USDCAD, GBPUSD, NZDUSD, H1

Consejos:

  • Se recomienda usar el EA como asistente de trading y para desarrollar tus propias estrategias.
Lista
Comentarios 0