错误、漏洞、问题 - 页 1887 1...188018811882188318841885188618871888188918901891189218931894...3184 新评论 Alexandr Bryzgalov 2017.05.12 09:40 #18861 Vladimir Karputov: 在我看来,你并没有检查我给你看的代码。这么说吧:你先检查,然后再问问题。我不需要验证它,我可以看到它返回了它应该返回的东西。我说的是函数的第一次使用 Vladimir Karputov 2017.05.12 09:46 #18862 Alexandr Bryzgalov:我不需要验证它,我可以看到它返回我需要的东西我说的是使用函数的第一个变体 好吧,那么。让我们从尾部开始。1.PositionGetInteger。该函数返回先前使用该函数选择的未平仓头寸的请求属性...也就是说,在使用PositionGetInteger 之前,必须先选定位置。2.我们使用PositionGetTicket来选择位置。返回值。的职位票。在执行不成功的情况下,它返回0。你在哪里检查(在循环之后)PositionGetTicket是否有返回?没有检查,顺便说一下,那里返回的是 "零"--也就是说,PositionGetTicket被触发了,出现了错误--这相当于选择了一个不存在的位置。然后,在没有检查PositionGetTicket的结果的情况下,你试图从不存在的位置获得其属性。而在那里,在不存在的位置的属性中,要么是垃圾,要么只是空结构的数据。总结一下:如果不检查PositionGetTicket是否返回 "零",你就不能再往前走了。 Vitaly Muzichenko 2017.05.12 09:51 #18863 Vladimir Karputov: 好吧,那么。让我们从尾部开始。1.PositionGetInteger。该函数返回先前使用该函数选择的未平仓头寸的请求属性...也就是说,在使用PositionGetInteger 之前,必须先选择位置。2.我们使用PositionGetTicket来选择位置。返回值。的职位票。在执行不成功的情况下,它返回0。你在哪里检查(在循环之后)PositionGetTicket是否有返回?没有检查,顺便说一下,那里返回的是 "零"--也就是说,PositionGetTicket被触发了,出现了错误--这相当于选择了一个不存在的位置。然后,在没有检查PositionGetTicket的结果的情况下,你试图从不存在的位置获得其属性。而在那里,在不存在的位置的属性中,要么是垃圾,要么只是空结构的数据。总结一下:如果不检查PositionGetTicket是否返回 "零",你就不能再往前走了。 谢谢你,非常详细,很有帮助。 Alexandr Bryzgalov 2017.05.12 09:57 #18864 Vladimir Karputov: 好吧,让我们这样走。让我们从尾部开始。1.PositionGetInteger。该函数返回先前使用该函数选择的未平仓头寸的请求属性...也就是说,在使用PositionGetInteger 之前,必须先选择位置。2.我们通过使用PositionGetTicket来选择位置。返回值。的职位票。在执行不成功的情况下,它返回0。你在哪里检查(在循环之后)PositionGetTicket是否有返回?没有检查,顺便说一下,那里返回的是 "零"--也就是说,PositionGetTicket被触发了,出现了错误--这相当于选择了一个不存在的位置。然后,在没有检查PositionGetTicket的结果的情况下,你试图从不存在的位置获得其属性。而在那里,在不存在的位置的属性中,要么是垃圾,要么只是空结构的数据。总结一下:如果不检查PositionGetTicket是否返回 "0",你就不能再进一步。不需要解释你自己 )这不是问题所在。正确解读:一个函数在不同情况下返回相同的值可以吗? 该函数可以这样做吗? fxsaber 2017.05.12 10:00 #18865 Vladimir Karputov:总结一下:如果不检查PositionGetTicket是否返回 "0",就不能继续前进。 你可以 关于交易、自动交易系统和策略测试的论坛 虫子,虫子,问题 fxsaber, 2017.05.12 11:19 做一个检查(PositionGetInteger(POSITION_TICKET) > 0)是符合逻辑的。 fxsaber 2017.05.12 10:01 #18866 Alexandr Bryzgalov:该函数在不同情况下返回相同的值? 该函数这样做对吗? 不幸的是,是的。 关于交易、自动交易系统和策略测试的论坛 虫子,虫子,问题 fxsaber, 2017.05.12 11:29 是的,但任何其他价值也会产生误导。 Vladimir Karputov 2017.05.12 10:10 #18867 Alexandr Bryzgalov:1.你不需要解释你自己)。这不是重点2.正确理解:一个函数在不同情况下返回相同的值可以吗? 一个函数可以这样做吗? 1.你是一个粗鲁的人,在你的代码中也犯了一个错误,但不想承认它。2.该功能的运行绝对正确。因 为它(PositionGetInteger(POSITION_TYPE))只能返回2个值,即POSITION_TYPE_BUY或POSITION_TYPE_SELL。但是,在没有选择位置的情况下(而且你没有选择它--你没有检查到底选择了什么),就从(PositionGetInteger(POSITION_TYPE))中要求什么,是不计 后果的。一句话:当你的代码写得有逻辑错误时--你根本无权向系统函数要求什么。 fxsaber 2017.05.12 10:13 #18868 Vladimir Karputov:一句话:当你的代码写得有逻辑错误时--你根本无权向系统功能要求什么。 一个很好的例子是当问题从未被回答。 Alexandr Bryzgalov 2017.05.12 10:18 #18869 Vladimir Karputov: 1.你是一个粗鲁的人,在代码中犯了一个错误,但不愿承认。2.该功能的运行绝对正确。因 为它(PositionGetInteger(POSITION_TYPE))只能返回两个值,即POSITION_TYPE_BUY或POSITION_TYPE_SELL。但是,在没有选择位置的情况下(而且你没有选择它--你没有检查到底选择了什么),就从(PositionGetInteger(POSITION_TYPE))中要求什么,是不计 后果的。一句话:当你的代码写得有逻辑错误时,你根本没有权利向系统函数要求什么。对不起,有人看不出问题,这不是我的错。承认代码中存在故意的错误这一事实。而且我知道如何修复它。但问题是不同的。 Alexandr Bryzgalov 2017.05.12 10:21 #18870 如果输入参数不正确,为什么PositionGetInteger(POSITION_TYPE)函数 会返回一个购买值(等于0),而不是一个错误值(等于0)? 1...188018811882188318841885188618871888188918901891189218931894...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在我看来,你并没有检查我给你看的代码。这么说吧:你先检查,然后再问问题。
我不需要验证它,我可以看到它返回了它应该返回的东西。
我说的是函数的第一次使用
我不需要验证它,我可以看到它返回我需要的东西
我说的是使用函数的第一个变体
好吧,那么。让我们从尾部开始。
1.PositionGetInteger。
该函数返回先前使用该函数选择的未平仓头寸的请求属性...
也就是说,在使用PositionGetInteger 之前,必须先选定位置。
2.我们使用PositionGetTicket来选择位置。
返回值。
的职位票。在执行不成功的情况下,它返回0。
你在哪里检查(在循环之后)PositionGetTicket是否有返回?没有检查,顺便说一下,那里返回的是 "零"--也就是说,PositionGetTicket被触发了,出现了错误--这相当于选择了一个不存在的位置。然后,在没有检查PositionGetTicket的结果的情况下,你试图从不存在的位置获得其属性。而在那里,在不存在的位置的属性中,要么是垃圾,要么只是空结构的数据。
总结一下:如果不检查PositionGetTicket是否返回 "零",你就不能再往前走了。
好吧,那么。让我们从尾部开始。
1.PositionGetInteger。
该函数返回先前使用该函数选择的未平仓头寸的请求属性...
也就是说,在使用PositionGetInteger 之前,必须先选择位置。
2.我们使用PositionGetTicket来选择位置。
返回值。
的职位票。在执行不成功的情况下,它返回0。
你在哪里检查(在循环之后)PositionGetTicket是否有返回?没有检查,顺便说一下,那里返回的是 "零"--也就是说,PositionGetTicket被触发了,出现了错误--这相当于选择了一个不存在的位置。然后,在没有检查PositionGetTicket的结果的情况下,你试图从不存在的位置获得其属性。而在那里,在不存在的位置的属性中,要么是垃圾,要么只是空结构的数据。
总结一下:如果不检查PositionGetTicket是否返回 "零",你就不能再往前走了。
好吧,让我们这样走。让我们从尾部开始。
1.PositionGetInteger。
该函数返回先前使用该函数选择的未平仓头寸的请求属性...
也就是说,在使用PositionGetInteger 之前,必须先选择位置。
2.我们通过使用PositionGetTicket来选择位置。
返回值。
的职位票。在执行不成功的情况下,它返回0。
你在哪里检查(在循环之后)PositionGetTicket是否有返回?没有检查,顺便说一下,那里返回的是 "零"--也就是说,PositionGetTicket被触发了,出现了错误--这相当于选择了一个不存在的位置。然后,在没有检查PositionGetTicket的结果的情况下,你试图从不存在的位置获得其属性。而在那里,在不存在的位置的属性中,要么是垃圾,要么只是空结构的数据。
总结一下:如果不检查PositionGetTicket是否返回 "0",你就不能再进一步。
不需要解释你自己 )
这不是问题所在。
正确解读:一个函数在不同情况下返回相同的值可以吗?
该函数可以这样做吗?总结一下:如果不检查PositionGetTicket是否返回 "0",就不能继续前进。
关于交易、自动交易系统和策略测试的论坛
虫子,虫子,问题
fxsaber, 2017.05.12 11:19
做一个检查(PositionGetInteger(POSITION_TICKET) > 0)是符合逻辑的。该函数在不同情况下返回相同的值?
该函数这样做对吗?关于交易、自动交易系统和策略测试的论坛
虫子,虫子,问题
fxsaber, 2017.05.12 11:29
是的,但任何其他价值也会产生误导。1.你不需要解释你自己)。
这不是重点
2.正确理解:一个函数在不同情况下返回相同的值可以吗?
一个函数可以这样做吗?1.你是一个粗鲁的人,在你的代码中也犯了一个错误,但不想承认它。
2.该功能的运行绝对正确。因 为它(PositionGetInteger(POSITION_TYPE))只能返回2个值,即POSITION_TYPE_BUY或POSITION_TYPE_SELL。但是,在没有选择位置的情况下(而且你没有选择它--你没有检查到底选择了什么),就从(PositionGetInteger(POSITION_TYPE))中要求什么,是不计 后果的。
一句话:当你的代码写得有逻辑错误时--你根本无权向系统函数要求什么。
一句话:当你的代码写得有逻辑错误时--你根本无权向系统功能要求什么。
1.你是一个粗鲁的人,在代码中犯了一个错误,但不愿承认。
2.该功能的运行绝对正确。因 为它(PositionGetInteger(POSITION_TYPE))只能返回两个值,即POSITION_TYPE_BUY或POSITION_TYPE_SELL。但是,在没有选择位置的情况下(而且你没有选择它--你没有检查到底选择了什么),就从(PositionGetInteger(POSITION_TYPE))中要求什么,是不计 后果的。
一句话:当你的代码写得有逻辑错误时,你根本没有权利向系统函数要求什么。
对不起,有人看不出问题,这不是我的错。
承认代码中存在故意的错误这一事实。
而且我知道如何修复它。
但问题是不同的。
如果输入参数不正确,为什么PositionGetInteger(POSITION_TYPE)函数 会返回一个购买值(等于0),而不是一个错误值(等于0)?