Multi-Währungs-Nacht Scalper: Der Night Scalper Multi für MetaTrader 5

Mike 2017.01.18 18:24 47 0 0
Anhang

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.
Liste
Kommentar 0