Để đóng một lệnh mua (buy) hoặc bán (sell), bạn có thể sử dụng hàm
OrderClose()
. Hàm này có các tham số sau:
bool OrderClose(int ticket, double lots, double price, int slippage, color arrow_color);
Trong đó:
-
ticket
: số thứ tự của lệnh cần đóng.
-
lots
: số lots cần đóng. Nếu bạn muốn đóng toàn bộ lots của lệnh, bạn có thể sử dụng giá trị -1.
-
price
: giá cần đóng. Nếu bạn muốn đóng với giá thị trường, bạn có thể sử dụng giá trị 0.
-
slippage
: giá trị slippage cho phép. Giá trị này được tính bằng số điểm (pip). Nếu bạn muốn sử dụng giá trị mặc định của broker, bạn có thể sử dụng giá trị -1.
-
arrow_color
: màu sắc của mũi tên hiển thị trên biểu đồ. Nếu bạn không muốn hiển thị mũi tên, bạn có thể sử dụng giá trị clrNONE
.
Ví dụ, để đóng một lệnh mua và giá đóng là giá thị trường, bạn có thể sử dụng đoạn mã sau:
void CloseOrder(string LoaiLenh)
{
for(int i =OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol())
{
if(LoaiLenh == "OP_BUY" && OrderType()==OP_BUY)
{
if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0))
Print("OrderClose da bi loi: ",GetLastError());
}
if(LoaiLenh == "OP_SELL" && OrderType()==OP_SELL)
{
if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0))
Print("OrderClose da bi loi: ",GetLastError());
}
if(LoaiLenh == "OP_BUYSELL" && (OrderType()<2 && OrderType()>-1))
{
if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0))
Print("OrderClose da bi loi: ",GetLastError());
}
}
}
}
}
Nếu bạn chưa hiểu hay có vấn để gì thắc mắc cần giải đáp, vui lòng bình luận ở bên dưới nhé. BDOFOREX sẽ cố gắng giải đáp hết tất cả những gì mà chúng tôi biết để giúp bạn.
👉 Group ZALO hỏi đáp và trao đổi CODE:
TẠI ĐÂY