Sponsored Ads

แสดงบทความที่มีป้ายกำกับ Robot trade แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Robot trade แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 22 มิถุนายน พ.ศ. 2560

การเขียนคำสั่ง Close Order

Closing and Deleting Orders


เวลาที่เราต้องการจะปิด position เราจะใช้ฟังก์ชั่น OrderClose() เพื่อใช้ส่งคำสั่งปิด position 

โครงสร้างฟังก์ชั่น OrderClose()

bool OrderClose(int ticket , double lots,double price,int slippage,color Colr = CLR_NONE)

อธิบายฟังก์ชั่น 

int ticket คือ หมายเลข ticket order ที่ต้องการจะปิด 

doublt lot คือ ขนาด lot ที่ต้องกาสรปิด 

double price คือ ราคาที่ต้องการปิด  สามารถดูเงื่อนไขเพิ่มเติมได้ที่ https://book.mql4.com/appendix/limits

int slippage คือ ค่ามากที่สุดที่สามารถเบี่ยงเบนได้จากราคาตลาด เพราะบาง Broker มีปัญหาเรื่อง requote  หน่วยเป็น point 

Color คือ สีลูกศรที่แสดงบนกราฟหากมีการปิด Order 


ตัวอย่างการใช้ฟังก์ชั่น 

OrderClose(12345,0.5,Bid,2); 

OrderClose คือ ฟังก์ชั่น OrderClose ส่งคำสั่งเพื่อปิด Order 

12345          คือ  หมายเลข ticket 

0.5               คือ ขนาดของ lot 

Bid               คือ ราคาที่ต้องการใช้ปิด 

2                   คือ ค่า Slippage หน่วยเป็น point มีค่าคือ 2 point 



ตัวอย่างเราต้องการปิด Order ที่เปิดอยู่ สิ่งแรกเราต้องรู้หมายเลข Order ก่อน เอาแบบง่ายๆ เราก็ไปดูเลข ticket ใน Tab Order มันจะแสดงหมายเลขไว้ 


คำสั่งปิด Order 

int start()
   {
      OrderClose(40149595,0.10,Bid,1000,Red);
     return;
   }

ก่อน Compile เรามี Order ค้างไว้อยู่





หลังจากเรา Compile แล้วลาก script มาวางไว้บนกราฟ เราก็จะปิด Order ได้ ซึ่งบนกราฟจะแสดงลูกศรสีแดงขึ้นมาให้เห็นด้วย 

เพื่อนๆสามารถอ่านเนื้อหาเพิ่มเติมได้ที่ https://book.mql4.com/trading/orderclose




วันอังคารที่ 13 มิถุนายน พ.ศ. 2560

การใช้ Marketinfo กับการส่ง Order

ตัวอย่างการใช้ MatketInfo กับการส่ง Order 

ในบทความนี้เราจะเอาฟังชั่นทั้ง 2 ตัว เอามาเขียนประยุกต์ใช้ด้วยกัน 

โดยเราจะดึงราคา Bid และ Ask รวมถึงค่า Point เพื่อเอาไว้ใช้ในการเปิด Order นั่นเอง 

int start()
{
   double bid = MarketInfo(Symbol(),MODE_BID); 
   double ask = MarketInfo(Symbol(),MODE_ASK);
   double point = MarketInfo(Symbol(),MODE_POINT);
   double SL = MarketInfo(Symbol(),MODE_STOPLEVEL); 
   
   
   OrderSend(Symbol(),OP_BUY,0.01,ask,10,bid-SL*Point,bid+SL*Point); 
   Alert(GetLastError()); 
   
   return; 
   
}   

****  Code นี้ หากเราไปเขียนใน EA มันจะส่งคำสั่งทุกครั้งที่มีการเคลื่อนที่ของราคา ดังนั้นควรเขียนลงใน script น่าจะดีกว่าหากต้องการส่งคำสั่งครั้งเดียว 

มาอธิบายทีละบรรทัดกันครับ

   double bid = MarketInfo(Symbol(),MODE_BID); 

ดึงค่า Bid มาใส่ในตัวแปร bid   (  Ask ก็เหมือนกัน )

   double point = MarketInfo(Symbol(),MODE_POINT);

ดึงค่า Point มาเก็บไว้ในตัวแปร point 


  double SL = MarketInfo(Symbol(),MODE_STOPLEVEL); 

ดึงค่า Stop Level มาเก็บไว้ในตัวแปร SL  เนื่องจากในการส่งคำสั่ง TP หรือ Stop loss มันจะมีระยะต่ำที่สุดที่สามารถให้ใส่ค่าได้ ดังนั้นเราก็ดึงค่านั้นจาก MarketInFo มาใช้นั้นเอง 

   OrderSend(Symbol(),OP_BUY,0.01,ask,10,bid-SL*Point,bid+SL*Point); 


เป็นคำสั่งไว้ส่ง Order ครับ ก็ใส่ค่าตามตัวแปรที่ฟังช์่นต้องการ โดยเอาตัวแปรที่เราดึงค่ามาใส่ในฟังก์ชั่นนั้นเอง 


   Alert(GetLastError()); 


เป็นการแสดงผลค่า Error ที่เกิดขึ้น มันจะแสดงเป็นตัวเลข หากเกิดปัญหาอะไรก็สามารถเช็คได้ที่ 

https://book.mql4.com/appendix/errors


เพื่อนๆสามารถดูคำอธิบายเพิ่มเติมได้ที่ https://book.mql4.com/trading/ordersend