สวัสดีครับ
วันนี้มีของดีมากแจกอีกแล้ว ท่านเคยเจอปัญหาเหล่านี้มั๊ย เวลาเปิดออเดอร์หลายออเดอร์แล้วปิดกับมือปิดไม่ทัน
อยากปิดเฉพาะออเดอร์ที่เป็นบวก กว่าจะกดปิดเสร็จ ก็วิ่งไปเป็นราคาลบซะแล้ว สุดท้ายก็บ่นกับตัวเอง
วันนี้เรามีทางออกให้กับท่านด้วย EA CloseMe การทำงานง่ายๆ แค่กดปุ่มให้ปิดออเดอร์ที่เราต้องการ โดย EA
CloseMe จะมี Option ในการปิดออเดอร์ให้เราเลือกหลากหลายคือ
1. Close All ปิดออเดอร์ทั้งหมด
2. Close+ ปิดออเดอร์ที่เป็นบวก ไม่ว่าจะคู่เงินใดก็ตาม
3. Close - ปิดออเดอร์ที่เป็นลบ ไม่ว่าจะคู่เงินใดก็ตาม
4. Close Buy ปิดออเดอร์ที่เป็น Buy ไม่ว่าจะคู่เงินใดก็ตาม
5. Close Sell ปิดออเดอร์ที่เป็น Sell ไม่ว่าจะคู่เงินใดก็ตาม
6. Close Symbol ปิดออเดอร์ที่เป็น Symbolนี้ทั้งหมด(Symbol ที่เราRun EA เท่านั้น)
7. Clear Panding Order ที่ตั้งไว้ทั้งหมด
แต่ถ้ามีข่าวแรงๆ การใช้ EA ช่วยปิด อาจจะมีบ้างที่ได้ราคาไม่ตรงตามที่ต้องการบ้าง เพราะราคาอาจวิ่งไปเร็ว
กว่าคำสั่งจะส่งไปถึง แต่อย่างไรก็รวดเร็วกว่าการปิดด้วยมือทีละออเดอร์
การใช้ EA ไม่ว่าจะเป็น EA ตัวไหนก็ตาม อาจมีปัญหาบ้างกับ Broke ที่มีการรีโค็ด ก็คือ Broke อาจไม่รับคำสั่งที่
เราส่งไป ทำให้เราต้องส่งคำสั่งซ้ำ พอส่งซ้ำอีกครั้ง เราอาจไม่ได้ราคาที่เราต้องการ เพราะฉะนั้นก่อนใช้ EA ถ้า
เลือกได้ให้เลือก Broke ที่ไม่มีการ รีโค๊ดดีกว่า
อย่าลืม ทดลองใช้ EA กับ demo account ให้เข้าใจการทำงานก่อนไปลองใช้จริงครับ
ตัวอย่างการทำงานหลักๆ ของ EA โดยแต่ละปุ่มจะแยกเป็น function ในการทำงาน ซึ่งได้อธิบายใน comment ของ source code แล้วว่า function ไหนทำงานอะไรครับ นำไปใช้ได้ไม่ยาก
//+------------------------------------------------------------------+
void ClosePM(int pm){ // function ปิดออเดอร์ที่เป็น บวกและลบ
double order_ask ;
double order_bid ;
double order_point;
double order_digit;
double order_stoplevel;
for(int cnt=OrdersTotal()-1; cnt>=0; cnt--)
{
if(OrderSelect(cnt,SELECT_BY_POS) )
{
order_ask = MarketInfo(OrderSymbol(),MODE_ASK);
order_bid = MarketInfo(OrderSymbol(),MODE_BID);
order_point = MarketInfo(OrderSymbol(),MODE_POINT);
order_digit = MarketInfo(OrderSymbol(),MODE_DIGITS);
if(pm == 1) // plus
{
if(OrderProfit() >= 0){
if(OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),order_bid,MaxSlippage,Violet);
if(OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),order_ask,MaxSlippage,Violet);
}
}
if(pm == 2) // minus
{
if(OrderProfit() < 0){
if(OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),order_bid,MaxSlippage,Violet);
if(OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),order_ask,MaxSlippage,Violet);
}
}
}
}
}
//+------------------------------------------------------------------+
void CloseAll(){ // function ปิดออเดอร์ทั้งหมด
double order_ask ;
double order_bid ;
double order_point;
double order_digit;
double order_stoplevel;
for(int cnt=OrdersTotal()-1; cnt>=0; cnt--)
{
if(OrderSelect(cnt,SELECT_BY_POS) )
{
order_ask = MarketInfo(OrderSymbol(),MODE_ASK);
order_bid = MarketInfo(OrderSymbol(),MODE_BID);
order_point = MarketInfo(OrderSymbol(),MODE_POINT);
order_digit = MarketInfo(OrderSymbol(),MODE_DIGITS);
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),order_bid,MaxSlippage,Violet);
}
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),order_ask,MaxSlippage,Violet);
}
}
}
}
//+------------------------------------------------------------------+
void CloseBuySell(int buysell){ // function ปิดออเดอร์ Buy และ Sell
double order_ask ;
double order_bid ;
double order_point;
double order_digit;
double order_stoplevel;
for(int cnt=OrdersTotal()-1; cnt>=0; cnt--)
{
if(OrderSelect(cnt,SELECT_BY_POS) )
{
order_ask = MarketInfo(OrderSymbol(),MODE_ASK);
order_bid = MarketInfo(OrderSymbol(),MODE_BID);
order_point = MarketInfo(OrderSymbol(),MODE_POINT);
order_digit = MarketInfo(OrderSymbol(),MODE_DIGITS);
if(OrderType()==OP_BUY && buysell == OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),order_bid,MaxSlippage,Violet);
}
if(OrderType()==OP_SELL && buysell == OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),order_ask,MaxSlippage,Violet);
}
}
}
}
//+------------------------------------------------------------------+
void CloseSymbol(){ // function close symbol ที่ run ea
for(int cnt=OrdersTotal()-1; cnt>=0; cnt--)
{
if(OrderSelect(cnt,SELECT_BY_POS) )
{
if(OrderSymbol() == Symbol())
{
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,MaxSlippage,Violet);
}
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,MaxSlippage,Violet);
}
}
}
}
}
//+------------------------------------------------------------------+
void ClearPanding(){ // function clear order panding ทั้งหมด
for(int cnt=OrdersTotal()-1; cnt>=0; cnt--)
{
if(OrderSelect(cnt,SELECT_BY_POS) )
{
if(OrderType()==OP_BUYLIMIT)
{
OrderDelete(OrderTicket());
// Print("ClearvBuylimit");
}
if(OrderType()==OP_SELLLIMIT)
{
OrderDelete(OrderTicket());
// Print("ClearvSelllimit");
}
if(OrderType()==OP_BUYSTOP)
{
OrderDelete(OrderTicket());
//Print("ClearvBuystop");
}
if(OrderType()==OP_SELLSTOP)
{
OrderDelete(OrderTicket());
//Print("ClearvSellstop");
}
}
}
}