Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 2464
- Ranking:
- Publicado:
- 2016.10.18 16:05
- Actualizado:
- 2016.11.22 07:33
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
El scalper multidivisa nocturno Night Scalper Multi comercia hasta las 12 de la noche en un diapasón estrecho (r), definido por el indicador 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 indicada con la variable Start, y cuando no hay posiciones abiertas del símbolo.
if(CountTrades(symb)<1 && TimeCurrent()>StringToTime(s))
Compramos si el precio es inferior al límite inferior de Bollinger Bands y el canal es menor al diapasón indicado en la variable Razmah.
if(Ask<dn[0] && r<razmah*_Point) trade.PositionOpen(symb,0,Lot,Ask,Ask-stop*_Point,Ask+take*_Point);
Vendemos si el precio es superior al límite superior de Bollinger Bands y el canal es menor al diapasón indicado en la variable Razmah.
if(Bid>up[0] && r<razmah*_Point) trade.PositionOpen(symb,1,Lot,Bid,Bid+stop*_Point,Bid-take*_Point);
El cierre de posición tiene lugar por stops o de forma forzosa después de las 12 de la noche.
else if(CountTrades(symb)>0 && TimeCurrent()<StringToTime(s)) CloseAll(symb);
Comerciamos con la ayuda de la función SymbolTrade y usamos 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 comerciales se realizan en la 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);
Ajustes:
input string Symbol1 = "USDCAD"; // Symbol1 Name input int StopLoss1 = 370; // StopLoss1 input int TakeProfit1 = 20; // TakeProfit1 input int BBPeriod1 = 40; // Bands Period1 input double BBDev1 = 1; // Bands Deviation1 input double Razmah1 = 450; // Bands Deviation1 in Points input int Start1 = 19; // Start Time1 input string Symbol2 = "GBPUSD"; // Symbol2 Name input int StopLoss2 = 450; // StopLoss2 input int TakeProfit2 = 80; // TakeProfit2 input int BBPeriod2 = 8; // Bands Period2 input double BBDev2 = 1; // Bands Deviation2 input double Razmah2 = 200; // Bands Deviation2 in Points input int Start2 = 20; // Start Time2 input string Symbol3 = "NZDUSD"; // Symbol3 Name input int StopLoss3 = 410; // StopLoss3 input int TakeProfit3 = 40; // TakeProfit3 input int BBPeriod3 = 4; // Bands Period3 input double BBDev3 = 1.2; // Bands Deviation3 input double Razmah3 = 450; // Bands Deviation3 in Points input int Start3 = 19; // Start Time3 input string Symbol4 = ""; // Symbol4 Name input int StopLoss4 = 500; // StopLoss4 input int TakeProfit4 = 40; // TakeProfit4 input int BBPeriod4 = 24; // Bands Period4 input double BBDev4 = 1; // Bands Deviation4 input double Razmah4 = 200; // Bands Deviation4 in Points input int Start4 = 20; // Start Time4 input string Symbol5 = ""; // Symbol5 Name input int StopLoss5 = 500; // StopLoss5 input int TakeProfit5 = 40; // TakeProfit5 input int BBPeriod5 = 24; // Bands Period5 input double BBDev5 = 1; // Bands Deviation5 input double Razmah5 = 200; // Bands Deviation5 in Points input int Start5 = 20; // Start Time5 input string Symbol6 = ""; // Symbol6 Name input int StopLoss6 = 500; // StopLoss6 input int TakeProfit6 = 40; // TakeProfit6 input int BBPeriod6 = 24; // Bands Period6 input double BBDev6 = 1; // Bands Deviation6 input double Razmah6 = 200; // Bands Deviation6 in Points input int Start6 = 20; // Start Time6 input string Symbol7 = ""; // Symbol7 Name input int StopLoss7 = 500; // StopLoss7 input int TakeProfit7 = 40; // TakeProfit7 input int BBPeriod7 = 24; // Bands Period7 input double BBDev7 = 1; // Bands Deviation7 input double Razmah7 = 200; // Bands Deviation7 in Points input int Start7 = 20; // Start Time7 input string Symbol8 = ""; // Symbol8 Name input int StopLoss8 = 500; // StopLoss8 input int TakeProfit8 = 40; // TakeProfit8 input int BBPeriod8 = 24; // Bands Period8 input double BBDev8 = 1; // Bands Deviation8 input double Razmah8 = 200; // Bands Deviation8 in Points input int Start8 = 20; // Start Time8 input string Symbol9 = ""; // Symbol9 Name input int StopLoss9 = 500; // StopLoss9 input int TakeProfit9 = 40; // TakeProfit9 input int BBPeriod9 = 24; // Bands Period9 input double BBDev9 = 1; // Bands Deviation9 input double Razmah9 = 200; // Bands Deviation9 in Points input int Start9 = 20; // Start Time9 input double Lot = 1; // Trade Volume
Fig. 1. Resultados del comercio del experto. EURUSD, H1
Fig.2. Operaciones del experto en el diario de registro
Fig.3. Resultado del comercio y la optimzación del experto desde el 11.01.2016 al 13.09.2016. USDCAD, GBPUSD, NZDUSD, H1
Consejos:
- Se recomienda usar el asesor como ayudante en el comercio y para desarrollar sus propias estrategias.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/16350

El experto promedia las posiciones con pérdidas según un algoritmo definido.

Indicador XvaMA con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.

Indicador JSatl con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.

Indicador AFL_WinnerV2 con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.