หน้าแรก การเทรดด้วยระบบ โพสต์

Coin Flip: EA สำหรับ MetaTrader 5 ที่ควรรู้

ไฟล์แนบ
20836.zip (8.36 KB, ดาวน์โหลด 0 ครั้ง)

ผู้เสนอแนวคิด: Vladimir Gribachev.

โค้ด MQL5 โดย: Vladimir Karputov.

นี่คือ EA ที่ไม่ใช้ตัวบ่งชี้ที่กำหนดเอง โดยเปิดตำแหน่งแบบสุ่ม EA นี้สามารถแสดงสถิติปัจจุบันในสองภาษา:

Coin Flip trading info

Trailing จะปรับ Stop Loss ของตำแหน่งที่เปิดอยู่ หากเกิดการขาดทุน ขนาดล็อตจะเพิ่มขึ้นตามอัตรา Martingale วิธีการตรวจสอบการขาดทุน: ใน OnTradeTransaction เราจะจับเหตุการณ์การทำธุรกรรม DEAL_REASON_SL ซึ่งเป็นสัญญาณของ Stop Loss ที่ถูกเรียกใช้:

//+------------------------------------------------------------------+
//| ฟังก์ชัน TradeTransaction                                         |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- รับประเภทการทำธุรกรรมในรูปแบบ enumeration 
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- หากการทำธุรกรรมเกิดจากการเพิ่มธุรกรรมในประวัติ
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      long     deal_ticket       =0;
      long     deal_order        =0;
      long     deal_time         =0;
      long     deal_time_msc     =0;
      long     deal_type         =-1;
      long     deal_entry        =-1;
      long     deal_magic        =0;
      long     deal_reason       =-1;
      long     deal_position_id  =0;
      double   deal_volume       =0.0;
      double   deal_price        =0.0;
      double   deal_commission   =0.0;
      double   deal_swap         =0.0;
      double   deal_profit       =0.0;
      string   deal_symbol       ="";
      string   deal_comment      ="";
      string   deal_external_id  ="";
      if(HistoryDealSelect(trans.deal))
        {
         deal_ticket       =HistoryDealGetInteger(trans.deal,DEAL_TICKET);
         deal_order        =HistoryDealGetInteger(trans.deal,DEAL_ORDER);
         deal_time         =HistoryDealGetInteger(trans.deal,DEAL_TIME);
         deal_time_msc     =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC);
         deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
         deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_magic        =HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
         deal_reason       =HistoryDealGetInteger(trans.deal,DEAL_REASON);
         deal_position_id  =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID);

         deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
         deal_price        =HistoryDealGetDouble(trans.deal,DEAL_PRICE);
         deal_commission   =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION);
         deal_swap         =HistoryDealGetDouble(trans.deal,DEAL_SWAP);
         deal_profit       =HistoryDealGetDouble(trans.deal,DEAL_PROFIT);

         deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);
         deal_comment      =HistoryDealGetString(trans.deal,DEAL_COMMENT);
         deal_external_id  =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID);
        }
      else
         return;
      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            PrevBars=0;
            if(deal_reason==DEAL_REASON_SL && deal_commission+deal_swap+deal_profit<0.0)
               last_lots_sl=deal_volume;
            else
               last_lots_sl=0.0;
           }
     }
  }


พารามิเตอร์การตั้งค่า

  • Stop Loss - การตั้งค่า Stop Loss;
  • Take Profit - การตั้งค่า Take Profit;
  • Trailing Stop - การตั้งค่า Trailing;
  • Trailing Step - ขั้นตอนการ Trailing;
  • Lots - ขนาดล็อตที่ตั้งค่าแบบแมนวล (ถ้า Lots มากกว่า 0 ต้องตั้งค่า Risk เป็น 0);
  • Risk - ขนาดล็อตจะถูกคำนวณโดยอัตโนมัติ (ถ้า Risk มากกว่า 0 ต้องตั้งค่า Lots เป็น 0);
  • Martingale - อัตราการเพิ่มล็อต เมื่อตำแหน่งก่อนหน้านี้ถูกปิดด้วย Stop Loss และกำไรที่ได้รับเป็นลบ;
  • Max lots - ขนาดตำแหน่งสูงสุด; ถ้าขนาดนี้ถูกเกิน จะทำให้ EA หยุดทำงานอย่างผิดปกติ;
  • หมายเลข Magic - รหัสประจำตัวเฉพาะสำหรับ EA.

การทดสอบถูกหยุด (EA ถูกถอดออกจากกราฟโดยบังคับ) เนื่องจากล็อตอ้างอิงเกินค่าพารามิเตอร์ Max lots:

Coin Flip

โพสต์ที่เกี่ยวข้อง

ความคิดเห็น (0)