EA Programing => MT4 Code Libary => Topic started by: admin on ตุลาคม 12, 2010, 04:23:42 am

Title: การเปิด Order
Post by: admin on ตุลาคม 12, 2010, 04:23:42 am
การเปิด ORDER ใน  MT4
คำสั่งที่เราใช้ในการเปิด Order ก็คือ  Ordersend โดยมีค่าพารามิเตอร์ตามตัวอย่างด้านล่านนี้

OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) ;

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

OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order",16384,0,Green);

มีความหมายว่า  เปิด Order buy ที่ราคาตลาด โดนกำหนดให้ราคาคลาดเคลื่อนได้ 3 จุดจากราคาปัจจุบัน แล้วมีค่า SL TP ที่ 25 จุดจากราคาเปิด  มีคอมเม้นข้อความว่า My order มีค่า Magic number คือ 16384 แล้วจะแสดงลูกศรสีเขียวบนกราฟเวลาที่ Order นี้เปิด

// buystop
OrderSend(Symbol(),OP_BUYSTOP,1,Ask+15*Point,3,Ask-30*Point,Ask+30*Point,"My order",16384,0,Green);
// buylimit
OrderSend(Symbol(),OP_BUYLIMIT,1,Ask-15*Point,3,Ask-30*Point,Ask+30*Point,"My order",16384,0,Green);

// sellstop
OrderSend(Symbol(),OP_SELLSTOP,1,Bid-15*Point,3,Bid+30*Point,Bid-30*Point,"My order",16384,0,RED);
// selllimit
OrderSend(Symbol(),OP_SELLLIMIT,1,Bid+15*Point,3,Bid+30*Point,Bid-30*Point,"My order",16384,0,RED);
Title: Re: การเปิด Order
Post by: toonrx09 on กุมภาพันธ์ 02, 2011, 07:08:59 pm
แล้วทำอย่างไร ให้มันเปิดแค่ orderเดียวครับ
ผมลองกำหนดเงื่อนไขแล้วมันเปิดตลอดเลยครับ
Title: Re: การเปิด Order
Post by: admin on กุมภาพันธ์ 02, 2011, 11:03:45 pm
เปิดแค่ order เดียวใช่ไหมครับ ก็กำหนดเงื่อนไขแบบนี้เข้าไปครับ

if(OrdersTotal()< 1)
{

   คำสั่งเปิด order ครับ



}
Title: Re: การเปิด Order
Post by: gagoi on กุมภาพันธ์ 03, 2011, 12:21:18 am
ขอบคุณครับ
Title: Re: การเปิด Order
Post by: toonrx09 on กุมภาพันธ์ 03, 2011, 11:23:12 am
ขอบคุณมากครับ ขอรบกวนถามต่อนะครับ...

แล้วถ้าต้องการให้เปิดทีละorder ล่ะครับ เมื่อเข้าเงื่อนไข

ยกตัวอย่างเช่น ma เวลาตัดกัน ขึ้น ก็เปิด บาย ตัดลง เปิด เซล ทำอย่างนี้ไปเรื่อยๆ

ผมลองตามที่ท่านadmin บอกแล้วครับ มันเปิดแค่orderเดียวจริงๆเปิด บาย พอเข้าเงื่อนไข เซลก็ไม่ยอมเปิดครับ

แก้ยังไงดีครับ

รบกวนด้วยครับ

ปล. mt4 Code Libary มีประโยชน์มากครับ... อยากให้มีไปเรื่อยๆๆ.... ขอบคุณที่แบ่งปัน....
Title: Re: การเปิด Order
Post by: BlackHero on มิถุนายน 08, 2017, 12:56:50 am
คำส่ง if (OrdersTotal()<1){...}   หมายความว่า ถ้าออร์เดอร์รวมทั้งหมด น้อยกว่า 1 ถึงจะเปิด  /  ถ้าคุณรันโปรแกรมแล้วเปิดออร์เดอร์ขึ้นมา1ออร์เดอร์  OrdersTotalจะเท่ากับ 1 ออร์เดอร์ที่ดำเนินการอยู่   / 

 คุณจะเปิดอีกออร์เดอร์ได้ก็ต่อเมื่อคุณปิดออร์เดอร์นี้แล้ว OrdersTotalถึงจะเท่ากับ 0  คือน้อยกว่า1 .. 
แนะนำให้เขียน void CountOrder() นับจำนวนออร์เดอร์ขึ้นมา  ให้CountOrder()แยกประเภทด้วยว่าเป็น  Buy หรือ Sell   

 แล้วเราก็นำมาใช้เช่น   if(CountOrder(OP_BUY)==0){...}  สำหรับBuy 
และสำหรับSell  if(CountOrder(OP_SELL)==0){...}

เมื่อแยกแล้ว อยากให้เปิด Buy และ Sell อย่างละกี่ Order ให้สร้างตัวแปร double MAXBuy=จำนวนที่อยากให้เปิด Buy;    double MAXSell=จำนวนที่อยากให้เปิดSell;  แล้วนำไปแทนเช่น
if(CountOrder(OP_BUY)<MAXBuy){OpenBuy();}  เปิด Buy = 10 Order. เมื่อกำหนด double MAXBuy=10;
if(CountOrder(OP_SELL)<MAXSell){OpenSell();}  เปิด Sell = 10 Order.เมื่อกำหนด double MAXSell=10;

ถูกไม่ถูกยังไง รบกวน Admin ชี้แนะอีกทีนะครับ