สวัสดีครับเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เรามาพูดถึง Night Scalper Multi ระบบเทรดอัตโนมัติที่ออกแบบมาเพื่อการเทรดในช่วงเวลากลางคืนและสามารถทำการซื้อขายได้หลายสกุลเงินพร้อมกันครับ
ระบบนี้จะทำการเทรดจนถึงเที่ยงคืนตามเวลาของเทอร์มินัล โดยใช้การวิเคราะห์จาก 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];
ระบบจะเปิดตำแหน่งซื้อขายหลังจากเวลาที่กำหนดใน Start และหากไม่มีการเปิดตำแหน่งในสัญลักษณ์นั้นๆ
if(CountTrades(symb)<1 && TimeCurrent()>StringToTime(s))
ถ้าราคาต่ำกว่าขอบล่างของ Bollinger Bands และระยะห่างของช่องน้อยกว่าค่าที่กำหนดไว้ในตัวแปร Razmah ระบบจะทำการซื้อ
if(Ask<dn[0] && r<razmah*_Point) trade.PositionOpen(symb,0,Lot,Ask,Ask-stop*_Point,Ask+take*_Point);
ในทางกลับกัน ถ้าราคาอยู่เหนือขอบบนของ Bollinger Bands และระยะห่างน้อยกว่าค่าที่กำหนดใน Razmah ระบบจะทำการขาย
if(Bid>up[0] && r<razmah*_Point) trade.PositionOpen(symb,1,Lot,Bid,Bid+stop*_Point,Bid-take*_Point);
ตำแหน่งการเทรดจะถูกปิดโดยการตั้ง Stop Loss หรือจะถูกปิดอัตโนมัติหลังจากเวลาเที่ยงคืน
else if(CountTrades(symb)>0 && TimeCurrent()<StringToTime(s)) CloseAll(symb);
การเทรดจะดำเนินการผ่านฟังก์ชัน SymbolTrade และใช้คลาส С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); }
การดำเนินการเทรดจะทำในแท่งใหม่
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);
การตั้งค่าต่างๆ:
input string Symbol1 = "USDCAD"; // ชื่อ Symbol1 input int StopLoss1 = 370; // StopLoss1 input int TakeProfit1 = 20; // TakeProfit1 input int BBPeriod1 = 40; // ระยะเวลาของ Bands1 input double BBDev1 = 1; // การเบี่ยงเบนของ Bands1 input double Razmah1 = 450; // การเบี่ยงเบนของ Bands1 ใน Points input int Start1 = 19; // เวลาเริ่มต้น1 input string Symbol2 = "GBPUSD"; // ชื่อ Symbol2 input int StopLoss2 = 450; // StopLoss2 input int TakeProfit2 = 80; // TakeProfit2 input int BBPeriod2 = 8; // ระยะเวลาของ Bands2 input double BBDev2 = 1; // การเบี่ยงเบนของ Bands2 input double Razmah2 = 200; // การเบี่ยงเบนของ Bands2 ใน Points input int Start2 = 20; // เวลาเริ่มต้น2 input string Symbol3 = "NZDUSD"; // ชื่อ Symbol3 input int StopLoss3 = 410; // StopLoss3 input int TakeProfit3 = 40; // TakeProfit3 input int BBPeriod3 = 4; // ระยะเวลาของ Bands3 input double BBDev3 = 1.2; // การเบี่ยงเบนของ Bands3 input double Razmah3 = 450; // การเบี่ยงเบนของ Bands3 ใน Points input int Start3 = 19; // เวลาเริ่มต้น3 input string Symbol4 = ""; // ชื่อ Symbol4 input int StopLoss4 = 500; // StopLoss4 input int TakeProfit4 = 40; // TakeProfit4 input int BBPeriod4 = 24; // ระยะเวลาของ Bands4 input double BBDev4 = 1; // การเบี่ยงเบนของ Bands4 input double Razmah4 = 200; // การเบี่ยงเบนของ Bands4 ใน Points input int Start4 = 20; // เวลาเริ่มต้น4 input string Symbol5 = ""; // ชื่อ Symbol5 input int StopLoss5 = 500; // StopLoss5 input int TakeProfit5 = 40; // TakeProfit5 input int BBPeriod5 = 24; // ระยะเวลาของ Bands5 input double BBDev5 = 1; // การเบี่ยงเบนของ Bands5 input double Razmah5 = 200; // การเบี่ยงเบนของ Bands5 ใน Points input int Start5 = 20; // เวลาเริ่มต้น5 input string Symbol6 = ""; // ชื่อ Symbol6 input int StopLoss6 = 500; // StopLoss6 input int TakeProfit6 = 40; // TakeProfit6 input int BBPeriod6 = 24; // ระยะเวลาของ Bands6 input double BBDev6 = 1; // การเบี่ยงเบนของ Bands6 input double Razmah6 = 200; // การเบี่ยงเบนของ Bands6 ใน Points input int Start6 = 20; // เวลาเริ่มต้น6 input string Symbol7 = ""; // ชื่อ Symbol7 input int StopLoss7 = 500; // StopLoss7 input int TakeProfit7 = 40; // TakeProfit7 input int BBPeriod7 = 24; // ระยะเวลาของ Bands7 input double BBDev7 = 1; // การเบี่ยงเบนของ Bands7 input double Razmah7 = 200; // การเบี่ยงเบนของ Bands7 ใน Points input int Start7 = 20; // เวลาเริ่มต้น7 input string Symbol8 = ""; // ชื่อ Symbol8 input int StopLoss8 = 500; // StopLoss8 input int TakeProfit8 = 40; // TakeProfit8 input int BBPeriod8 = 24; // ระยะเวลาของ Bands8 input double BBDev8 = 1; // การเบี่ยงเบนของ Bands8 input double Razmah8 = 200; // การเบี่ยงเบนของ Bands8 ใน Points input int Start8 = 20; // เวลาเริ่มต้น8 input string Symbol9 = ""; // ชื่อ Symbol9 input int StopLoss9 = 500; // StopLoss9 input int TakeProfit9 = 40; // TakeProfit9 input int BBPeriod9 = 24; // ระยะเวลาของ Bands9 input double BBDev9 = 1; // การเบี่ยงเบนของ Bands9 input double Razmah9 = 200; // การเบี่ยงเบนของ Bands9 ใน Points input int Start9 = 20; // เวลาเริ่มต้น9 input double Lot = 1; // ขนาดล็อตในการเทรด

Fig1. ผลลัพธ์การเทรดของ EA: EURUSD, H1

Fig.2. รายการเทรดของ EA ในบันทึก

Fig.3. ผลลัพธ์การเทรดและการปรับแต่งของ EA ตั้งแต่ 11.01.2016 ถึง 13.09.2016: USDCAD, GBPUSD, NZDUSD, H1
เคล็ดลับ:
- แนะนำให้ใช้ EA เป็นผู้ช่วยในการเทรดและพัฒนากลยุทธ์ของคุณเอง
ความคิดเห็น 0