Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: เวลานับ OrderSelect กับ OrdersTotal() นับยังไงคับ ไม่แน่ใจ  (Read 12672 times)

vicvic

  • Newbie
  • *
  • Posts: 31
เช่นสมมุต มี order ที่เปิด และ pendingorder ที่เปิดอยู่
0000000  buy  .....
0000001  sell stop  ......
0000002  buy stop  ......
0000003  sell .....

เวลาใช้ OrderSelect ก็ไร่ตามเลยหรือเปล่าคับ ทั้งออเด้อที่เปิดแล้วกับpending เช่น ออเด้อแรกเป็น0 ต่อไปก็เป็น 1 ไม่ว่าจะเป็นเปิดแล้วหรือpending

และเวลาใช้นับ OrderTotal ก็จะได้เท่ากับ 4 ใช่ไหมคับ


dataxdata

  • Newbie
  • *
  • Posts: 35
จากตัวอย่างที่ให้มานั้น ordertotal() = 4 ครับ
ส่วนวิธีการใช้ orderselect นั้นถ้ามี order มากกว่า 1 order ควรใช้ for วิ่งวนครับ

for(int i=0; i<OrdersTotal(); i++) 
         {
            OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
            สิ่งที่จะทำต่อหลังเลือก order ..........
          }

Name: Ataporn.Tap
Rank : Newbie Trader (- -,)

vicvic

  • Newbie
  • *
  • Posts: 31
ในกรณีที่เราต้องการเลือกเพื่อจะใช้งาน เช่นต้องการจะลบออเด้อ buy stop เราจะใช้ OrderSelect ที่เท่าไหร่คับ
หรือถามว่าเวลานับไร่ออเด้อนับไร่ลงมา ไม่ว่าเป็นออเด้อเปิดแล้วหรือยังไม่เปิด ใช่หรือเปล่าคับ

อีกข้อนะคับคำสั่ง ordermodify ไม่สามารถแก้ตรง orderopenprice() ได้หรอคับเปลี่ยนได้แต่ sl กับ tp เหรอคับ
« Last Edit: มกราคม 04, 2013, 02:01:02 pm by vicvic »

creation

  • Newbie
  • *
  • Posts: 1
1.กรณีต้องการลบ Order buy stop คุณต้องใช้ for วิ่งวนตามที่คุณ  dataxdata แนะนำครับ แล้วสร้างเงื่อนไขเพิ่มเพื่อให้พบ buy stop
    Ex.for(int i=0; i<OrdersTotal(); i++) 
         {
            OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
            if(OrderType()==OP_BUYSTOP)
            {เงื่อนไข........OrderDelete}
         }
2.เวลานับจะนับหมดครับ ทั้ง stop,limit หรือที่โดนเปิดไปแล้ว
3.ordermodify แก้ orderopenprice()  ได้กรณีที่เป็น stop,limit ครับ แต่ค่าที่คุณจะตั้งใหม่ต้องห่างจากค่า Ask,Bid ตามที่ Broker กำหนดด้วยครับ เช่น ราคา E/U ตอนนี้ 1.32000 Broker กำหนดค่าที่ตั้งต้องห่างอย่างน้อย 20pip ดังนั้นหากคุณตั้ง orderopenprice()ใหม่เท่ากับ 1.31990 ก็จะตั้งไม่ได้