PDA

View Full Version : OrderModify (ECN)



oxntaras97
09-01-2009 21:59, 09:59 PM
Tôi chỉ gặp một chút rắc rối khi tìm ra cách tốt nhất để sử dụng OrderModify trên một nhà môi giới ECN.

Về cơ bản, tôi đặt hàng:
ticket = OrderSend (Ký hiệu (), OP_BUY, Rất nhiều, Hỏi, Trượt, 0,0, Kiểm tra EA, 16384,0, Xanh lục);

Sau đó, một dòng khác có:
OrderModify (ticket, OrderOpenPrice (), Ask-Point * StopLoss, Ask Point * TakeProfit, 0, Green);

Nhưng nếu thị trường đang chuyển động nhanh thì lợi nhuận và stoploss sẽ không được đặt tương đối so với vị trí nhập cảnh, mà đúng hơn là được đặt vào Hỏi tại thời điểm nó được sửa đổi.

Tôi đã cố gắng như sau:
OrderModify (ticket, OrderOpenPrice (), OrderOpenPrice () - StageStopLoss, OrderOpenPrice () Stage * TakeProfit, 0, Green);

Tuy nhiên, điều đó sẽ gây ra lỗi trong bảng điều khiển và cũng không chấp nhận thứ tự thay đổi.

Có suy nghĩ gì không? Cảm ơn!

pedroaragoh1
11-01-2021 01:50, 01:50 AM
OrderModify (ticket, 0, OrderOpenPrice () - Stage * StopLoss, OrderOpenPrice () Poi nt * TakeProfit, 0, CLR_NONE); OpenPrice () bạn đã sử dụng chỉ có thể được sử dụng với Lệnh chờ xử lý. (Không thể thay đổi OpenPrice của một lệnh thị trường) - Ngoài ra tôi nhận thấy rằng bạn đặt màu xanh lá cây trong đó - Bạn có thực sự muốn nhìn thấy khi sửa đổi xảy ra? Nó sẽ ghi đè lên mũi tên NEWOrder.

oxntaras97
11-01-2021 03:11, 03:11 AM
Nếu tôi đã rõ ràng, tôi không chắc chắn. Về cơ bản, dòng sản phẩm OrderSend được theo sau bởi OrderModify như ECN mà tôi đang sử dụng không cho phép tôi đặt SL TP vào chính xác cùng một dòng. Như vậy, khi thị trường đang chuyển động nhanh chóng, nó đặt SL TP liên quan đến giá chào bán thay vì giá mở. Tôi muốn đặt SL TP liên quan đến giá mở cửa thực tế, do đó tại sao tôi đã sử dụng OrderOpenPrice () tại dòng OrderModify. OrderModify được định nghĩa là: bool OrderModify (int ticket, double price, double stoploss, dual takeprofit, hết hạn datetime, color arrow_color = CLR_NONE) vì vậy tôi phải có: OrderModify (ticket, OrderOpenPrice (), lt; lt; stoploss liên quan đến lệnh mở pricegt; gt ;, lt; lt; takeprofit liên quan đến đơn hàng mở pricegt; gt ;, 0, CLR_NONE) Điều tôi cần biết là những gì tôi cần sử dụng giữa các lt; lt; gt; gt; ở dòng đó

pedroaragoh1
11-01-2021 04:31, 04:31 AM
Một lần nữa ... FIRST Openprice () là vấn đề của bạn (CHỈ các đơn đặt hàng đang chờ cho phép OpenPrice được thay đổi). Tôi có mã tương thích ECN- Đoạn mã hoạt động này: OrderModify (ticket, 0, NormalizeDouble (OrderOpenPrice () (StopLoss * Stage), Digits), 0,0, CLR_NONE); Ngoài ra, trừ khi bạn sử dụng OrderSelect () mà OrderOpenPrice () có NO Value ... - Có thể làm askprice = Ask; THEN làm OrderSend của bạn và OrderModify bằng cách sử dụng Askprice biến. Double askprice = Hỏi; ticket = OrderSend (Biểu tượng (), OP_BUY, Lo ts, askprice, Slippage, 0,0, Test EA, 16384,0, Green);/bool xbool = OrderSelect (ticket, SELECT_BY_TICKET); - tùy chọn trong trường hợp này OrderModify (ticket, 0, askprice-Point * StopLoss, askprice Stage * TakeProfit, 0, CLR_NONE); trong trường hợp bạn đã sử dụng OrderSelect () thì bạn có thể sử dụng OpenOrderPrice () - NOT cần thiết trong ví dụ trước. .

oxntaras97
11-01-2021 05:52, 05:52 AM
Ah, lý do tôi truy vấn bạn sẽ được kể từ khi chạy EA trên một tài khoản sống nó có thể mất OrderModify bằng cách sử dụng OrderOpenPrice đầu tiên (), nhưng không phải khi tôi sử dụng nó để xác định TP SL. Tôi sẽ sử dụng đề xuất của bạn, cảm ơn!

oxntaras97
11-01-2021 07:13, 07:13 AM
Oh .. Nhưng bạn có thể làm điều này cho OrderSend không? Nếu giá Hỏi thay đổi giữa việc gán giá kép và thực hiện OrderSend, nó sẽ không từ chối lệnh đó?

oxntaras97
11-01-2021 08:34, 08:34 AM
Ah, đợi đã. . Tôi phải sử dụng lý tưởng OrderSelect, lấy nó. Đó là những gì tôi sẽ làm. . thở dài

pedroaragoh1
11-01-2021 09:54, 09:54 AM
Ticket = OrderSend (Ký hiệu (), OP_BUY, Lo ts, askprice, Slippage, 0,0, Test EA, 16384,0, Green); bool xbool = OrderSelect (vé, SELECT_BY_TICKET); OrderModify (ticket, 0, OrderOpenPrice () - Point * StopLoss, OrderOpenPrice () Point * TakeP rofit, 0, CLR_NONE); Đúng, bạn nên áp dụng OrderSelect () sau đó bạn có thể làm điều đó như thể bạn dự định (mà không cố gắng thay đổi giá của một đơn đặt hàng hiện tại) - Bạn không cần phải lo lắng về việc chuyển giá. Các lệnh này hoạt động theo mili giây. Bạn thực sự có thể làm khá một chút liên quan đến tuyên bố mà không có bất kỳ lo lắng.

oxntaras97
11-01-2021 11:15, 11:15 AM
Cảm ơn một lần nữa!