新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 185

 
我是一个新手,我想订购一份工作,现在我的余额为0,我可以开一个主题吗?还是我必须先给我的账户充值?"当他们从我的账户中冻结资金时,我有点困惑。
 
OBERON1812:
我是一个新手,我想订购一份工作,我的余额为0,我可以开设一个主题吗? 还是我必须在开始时给我的账户充值?
你必须先给你的账户充值所需的金额,否则在提出申请的过程中会出现问题。也许你应该先提出请求,然后选择一个表演者,并为你的账户充值所需金额。
 

Vitaly Muzichenko:


关闭时反向过冲

谢谢你...我对未结订单的反向查询感兴趣...这样做是否正确?
 for(int i=OrdersTotal()-1; i>=0; i--) {
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
 
Yaroslav Nykula:
谢谢你...我有兴趣翻阅未完成的订单 ...这能正常工作吗?
是的,你可以通过Print() 检查。
 
Vitaly Muzichenko:
是的,你可以通过Print()检查。
 for(int i=OrdersTotal()-1; i>=0; i--) {
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
谢谢...一切对我来说基本清楚,但i=OrdersTotal()-1; 为什么是-1,而 不是i=OrdersTotal();... 在这种情况下,事实证明,最后一个打开的订单将被排除在重新计算之外--还是我搞错了?








 
Yaroslav Nykula:
谢谢...我明白了一切,但我对i=OrdersTotal()-1 感到困惑为什么是-1而 不是i=OrdersTotal();...在这种情况下,事实证明,最后一个未结订单将被排除在重新计算之外--还是我错了?









OrderTotal()显示有多少个订单,就有多少个订单,而且订单计数从零开始。换句话说,在这种情况下,我们需要减去1才是正确的。
 
Yaroslav Nykula:
谢谢...我明白了一切,但我对i=OrdersTotal()-1 感到困惑为什么是-1而 不是i=OrdersTotal();...在这种情况下,事实证明,最后一个未结订单将被排除在重新计算之外 - 或者我错了?
Print(),你就不会有这样的问题了,这并不难
 

对读到这篇文章的人来说,你好。

问题如下,如何在MT4测试器中用历史 Ask价格数据 设置点差或ASK价格。
让我解释一下。
在MT4终端,我们有一些符号的历史(其中所有的价格都是Bid),我们有Symbol_ask历史(所有的ask价格,这个历史也是由经纪人提供的)。

有可能在测试器中使用这些数据吗?

 
Yaroslav Nykula:
谢谢...我明白了一切,但我对i=OrdersTotal()-1; 感到困惑,为什么是-1,而 不只是i=OrdersTotal();...在这种情况下,事实证明,最后一个打开的订单将被排除在重新计算之外--还是我搞错了?

这是因为它是从0开始计算的。如果你有10个订单,那么计数序号应该是0...9,也就是0...(10-1),其中OrdersTotal()=10

编写程序时记住这一点即可。

 
Yaroslav Nykula:
谢谢...我明白了一切,但是i=OrdersTotal()-1; 为什么是-1而 不是i=OrdersTotal();... 在这种情况下,事实证明,最后一个未结订单将被排除在重新计算之外--还是我错了?
数量1
2
3
4
5
6
7
8
9
10
索引0
1
2
3
4
5
6
7
8
9

正如你所看到的--有10个订单,但它们的索引少了1,因为在任何数组中都是从0开始计数的。

OrdersTotal()是10,但是如果你用OrdersTotal()开始一个循环,那么你将进入数组之外--订单10的索引不在那里--最大的索引是9--所以OrdersTotal()-1