[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 248

 
Roman.:
ERR_INVALID_TRADE_VOLUME 131 不正确的交易量 - 了解这个 表格并根据你的账户类型设置 "正确 "的交易量,例如在微型账户中交易量通常为0.01手,在 "经典 "账户中为0.1手...在你的开单功能中输入一个0.1手的恒定值,并检查是否量...
EA交易的是ekvit的特定百分比手数,即我只能输入10、5这样的百分比,没有输入0.1或0.01手的选项。这个问题只发生在4位数的经纪人身上。
 
MeTrade:
MaxZ:
你在工作日测试过吗?价差是浮动的吗?
整个星期都在优化,今晚和今早进行了测试。这是个问题吗?
你没有回答我关于传播的问题。
 
为什么会弹出这个警报?我花了很多精力才发现,当比较一个带有小数部分的数字时,我需要用NormalizeDouble() 将其归一化。但我今天决定试一试,玩一玩,警报就弹出来了!这些故障是什么?或者说不是突发事件?
      if (1.3320 == 1.3320)
         Alert("Ku!");
 
ScioMe:
为什么会弹出这个警报?我花了很多精力才发现,当比较一个带有小数部分的数字时,我需要用NormalizeDouble()将其归一化。但我今天决定试一试,玩一玩,警报就弹出来了!什么样的故障?或者说不是故障?
有什么小毛病吗?这些常数是相等的。该条件得到满足。
 
MeTrade:
EA以一定的百分比进行交易,也就是说,我只能输入一个百分比,如10,5,没有选择输入0.1或0.01手。这个问题只发生在4位数的经纪人身上。
这个问题只发生在4位数的经纪人身上:"......我只能输入一个百分比,例如10,5" - 所以你的计算是在开单前没有进行量的标准化,也就是说,最后你的10或5%的结果是0.123或1.548手,这导致错误编号131,请纠正手数计算的功能或询问心灵感应者,因为没有足够的 "输入"(原始)数据的主题...
 
ScioMe:
为什么会弹出这个警报?早些时候我花了很多精力试图弄清楚,当比较一个带有小数部分的数字时,我需要用NormalizeDouble()函数将其归一化。但我今天决定试一试,玩一玩,警报就弹出来了!什么样的故障?或者说不是故障?

1).编译器可以直接忽略这个条件(if语句)。

2).然而,如果编译器没有忽略这个条件,它将把每个数字写入内存,并为每个数字分配8位。它比较数字,不是像我们用眼睛那样,而是一点一点地进行比较。记忆中的数字是相同的,条件也会成立。

我对你的问题感到非常惊讶,因为我不明白这两个数字(两条记录)怎么会被认为是不平等的?

 
MaxZ:
你没有回答我关于价差的问题。
我在一个有固定点差的4位数终端上试过,一切正常。但另一个问题出现了,错误编号131,这在5位数的终端上没有发生。
 
MeTrade:
根据你的意见,我在一个有固定点差的4位数终端上试了一下,一切正常。但另一个问题出现了,错误编号131,这在5位数的终端上没有发生。
我不得不坐在这里,只是试着去猜测!:)))我相信你也会解决其他的问题。
 

请告知如何正确操作。 我的MM计算功能很复杂,在其中一个部分,当计算手数时,该功能返回0.18作为可能的最大手数,你可以打开0.1、0.2或0.3,即步长是0.1。

如果我对手数进行归一化处理,它就会被四舍五入到0.2,而且订单不再被允许,尽管允许的最大手数是0.18。

 
MaxZ:

""""...
Я очень удивлён был Вашему вопросу, так как не могу понять как можно два эти числа (две записи) воспринять не равными??""""


纠结于这个问题已经有一段时间了。它几乎打破了我的大脑!问题是这样的:我需要在if()中执行一个平等条件。我们在比较真实的数字。我无法收到警报,我在想这到底是怎么回事。这些数字,你可以用肉眼看到它们是相等的!但终端机不会打印它。我终于怀疑有什么不对劲的地方,但我无法弄清楚哪里出了问题。我需要来自mql4-社区的帮助。我在这里问了一个问题,谢谢,专家们(似乎是Roman和其他好心人)都回答说,在比较实数时,我需要用NormalizeDouble()函数 将其归一化。这很有帮助。但今天我试了一下,有什么问题吗?它们在没有归一化的情况下可以安全地进行比较。总之,我得出的结论是,有时它们被比较,有时它们不被比较,所以为了安全起见,我最好把它们正常化。