Inicio Trading Sistemático Publicación

Scalper Nocturno Multi: Tu Asistente de Trading en MetaTrader 5

Archivos adjuntos
16350.zip (1.72 KB, Descargar 0 veces)

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.

else if(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";
   double Ask=SymbolInfoDouble(symb,SYMBOL_ASK);
   double Bid=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);
     }
   else if(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:

input string Symbol1     = "USDCAD";       // Nombre del Símbolo 1
input int    StopLoss1   = 370;            // StopLoss 1
input int    TakeProfit1 = 20;             // TakeProfit 1
input int    BBPeriod1   = 40;             // Periodo de Bands 1
input double BBDev1      = 1;              // Desviación de Bands 1
input double Razmah1     = 450;            // Desviación de Bands 1 en Puntos
input int    Start1      = 19;             // Hora de Inicio 1

input string Symbol2     = "GBPUSD";       // Nombre del Símbolo 2
input int    StopLoss2   = 450;            // StopLoss 2
input int    TakeProfit2 = 80;             // TakeProfit 2
input int    BBPeriod2   = 8;              // Periodo de Bands 2
input double BBDev2      = 1;              // Desviación de Bands 2
input double Razmah2     = 200;            // Desviación de Bands 2 en Puntos
input int    Start2      = 20;             // Hora de Inicio 2

input string Symbol3     = "NZDUSD";       // Nombre del Símbolo 3
input int    StopLoss3   = 410;            // StopLoss 3
input int    TakeProfit3 = 40;             // TakeProfit 3
input int    BBPeriod3   = 4;              // Periodo de Bands 3
input double BBDev3      = 1.2;            // Desviación de Bands 3
input double Razmah3     = 450;            // Desviación de Bands 3 en Puntos
input int    Start3      = 19;             // Hora de Inicio 3

input string Symbol4     = "";             // Nombre del Símbolo 4
input int    StopLoss4   = 500;            // StopLoss 4
input int    TakeProfit4 = 40;             // TakeProfit 4
input int    BBPeriod4   = 24;             // Periodo de Bands 4
input double BBDev4      = 1;              // Desviación de Bands 4
input double Razmah4     = 200;            // Desviación de Bands 4 en Puntos
input int    Start4      = 20;             // Hora de Inicio 4

input string Symbol5     = "";             // Nombre del Símbolo 5
input int    StopLoss5   = 500;            // StopLoss 5
input int    TakeProfit5 = 40;             // TakeProfit 5
input int    BBPeriod5   = 24;             // Periodo de Bands 5
input double BBDev5      = 1;              // Desviación de Bands 5
input double Razmah5     = 200;            // Desviación de Bands 5 en Puntos
input int    Start5      = 20;             // Hora de Inicio 5

input string Symbol6     = "";             // Nombre del Símbolo 6
input int    StopLoss6   = 500;            // StopLoss 6
input int    TakeProfit6 = 40;             // TakeProfit 6
input int    BBPeriod6   = 24;             // Periodo de Bands 6
input double BBDev6      = 1;              // Desviación de Bands 6
input double Razmah6     = 200;            // Desviación de Bands 6 en Puntos
input int    Start6      = 20;             // Hora de Inicio 6

input string Symbol7     = "";             // Nombre del Símbolo 7
input int    StopLoss7   = 500;            // StopLoss 7
input int    TakeProfit7 = 40;             // TakeProfit 7
input int    BBPeriod7   = 24;             // Periodo de Bands 7
input double BBDev7      = 1;              // Desviación de Bands 7
input double Razmah7     = 200;            // Desviación de Bands 7 en Puntos
input int    Start7      = 20;             // Hora de Inicio 7

input string Symbol8     = "";             // Nombre del Símbolo 8
input int    StopLoss8   = 500;            // StopLoss 8
input int    TakeProfit8 = 40;             // TakeProfit 8
input int    BBPeriod8   = 24;             // Periodo de Bands 8
input double BBDev8      = 1;              // Desviación de Bands 8
input double Razmah8     = 200;            // Desviación de Bands 8 en Puntos
input int    Start8      = 20;             // Hora de Inicio 8

input string Symbol9     = "";             // Nombre del Símbolo 9
input int    StopLoss9   = 500;            // StopLoss 9
input int    TakeProfit9 = 40;             // TakeProfit 9
input int    BBPeriod9   = 24;             // Periodo de Bands 9
input double BBDev9      = 1              // Desviación de Bands 9
input double Razmah9     = 200            // Desviación de Bands 9 en Puntos
input int    Start9      = 20             // Hora de Inicio 9

input double 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.

Publicaciones relacionadas

Comentarios (0)