1

我正在这样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不能取消?

4

1 回答 1

1

鉴于您OrderSend()已创建BUY-LIMIT挂单:

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

这是一个常见的程序。


鉴于您想做其他事情,一旦价格达到设定值100.0

好吧,
在这种情况下,不应该使用挂单,因为当价格接近挂单集时,修改它的机会为零OrderOpenPrice()

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

因此,
要么
不要下挂单(并使用普通的市场订单保留基于 XTO 的所有 XTO 操作{ OP_BUY | OP_SELL }
,要么
修改你的挂单订单{ OP_BUYLIMIT | OP_BUYSTOP | OP_SELLLIMIT | OP_SELLSTOP }管理策略,以便在价格仍然超出MarketInfo()-检查了 StopLevel-zone 和 FreezeLevel-zones。

于 2017-12-11T13:15:20.790 回答