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
- Señales de Trading con Patrón Hammer/Hanging Man y Estocástico en MetaTrader 5
- Cómo Crear un Asesor Experto con MQL5: Señales de Trading Basadas en Estrellas y Estocástico
- Crea tu Asesor Experto con MQL5: Señales de Trading Basadas en Harami y Estocástico
- Crea tu Asesor Experto: Señales de Trading con Líneas de Reunión y Estocástico en MQL5
- Crea tu Asesor Experto con MQL5: Señales de Trading Basadas en Dark Cloud Cover y Piercing Line