Scalper Malam Multi adalah sistem trading malam yang berfungsi dalam pelbagai mata wang sehingga pukul 12 malam waktu terminal. Ia beroperasi dalam julat yang sempit (r) yang ditentukan menggunakan indikator 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];
Posisi akan dibuka selepas waktu yang ditetapkan dalam Start, dan jika tiada posisi terbuka pada simbol tersebut.
if(CountTrades(symb)<1 && TimeCurrent()>StringToTime(s))
Beli jika harga lebih rendah daripada sempadan bawah Bollinger Bands dan julatnya lebih kecil daripada julat yang ditetapkan dalam pembolehubah Razmah.
if(Ask<dn[0] && r<razmah*_Point) trade.PositionOpen(symb,0,Lot,Ask,Ask-stop*_Point,Ask+take*_Point);
Jual jika harga melebihi sempadan atas Bollinger Bands dan julatnya lebih kecil daripada julat yang ditetapkan dalam Razmah.
if(Bid>up[0] && r<razmah*_Point) trade.PositionOpen(symb,1,Lot,Bid,Bid+stop*_Point,Bid-take*_Point);
Posisi ditutup melalui stop loss atau ditutup secara paksa selepas pukul 12 malam.
else if(CountTrades(symb)>0 && TimeCurrent()<StringToTime(s)) CloseAll(symb);
Operasi trading dilakukan dengan bantuan fungsi SymbolTrade dan menggunakan kelas С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); }
Operasi trading dilakukan pada bar baru.
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);
Pengaturan:
input string Symbol1 = "USDCAD"; // Nama Simbol1 input int StopLoss1 = 370; // StopLoss1 input int TakeProfit1 = 20; // TakeProfit1 input int BBPeriod1 = 40; // Tempoh Bands1 input double BBDev1 = 1; // Penyimpangan Bands1 input double Razmah1 = 450; // Penyimpangan Bands1 dalam Poin input int Start1 = 19; // Waktu Mula1 input string Symbol2 = "GBPUSD"; // Nama Simbol2 input int StopLoss2 = 450; // StopLoss2 input int TakeProfit2 = 80; // TakeProfit2 input int BBPeriod2 = 8; // Tempoh Bands2 input double BBDev2 = 1; // Penyimpangan Bands2 input double Razmah2 = 200; // Penyimpangan Bands2 dalam Poin input int Start2 = 20; // Waktu Mula2 input string Symbol3 = "NZDUSD"; // Nama Simbol3 input int StopLoss3 = 410; // StopLoss3 input int TakeProfit3 = 40; // TakeProfit3 input int BBPeriod3 = 4; // Tempoh Bands3 input double BBDev3 = 1.2; // Penyimpangan Bands3 input double Razmah3 = 450; // Penyimpangan Bands3 dalam Poin input int Start3 = 19; // Waktu Mula3 input string Symbol4 = ""; // Nama Simbol4 input int StopLoss4 = 500; // StopLoss4 input int TakeProfit4 = 40; // TakeProfit4 input int BBPeriod4 = 24; // Tempoh Bands4 input double BBDev4 = 1; // Penyimpangan Bands4 input double Razmah4 = 200; // Penyimpangan Bands4 dalam Poin input int Start4 = 20; // Waktu Mula4 input string Symbol5 = ""; // Nama Simbol5 input int StopLoss5 = 500; // StopLoss5 input int TakeProfit5 = 40; // TakeProfit5 input int BBPeriod5 = 24; // Tempoh Bands5 input double BBDev5 = 1; // Penyimpangan Bands5 input double Razmah5 = 200; // Penyimpangan Bands5 dalam Poin input int Start5 = 20; // Waktu Mula5 input string Symbol6 = ""; // Nama Simbol6 input int StopLoss6 = 500; // StopLoss6 input int TakeProfit6 = 40; // TakeProfit6 input int BBPeriod6 = 24; // Tempoh Bands6 input double BBDev6 = 1; // Penyimpangan Bands6 input double Razmah6 = 200; // Penyimpangan Bands6 dalam Poin input int Start6 = 20; // Waktu Mula6 input string Symbol7 = ""; // Nama Simbol7 input int StopLoss7 = 500; // StopLoss7 input int TakeProfit7 = 40; // TakeProfit7 input int BBPeriod7 = 24; // Tempoh Bands7 input double BBDev7 = 1; // Penyimpangan Bands7 input double Razmah7 = 200; // Penyimpangan Bands7 dalam Poin input int Start7 = 20; // Waktu Mula7 input string Symbol8 = ""; // Nama Simbol8 input int StopLoss8 = 500; // StopLoss8 input int TakeProfit8 = 40; // TakeProfit8 input int BBPeriod8 = 24; // Tempoh Bands8 input double BBDev8 = 1; // Penyimpangan Bands8 input double Razmah8 = 200; // Penyimpangan Bands8 dalam Poin input int Start8 = 20; // Waktu Mula8 input string Symbol9 = ""; // Nama Simbol9 input int StopLoss9 = 500; // StopLoss9 input int TakeProfit9 = 40; // TakeProfit9 input int BBPeriod9 = 24; // Tempoh Bands9 input double BBDev9 = 1; // Penyimpangan Bands9 input double Razmah9 = 200; // Penyimpangan Bands9 dalam Poin input int Start9 = 20; // Waktu Mula9 input double Lot = 1; // Volume Trading

Fig1. Hasil trading EA. EURUSD, H1

Fig.2. Transaksi EA dalam jurnal

Fig.3. Hasil trading dan pengoptimuman EA dari 11.01.2016 hingga 13.09.2016. USDCAD, GBPUSD, NZDUSD, H1
Tips:
- EA ini disyorkan untuk digunakan sebagai pembantu trading dan untuk membangunkan strategi anda sendiri.
Siaran berkaitan
- MQL5 Wizard: Cipta Sistem Trading Berdasarkan Pola Morning/Evening Star dan RSI
- Panduan Lengkap MQL5 Wizard untuk Isyarat Dagangan Berdasarkan Morning/Evening Stars dan Stochastic
- MQL5 Wizard: Cipta Isyarat Dagangan Menggunakan Corak Morning/Evening Star dan MFI
- MQL5 Wizard: Cipta Isyarat Dagangan Berdasarkan Corak Hammer/Hanging Man dan Stochastic
- MQL5 Wizard: Isyarat Dagangan Berdasarkan Pola Candlestick Dark Cloud Cover/Piercing Line + RSI