EA Programing > MT4 Code Libary

คำสั่ง OrderModify() และ Trailing Stop

(1/3) > >>

admin:
คำสั่ง OrderModify เป็นคำสั่ง ที่ใช้แก้ไข SL TP ของ Order ที่เปิดแล้วหรือแก้ไขราคาเปิด ของ Pending Order

OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)

ตัวอย่างเช่น

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);

คำสั่งด้านบนเป็นบางส่วนของ คำสั่งที่ใช้ทำ Trailing Stop แต่ในการใช้งานจริงเราต้องใช้คำสั่ง
OrderSelect() ช่วย ผมจะนำข้อมูลจากหัวข้อ OrderSelect บางส่วนบางใช้นะครับใครงงให้กลับไปดูที่ Orderselect ประกอบนะครับ
จากหัวข้อ orderselect เรามี order อยู่ 3 order ถ้าต้องการปิด order ทั้งหมดเราต้องใช้ orderselect ช่วย

1 BUY  0.1 lot
2 SELL 0.1 lot
3 BUY  0.1 lot

for(int i=0;i<OrderTotal();i++)
{
   OrderSelect( i,SELECT_BY_POS,MODE_TRADE) ;
   
     if(Bid-OrderOpenPrice()>Point*TrailingStop)
       {
        if(OrderStopLoss()<Bid-Point*TrailingStop)
          {
           OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);
           return(0);
          }
       }
   


}

ข้างบนคือบางส่วนของ code Trailing Stop
Trailing Stop  คือรูปแบบในการรักษา Profit อย่างหนึ่งกล่าวคือ หากราคาของ คู่เงิน เป็นบวกในจำนวนที่มากกว่า pip ที่กำหนด ตัว Trailiing Stop จะเริ่มทำการแก้ไข
SL ของ order ให้กลับมาเท่ากับราคาที่เปิด หากราคาของคู่เงินเปลี่ยนทาง Order ที่เราเปิดไวก็จะไม่ขาดทุน แต่หากราคาของคู่เงินที่เราเปิดไวกลับบวกไปเรื่อยๆๆ Trailing Stop ก็จำทำการแก้ไข SL
ตามราคาไปเรื่อยๆๆโดย SL ใหม่จะอยู่หากราคาปัจจุบันตามที่เรากำหนดเสมอ

thanakrit:
ขอบคุณครับ หัวข้อ MT4 Code Libary เป็นประโยชน์มากๆเลยนะครับ


หัวข้อต่อไปขอเป็น คำสั่ง NormalizeDouble()
อยากทราบรายละเอียด คำอธิบายวิธีการใช้ และตัวอย่าง
 ;Dขอบคุณอีกครั้ง

admin:

--- Quote from: thanakrit on ตุลาคม 14, 2010, 09:29:57 am ---ขอบคุณครับ หัวข้อ MT4 Code Libary เป็นประโยชน์มากๆเลยนะครับ


หัวข้อต่อไปขอเป็น คำสั่ง NormalizeDouble()
อยากทราบรายละเอียด คำอธิบายวิธีการใช้ และตัวอย่าง
 ;Dขอบคุณอีกครั้ง


--- End quote ---
ขอบคุณสำหรับคำแนะนำครับผมจะค่อยๆๆเขียนออกมาเรื่อยๆตามเวลาที่มีครับ

thanakrit:
อยากขอให้ Admin ช่วยยกตัวอย่างกรณี Modify TP ด้วยได้ไหมครับ
ผมเปิดหลายOrder เป็นแบบเบิ้ลล๊อต ใช้คำสั่ง แบบ Profit Level & OrderClosed all
แต่มีปัญหาว่ากว่าจะปิดครบทุก Poisition บางครั้งราคามันวิ่งติดลบกลับมา ทำให้ขาดทุนได้
เลยอยากใช้แบบ Modify TP ให้ TP ทุก Position ตรงกับ Order ล่าสุด

ถ้า Admin ว่างๆ ขอรบกวนอธิบายพร้อมยกตัวอย่างให้ด้วยนะครับ
ขอบคุณมากครับ ;D

admin:

--- Quote from: thanakrit on ตุลาคม 15, 2010, 10:31:22 am ---อยากขอให้ Admin ช่วยยกตัวอย่างกรณี Modify TP ด้วยได้ไหมครับ
ผมเปิดหลายOrder เป็นแบบเบิ้ลล๊อต ใช้คำสั่ง แบบ Profit Level & OrderClosed all
แต่มีปัญหาว่ากว่าจะปิดครบทุก Poisition บางครั้งราคามันวิ่งติดลบกลับมา ทำให้ขาดทุนได้
เลยอยากใช้แบบ Modify TP ให้ TP ทุก Position ตรงกับ Order ล่าสุด

ถ้า Admin ว่างๆ ขอรบกวนอธิบายพร้อมยกตัวอย่างให้ด้วยนะครับ
ขอบคุณมากครับ ;D

--- End quote ---

จริงๆๆก็ไม่ได้ต่างอะไรมากกับการตั้ง SL ครับทุกอย่างเหมือนกันแต่ต่างกันตรง พารามิเตอร์ใน OrderModify เท่านั่นเองครับ
โคยเริ่มจากการใช้ for เพื่อวนรอบ การใช้ OrderSelect เพื่อบอกให้ EA ทราบถึง Order ที่เราต้องการแก้ไข
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),ราคาใหม่ที่ต้องการตั้ง TP,0,Blue);

นำร่อง

[0] ดัชนีข้อความ

[#] หน้าถัดไป

Go to full version