[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1050

 

我如何写条件if(ordershistorytotal()"补充了一个订单")?

 
Stasjan:

我如何写条件if(ordershistorytotal()"补充了一个订单")?

为此,OrdersHistoryTotal()的前一个值必须存储在一个静态变量 中,并且必须在条件中比较前一个值和当前值。如果它有变化,那么它就有补充,因为那里的数值不会向小的方向变化。
 
Reshetov:
要做到这一点,OrdersHistoryTotal()的前一个值必须存储在一个静态变量中,并且必须在条件中比较前一个值和当前值。如果它有变化,那么它就有补充,因为那里的数值不会向下变化。

谢谢!!!
 
prom18:
请帮助。专家顾问在信号旁边放了两个吊坠BuyStop和SellStop。还有一个信号是打开一个买入挂单。我必须根据最后一个信号的条件修改一个旧的买入订单。我是通过OrderModify()函数做到的。这并不奏效。它给了我们一个错误4051。如何选择所需的顺序。我知道我们应该选择票据,但如何确定所需订单的票据(在这种情况下,我们正在处理BuyStop)。至少要解释一下行动的逻辑。谢谢你!

int ticket = -1;

...

OrderSelect(...)。

如果(OrderType() == OP_BuyStop) {

ticket = OrderTicket()。

OrderModify(...)。

return(0);

}

 
Reshetov:
要做到这一点,OrdersHistoryTotal()的前一个值必须存储在一个静态变量中,并且必须在条件中比较前一个值和当前值。如果它有变化,那么它就有补充,因为那里的数值不会向下变化。

有什么建议可以让它变得和以前一样吗?
 
Roman.:

1当然不多。这在很大程度上取决于经纪人执行订单的速度,取决于你向经纪人发出订单的速度(来自互联网),也可能取决于我们(我)不知道的真实账户上的 "东西"。斯拉瓦写道,经纪人如何削减他的pipsaur(通过所谓的 "个人方法 "给客户)增加一个最小的距离从2,3点到18 - 20点,在这里看到一个分支https://forum.mql4.com/ru/37451/page10。
我把2个点放到 "缓冲区"--现在所有的交易都已经开始了 )再次感谢。
 
Stasjan:

有没有关于如何重置它的提示?

static prevhitorytotal = 0;

...

如果(OrderHistoryTotal()!= prevhistorytotal) {

// 补足了一个订单

}

prevhistorytotal = OrderHistoryTotal()。

 
Reshetov:
为此,OrdersHistoryTotal()的前一个值必须存储在一个静态变量中,并且必须在条件中比较前一个值和当前值。如果它有变化,那么它就有补充,因为那里的价值没有向下变化。


static int totalh=OrdersHistoryTotal();

如果(OrdersHistoryTotal()>totalh)

我的理解是否正确?

 
Reshetov:

static prevhitorytotal = 0;

...

如果(OrderHistoryTotal()!= prevhistorytotal) {

// 补足了一个订单

}

prevhistorytotal = OrderHistoryTotal()。


明白了吗?

 
Stasjan:


static int totalh=OrdersHistoryTotal();

不正确。

static int totalh=0; //static variables are declared before calls start(), init() and deinit()

...

int start() {

...

if (OrderHistoryTotal() != totalh) {

// 补足了一个订单

}

totalh = OrderHistoryTotal()。

...

}

原因: