Tìm hiểu cách lập trình EA để đặt trong bài viết MQL4 Thông số đơn hàng đang chờ xử lý hoàn chỉnh này lệnh dừng và lệnh giới hạn chờ xử lý.
Lệnh dừng lỗ đang chờ xử lý
Lệnh dừng mua được đặt trên giá hiện tại, trong khi lệnh dừng bán được đặt dưới giá hiện tại. Các nhà giao dịch kỳ vọng giá sẽ tăng đến mức dừng mua hoặc giảm xuống mức dừng bán và tiếp tục kiếm lợi nhuận theo hướng đó. Trong MQL4, hai tham số phải được thay đổi trong hàm OrderSend() để điều chỉnh nó cho các lệnh dừng, như chúng ta có thể thấy trong ví dụ dừng mua sau: OrderSend(), OP_BUYSTOP, Lots, Ask + PriceLevel * Point, Slippage, Bid-StopLoss *Point, Bid+TakeProfit*Point, “EAName”, MagicNumber, 0, Blue) Bạn có thể thấy rằng tham số thứ nhất và thứ ba đã thay đổi: tham số đầu tiên, đại diện cho loại đơn đặt hàng, đã được thay đổi thành OP_BUYSTOP và tham số thứ ba, đại diện cho giá, đã được thay đổi từ Hỏi thành Hỏi+Mức giá. Chúng tôi cần dấu cộng (+) ở đây vì chúng tôi sẽ thêm pip vào giá chào bán để thể hiện mức cao hơn thị trường mà chúng tôi muốn tham gia bằng điểm dừng mua. Mức giá bên ngoài = 20Biến bên ngoài này có thể được sửa đổi sau. Nhưng giá trị mặc định là 20 có nghĩa là tôi kỳ vọng thị trường sẽ đạt 20 điểm trước khi tôi tham gia giao dịch: Hỏi + Mức giá (biến bên ngoài của tôi mặc định là 20) * Điểm. Hãy xem xét một ví dụ về điểm dừng bán: OrderSend(), OP_SELLSTOP, Lots, Bid – PriceLevel * Point, Slippage, Ask+StopLoss *Point, Ask-TakeProfit*Point, “EAName”, MagicNumber, 0, Đỏ) Như bạn có thể thấy lại, chỉ có tham số thứ nhất và thứ ba khác với lệnh thị trường bán tiêu chuẩn: span>Đầu tiên tham số đầu tiên, cho biết loại đơn đặt hàng, đã được thay đổi thành OP_SELLSTOP và tham số thứ ba, cho biết giá, hiện đại diện cho Mức giá thầu thay vì Giá thầu. Chúng tôi muốn có dấu âm (-) sau giá thầu, vì chúng tôi sẽ trừ điểm khỏi giá thầu để biểu thị bên dưới mức thị trường mà chúng tôi muốn tham gia bằng lệnh dừng bán .
Lệnh giới hạn đang chờ xử lý
Lệnh giới hạn ngược lại với lệnh dừng lỗ. Lệnh giới hạn mua được đặt dưới giá hiện tại, trong khi lệnh giới hạn bán được đặt trên giá hiện tại. Các nhà giao dịch dự đoán rằng giá sẽ giảm xuống mức giới hạn mua hoặc tăng lên mức giới hạn bán, kích hoạt lệnh và sau đó đảo ngược hướng để chốt lời.
Sau đây là ví dụ về lệnh giới hạn mua:
OrderSend() , OP_BUYLIMIT, Lô, Hỏi – Mức giá * Điểm, Trượt giá, Dừng lỗ giá thầu *Điểm, Giá thầu+Chốt lời*Điểm, “EAName”, MagicNumber, 0, Xanh lam)
Đây là ví dụ về lệnh giới hạn bán:
OrderSend(), OP_SELLSTOP, Lot, Giá thầu + Mức giá * Điểm, Trượt giá , Hỏi+Dừng lỗ *Điểm, Hỏi-Lợi nhuận*Điểm, "EAName", MagicNumber, 0, đỏ)
Như bạn có thể thấy lại, thứ tự tham số đầu tiên của loại đã được sửa đổi thành OP_SELL và tham số thứ ba của giá đã được sửa đổi để cho biết rằng giá vào vẫn ở Mức giá, mặc định là cao hơn 20 pip so với giá thầu hiện tại.
Tham số hết hạn (từ giây đến cuối) span>
Giả sử bạn muốn đặt ngày hết hạn cho lệnh dừng mua đang chờ xử lý. Thời gian hết hạn này nằm ở tham số áp chót và phải tính bằng giây.
Ví dụ: giả sử tôi có một EA đang chạy trên biểu đồ hàng giờ và tôi muốn nó hết hạn sau 6 giờ. Sau đó, mình sẽ phải tính xem có bao nhiêu giây trong 6 giờ như sau: 60*60*6 = 21600
OrderSend(), OP_BUYSTOP, Lots , Hỏi + Mức giá * Điểm, Trượt giá, Dừng lỗ giá thầu *Điểm, Giá thầu+Chốt lời*Điểm, “EAName”, MagicNumber, TimeCurrent()+21600, xanh lam)
Lệnh này sẽ hết hạn sau 6 giờ.
Đôi khi tôi muốn tối ưu hóa thời gian hết hạn này nên tôi thích đặt nó vào một biến bên ngoài. Giả sử tôi muốn tối ưu hóa thời gian hết hạn tính bằng giờ.
Sau đó, tôi tạo một biến bên ngoài có tên PendingExpirationHours và một biến kép tính số giờ:
< / p>
extern double PendingExpirationHours = 6;// Đặt nó ở đầu mã nguồn cùng với các biến bên ngoài khác double Expiration = 60*60*PendingExpirationHours;
OrderSend(), OP_BUYSTOP, Lot, Ask + PriceLevel * Điểm, Trượt giá, Bid-StopLoss *Điểm, Bid+TakeProfit*Point, “EAName”, MagicNumber, TimeCurrent()+expiration, blue)
< p>Bây giờ, nếu muốn, tôi có thể tiếp tục tối ưu hóa PendingExpirationHours trong phạm vi 0-50 với bước 1 để xem giờ nào là tốt nhất cho thời gian hết hạn của lệnh chờ xử lý .