Der Night Scalper Multi ist ein vielseitiger Nacht Scalper, der bis Mitternacht nach Terminalzeit innerhalb eines engen Bereichs (r) handelt, der mithilfe des Bollinger Bands Indikators bestimmt wird.
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];
Die Position wird nach der im Start-Parameter angegebenen Stunde eröffnet, sofern keine offenen Positionen für das Symbol bestehen.
if(CountTrades(symb)<1 && TimeCurrent()>StringToTime(s))
Kaufen, wenn der Preis unter der unteren Grenze der Bollinger Bands liegt und der Kanal kleiner ist als der im Razmah-Parameter angegebene Bereich.
if(Ask<dn[0] && r<razmah*_Point) trade.PositionOpen(symb,0,Lot,Ask,Ask-stop*_Point,Ask+take*_Point);
Verkaufen, wenn der Preis über der oberen Grenze der Bollinger Bands liegt und der Kanal kleiner ist als der im Razmah-Parameter angegebene Bereich.
if(Bid>up[0] && r<razmah*_Point) trade.PositionOpen(symb,1,Lot,Bid,Bid+stop*_Point,Bid-take*_Point);
Die Positionen werden durch Stop-Loss oder zwangsweise nach Mitternacht geschlossen.
elseif(CountTrades(symb)>0 && TimeCurrent()<StringToTime(s)) CloseAll(symb);
Der Handel erfolgt mithilfe der SymbolTrade-Funktion und verwendet die СTrade-Klasse:
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); }
Handelsoperationen werden auf neuen Balken ausgeführt.
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);
Einstellungen:
inputstring Symbol1 = "USDCAD"; // Symbol1 Nameinputint StopLoss1 = 370; // StopLoss1inputint TakeProfit1 = 20; // TakeProfit1inputint BBPeriod1 = 40; // Bands Period1inputdouble BBDev1 = 1; // Bands Deviation1inputdouble Razmah1 = 450; // Bands Deviation1 in Pointsinputint Start1 = 19; // Start Time1inputstring Symbol2 = "GBPUSD"; // Symbol2 Nameinputint StopLoss2 = 450; // StopLoss2inputint TakeProfit2 = 80; // TakeProfit2inputint BBPeriod2 = 8; // Bands Period2inputdouble BBDev2 = 1; // Bands Deviation2inputdouble Razmah2 = 200; // Bands Deviation2 in Pointsinputint Start2 = 20; // Start Time2inputstring Symbol3 = "NZDUSD"; // Symbol3 Nameinputint StopLoss3 = 410; // StopLoss3inputint TakeProfit3 = 40; // TakeProfit3inputint BBPeriod3 = 4; // Bands Period3inputdouble BBDev3 = 1.2; // Bands Deviation3inputdouble Razmah3 = 450; // Bands Deviation3 in Pointsinputint Start3 = 19; // Start Time3inputstring Symbol4 = ""; // Symbol4 Nameinputint StopLoss4 = 500; // StopLoss4inputint TakeProfit4 = 40; // TakeProfit4inputint BBPeriod4 = 24; // Bands Period4inputdouble BBDev4 = 1; // Bands Deviation4inputdouble Razmah4 = 200; // Bands Deviation4 in Pointsinputint Start4 = 20; // Start Time4inputstring Symbol5 = ""; // Symbol5 Nameinputint StopLoss5 = 500; // StopLoss5inputint TakeProfit5 = 40; // TakeProfit5inputint BBPeriod5 = 24; // Bands Period5inputdouble BBDev5 = 1; // Bands Deviation5inputdouble Razmah5 = 200; // Bands Deviation5 in Pointsinputint Start5 = 20; // Start Time5inputstring Symbol6 = ""; // Symbol6 Nameinputint StopLoss6 = 500; // StopLoss6inputint TakeProfit6 = 40; // TakeProfit6inputint BBPeriod6 = 24; // Bands Period6inputdouble BBDev6 = 1; // Bands Deviation6inputdouble Razmah6 = 200; // Bands Deviation6 in Pointsinputint Start6 = 20; // Start Time6inputstring Symbol7 = ""; // Symbol7 Nameinputint StopLoss7 = 500; // StopLoss7inputint TakeProfit7 = 40; // TakeProfit7inputint BBPeriod7 = 24; // Bands Period7inputdouble BBDev7 = 1; // Bands Deviation7inputdouble Razmah7 = 200; // Bands Deviation7 in Pointsinputint Start7 = 20; // Start Time7inputstring Symbol8 = ""; // Symbol8 Nameinputint StopLoss8 = 500; // StopLoss8inputint TakeProfit8 = 40; // TakeProfit8inputint BBPeriod8 = 24; // Bands Period8inputdouble BBDev8 = 1; // Bands Deviation8inputdouble Razmah8 = 200; // Bands Deviation8 in Pointsinputint Start8 = 20; // Start Time8inputstring Symbol9 = ""; // Symbol9 Nameinputint StopLoss9 = 500; // StopLoss9inputint TakeProfit9 = 40; // TakeProfit9inputint BBPeriod9 = 24; // Bands Period9inputdouble BBDev9 = 1; // Bands Deviation9inputdouble Razmah9 = 200; // Bands Deviation9 in Pointsinputint Start9 = 20; // Start Time9inputdouble Lot = 1; // Handelsvolumen

Abb.1. Das Ergebnis des EA Handels. EURUSD, H1

Abb.2. Geschäfte des EA im Journal

Abb.3. Ergebnisse des EA Handels und Optimierung vom 11.01.2016 bis 13.09.2016. USDCAD, GBPUSD, NZDUSD, H1
Tipps:
- Der EA wird empfohlen, um als Handelsassistent zu fungieren und eigene Strategien zu entwickeln.

Kommentar 0