วันอาทิตย์ที่ 21 พฤษภาคม พ.ศ. 2560

ฝึกเขียน EA ตัวอย่างที่ 6 การนำข้อมูลของ Order ที่ถูกปิดไปแล้วมาใช้งาน

หลักการของ EA ตัวนี้
จะตรวจสอบว่า Order ล่าสุดที่ปิดไปเป็น Order ชนิดไหนก็จะเปิดตามเดิมหาก Profit ของ Order ที่ถูกปิดล่าสุดเป็นบวก แต่หาก Profit ของ Order ที่ถูกปิดไปล่าสุดเป็นลบจะเปิด Order ใหม่ตรงกันข้ามกับ order เดิมและขนาด Lot จะคูณ 2 เท่าของ Order แรก

int start()
  {
   OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
    int Type=OrderType();
    double Lot=OrderLots();
    double Profit=OrderProfit(); 
  if(OrdersTotal()==0)
  {   
     if(Type==OP_BUY)
     { 
        if(Profit > 0 )
         {
            OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"EX8",0,0,Green);
         }
         
        if(Profit < 0)
         {
          OrderSend(Symbol(),OP_SELL,Lot*2,Bid,3,0,0,"EX8",0,0,Red);
         
         }
     
      }  
      if(Type==OP_SELL)
     { 
        if(Profit > 0 )
         {
            OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"EX8",0,0,Red);
         
         }
         
         if(Profit < 0)
         {
         OrderSend(Symbol(),OP_BUY,Lot*2,Ask,3,0,0,"EX8",0,0,Green);
         
         }
     
     
     } 
     
  }
     
   return(0);
  }


3 ความคิดเห็น:

  1. วิธีตรวจสอบ Order ที่ถูกปิดไปล่าสุดว่าถูกปิดโดย SL , TP หรือไม่
    int start()
    {
    int a=OrdersHistoryTotal()-1;
    OrderSelect(a,SELECT_BY_POS,MODE_HISTORY); //Point1
    if(OrderClosePrice()==OrderStopLoss()) //Point2
    {
    Print("The Last Order Close By SL ");
    return (0);
    }
    if(OrderClosePrice()==OrderTakeProfit()) //Point3
    {
    Print("The Last Order Close By TP ");
    return (0);
    }

    Print("The Last Order Close By Other Way "); //Point4

    return(0);
    }

    ตอบลบ
  2. แล้วถ้าเราอยากจะหาผลรวมของออเดอร์ที่ปิดไปแล้ว วันนี้ เขียนยังไงครับ

    ตอบลบ
  3. OrderSelect(OrdersHistoryTotal()-1 เพื่ออะไรครับ

    ตอบลบ