Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: อยากได้eaแบบที่ตั้งslขยับไปเรื่อยๆ  (Read 23840 times)

berserk

  • Newbie
  • *
  • Posts: 42
1. พอเราเปิด order ยังไม่ได้ทำอะไร กรณีที่เปิดที่ buy ที่ 1.400
2. หลังจากที่กราฟวิ่ง เลยจาก 1.400 ไปที่ >= 1.420 ให้ EA Stop less ที่ 1.410 และถ้ากราฟยังวิ่งไปที่ >= 1.430 ให้ EA เปลี่ยน Stop less จากเดิม 1.410 ให้เป็น 1.420 แบบนี้ไปเรื่อยๆ เพราะถ้าทันทีที่กราฟกลับตัว ตัว order จะปิดเองอัตโนมัติครับ
3.ในกรณีsellก็เช้นเดียวกัน

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Trailing stop ไงครับแบบนี้  วิธีการเขียน นะครับ  สำหรับ buy order นะครับ

extern int TrailingStop =10;
int start()
{
 OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
 if(Bid-OrderOpenPrice()>=Point*20) //ตรวจสอบ ว่าราคาปัจจุบันมากกว่าราคาเปิดอยู่ 20 จุดหรือยัง
 {
     if( (OrderStopLoss()==0 ) || ( Bid-OrderStopLoss() ) > Point*10 ) //ตรวจสอบค่า stoploss โดยให้ค่า stoploss ห่างจากราคาปัจจุบันอยู่ 10 จุดเสมอ
 
    {
      OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, Green); // ทำการแก้ไข order ให้ปรับค่า stoploss ให้ห่างจากราคา 10 จุดเสมอ
 
     }
 
     }
 
 return (0);
 }
« Last Edit: สิงหาคม 21, 2009, 03:48:20 pm by admin »

berserk

  • Newbie
  • *
  • Posts: 42
แล้วถ้ารวมsellด้วยนี่ต้องเขียนยังไงครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
แล้วถ้ารวมsellด้วยนี่ต้องเขียนยังไงครับ

เอาไปลองดูครับว่าได้ไหม

extern int TrailingStop =10;
int start()
{
 OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
 if (OrderType() == OP_BUY)
         {
 if(Bid-OrderOpenPrice()>=Point*20) //ตรวจสอบ ว่าราคาปัจจุบันมากกว่าราคาเปิดอยู่ 20 จุดหรือยัง
 {
     if( (OrderStopLoss()==0 ) || ( Bid-OrderStopLoss() ) > Point*10 ) //ตรวจสอบค่า stoploss โดยให้ค่า stoploss ห่างจากราคาปัจจุบันอยู่ 10 จุดเสมอ
 
      {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, Green); // ทำการแก้ไข order ให้ปรับค่า stoploss ให้ห่างจากราคา 10 จุดเสมอ
 
        }
 
   }
 
 }
 
 
 
  if (OrderType() == OP_SELL)
  {
 
  if(OrderOpenPrice()-Ask>=Point*20)
 {
 
    if( (OrderStopLoss()==0 ) || ( OrderStopLoss()-Ask ) > Point*10 )
 
  {
 
  OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, Red);
 
 
 
  }
 
 
 
 
  }
 
 
 
 
 
  }
 
 
 return (0);
 }

Protector

  • Jr. Member
  • **
  • Posts: 84
สู้ๆครับ  ;D

berserk

  • Newbie
  • *
  • Posts: 42
ขอถามเพิ่มครับคือว่าเวลาที่เราเอาทั้งsellทั้งbuyมารวมกันมันerrorแต่ถ้าทำเป็นeaแยกมันจะทำงานได้ ถ้าเราจะรวมต้องทำยังไงครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ขอถามเพิ่มครับคือว่าเวลาที่เราเอาทั้งsellทั้งbuyมารวมกันมันerrorแต่ถ้าทำเป็นeaแยกมันจะทำงานได้ ถ้าเราจะรวมต้องทำยังไงครับ
  if(OrderType() == OP_BUY)
             {
               if(trailingStop > 0)
                 {
                   if(Bid - OrderOpenPrice() > trailingStop*Point)
                     {
                       if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
                           OrderModify(OrderTicket(), OrderOpenPrice(),
                                       Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
                     }
                 }
             }
           else
             {
               if(trailingStop > 0)
                 {
                   if(OrderOpenPrice() - Ask > trailingStop*Point)
                     {
                       if(OrderStopLoss() == 0 || OrderStopLoss()-Ask >  trailingStop*Point)
                           OrderModify(OrderTicket(), OrderOpenPrice(),
                                       Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
                     }           
                 }
             }
« Last Edit: เมษายน 30, 2010, 11:05:40 pm by admin »

finalmantt

  • Newbie
  • *
  • Posts: 6
trailling stop สำหรับ buystop/sellstop เขียนโคดเหมือนกันไหมครับ ผมลองเอาโคดนี้ไปใช้ดู trailling มันไม่ยอมทำงานครับ admin

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
trailling stop สำหรับ buystop/sellstop เขียนโคดเหมือนกันไหมครับ ผมลองเอาโคดนี้ไปใช้ดู trailling มันไม่ยอมทำงานครับ admin

เขียนคล้ายกันครับใช้ฟังก์ชั่น OrderModify() เหมือนกันแต่ต้องเปลี่ยนจากแก้ค่า SL มาเป้นค่า OrderopenPrice() แทนครับ

finalmantt

  • Newbie
  • *
  • Posts: 6
trailling stop สำหรับ buystop/sellstop เขียนโคดเหมือนกันไหมครับ ผมลองเอาโคดนี้ไปใช้ดู trailling มันไม่ยอมทำงานครับ admin

เขียนคล้ายกันครับใช้ฟังก์ชั่น OrderModify() เหมือนกันแต่ต้องเปลี่ยนจากแก้ค่า SL มาเป้นค่า OrderopenPrice() แทนครับ

ได้แล้วครับ admin ผมลองเอา
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
ไปใส่ข้างบนโคดก็พอได้อยู่
ตอนนี้ลองเขียน ea ใช้เองอยู่ครับ ถ้าติดปัญญหาอะไรให้ admin ช่วยได้ไหมครับ (แอบบเกรงใจ)