Night Scalper Multi: ระบบเทรดอัตโนมัติสำหรับการซื้อขายหลายสกุลเงิน

Mike 2017.01.18 18:24 82 0 0
ไฟล์แนบ

สวัสดีครับเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เรามาพูดถึง 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 หรือจะถูกปิดอัตโนมัติหลังจากเวลาเที่ยงคืน

elseif(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";
   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);
  }

การดำเนินการเทรดจะทำในแท่งใหม่

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);


การตั้งค่าต่างๆ:

inputstring Symbol1     = "USDCAD";       // ชื่อ Symbol1inputint    StopLoss1   = 370;            // StopLoss1inputint    TakeProfit1 = 20;             // TakeProfit1inputint    BBPeriod1   = 40;             // ระยะเวลาของ Bands1inputdouble BBDev1    = 1;              // การเบี่ยงเบนของ Bands1inputdouble Razmah1     = 450;            // การเบี่ยงเบนของ Bands1 ใน Pointsinputint    Start1      = 19;             // เวลาเริ่มต้น1inputstring Symbol2     = "GBPUSD";       // ชื่อ Symbol2inputint    StopLoss2   = 450;            // StopLoss2inputint    TakeProfit2 = 80;             // TakeProfit2inputint    BBPeriod2   = 8;              // ระยะเวลาของ Bands2inputdouble BBDev2    = 1;              // การเบี่ยงเบนของ Bands2inputdouble Razmah2     = 200;            // การเบี่ยงเบนของ Bands2 ใน Pointsinputint    Start2      = 20;             // เวลาเริ่มต้น2inputstring Symbol3     = "NZDUSD";       // ชื่อ Symbol3inputint    StopLoss3   = 410;            // StopLoss3inputint    TakeProfit3 = 40;             // TakeProfit3inputint    BBPeriod3   = 4;              // ระยะเวลาของ Bands3inputdouble BBDev3    = 1.2;            // การเบี่ยงเบนของ Bands3inputdouble Razmah3     = 450;            // การเบี่ยงเบนของ Bands3 ใน Pointsinputint    Start3      = 19;             // เวลาเริ่มต้น3inputstring Symbol4     = "";             // ชื่อ Symbol4inputint    StopLoss4   = 500;            // StopLoss4inputint    TakeProfit4 = 40;             // TakeProfit4inputint    BBPeriod4   = 24;             // ระยะเวลาของ Bands4inputdouble BBDev4    = 1;              // การเบี่ยงเบนของ Bands4inputdouble Razmah4     = 200;            // การเบี่ยงเบนของ Bands4 ใน Pointsinputint    Start4      = 20;             // เวลาเริ่มต้น4inputstring Symbol5     = "";             // ชื่อ Symbol5inputint    StopLoss5   = 500;            // StopLoss5inputint    TakeProfit5 = 40;             // TakeProfit5inputint    BBPeriod5   = 24;             // ระยะเวลาของ Bands5inputdouble BBDev5    = 1;              // การเบี่ยงเบนของ Bands5inputdouble Razmah5     = 200;            // การเบี่ยงเบนของ Bands5 ใน Pointsinputint    Start5      = 20;             // เวลาเริ่มต้น5inputstring Symbol6     = "";             // ชื่อ Symbol6inputint    StopLoss6   = 500;            // StopLoss6inputint    TakeProfit6 = 40;             // TakeProfit6inputint    BBPeriod6   = 24;             // ระยะเวลาของ Bands6inputdouble BBDev6    = 1;              // การเบี่ยงเบนของ Bands6inputdouble Razmah6     = 200;            // การเบี่ยงเบนของ Bands6 ใน Pointsinputint    Start6      = 20;             // เวลาเริ่มต้น6inputstring Symbol7     = "";             // ชื่อ Symbol7inputint    StopLoss7   = 500;            // StopLoss7inputint    TakeProfit7 = 40;             // TakeProfit7inputint    BBPeriod7   = 24;             // ระยะเวลาของ Bands7inputdouble BBDev7      = 1;              // การเบี่ยงเบนของ Bands7inputdouble Razmah7     = 200;            // การเบี่ยงเบนของ Bands7 ใน Pointsinputint    Start7      = 20;             // เวลาเริ่มต้น7inputstring Symbol8     = "";             // ชื่อ Symbol8inputint    StopLoss8   = 500;            // StopLoss8inputint    TakeProfit8 = 40;             // TakeProfit8inputint    BBPeriod8   = 24;             // ระยะเวลาของ Bands8inputdouble BBDev8    = 1;              // การเบี่ยงเบนของ Bands8inputdouble Razmah8     = 200;            // การเบี่ยงเบนของ Bands8 ใน Pointsinputint    Start8      = 20;             // เวลาเริ่มต้น8inputstring Symbol9     = "";             // ชื่อ Symbol9inputint    StopLoss9   = 500;            // StopLoss9inputint    TakeProfit9 = 40;             // TakeProfit9inputint    BBPeriod9   = 24;             // ระยะเวลาของ Bands9inputdouble BBDev9      = 1;              // การเบี่ยงเบนของ Bands9inputdouble Razmah9     = 200;            // การเบี่ยงเบนของ Bands9 ใน Pointsinputint    Start9      = 20;             // เวลาเริ่มต้น9inputdouble Lot         = 1;              // ขนาดล็อตในการเทรด

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

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

Fig.3. ผลลัพธ์การเทรดและการปรับแต่งของ EA ตั้งแต่ 11.01.2016 ถึง 13.09.2016: USDCAD, GBPUSD, NZDUSD, H1


เคล็ดลับ:

  • แนะนำให้ใช้ EA เป็นผู้ช่วยในการเทรดและพัฒนากลยุทธ์ของคุณเอง
รายการ
ความคิดเห็น 0