动态取消已经发送的 BUY LIMIT 订单

Dynamically canceling already sent BUYLIMIT order

我正在这样使用 OrderSend

OrderSend(Symbol(),OP_BUYLIMIT,Lots,100, 50,200,"",Magic,0,Red);

在这种情况下,当价格到达100时执行买入。

但我想在价格到100时再检查一层

像这样。

// when price comes to 100.
if (MacD > 0){buy cancel;}

这可能吗?或者OrderSend不能取消?

鉴于您的 OrderSend() 创建了一个 BUY-LIMIT 挂单:

您的经纪商已经在他们的账簿上创建了一个挂起的 XTO 指令,事实上,一旦市场价格 (Ask) 达到设定的 XTO-OrderOpenPrice() == 100.0,这样的挂起订单轮流执行自动设置价格 == 100.0,无需任何其他干预。

这是一个常见的程序。


如果您想做其他事情,一旦价格达到设定值 100.0:

嗯,
在这种情况下,最好不要使用挂单,因为当价格接近挂单集 OrderOpenPrice().

时修改它的机会为零

关于所谓的StopLevelFreezeLevel距离设定价格有详细说明,一旦市场价格徘徊在这些邻近区域,就可以防止任何此类希望的修改、取消甚至删除发生。

所以,
任一
不要放置挂单(并使用普通市场订单{ OP_BUY | OP_SELL } 保留所有基于 XTO-s 的 XTO 操作)

修改您的挂单 { OP_BUYLIMIT | OP_BUYSTOP | OP_SELLLIMIT | OP_SELLSTOP } 订单管理政策,以便在价格仍处于 MarketInfo()-检查的 StopLevel 区域和 FreezeLevel 区域之外时做出决定。