来自一个 "傻瓜 "的问题 - 页 197 1...190191192193194195196197198199200201202203204...277 新评论 Valerii Mazurenko 2012.10.16 00:08 #1961 FiftyStars:我如何确定下一个柱状体何时打开,即尚未形成的那个柱状体? 一般来说,你不能这样做;尽管在半小时或更长时间内,正确预测的概率超过99.9%。 [删除] 2012.10.17 13:37 #1962 是否有可能像这样循环请求打开一个订单?) while(result.retcode!=TRADE_RETCODE_DONE) { if(OrderCheck(request,check)) { OrderSend(request,result); } if((MQL5InfoInteger(MQL5_TESTING)||MQL5InfoInteger(MQL5_OPTIMIZATION)))break; } Yedelkin 2012.10.17 13:58 #1963 G001: 是否有可能像这样循环请求打开一个订单?) 不可取。例如,想象一下,服务器返回的答案 不是TRADE_RETCODE_DONE,而是订单已下。那么你的代码就会因为同样的请求而使服务器过载。 [删除] 2012.10.17 14:29 #1964 Yedelkin: 不可取。例如,想象一下,服务器返回 的不是TRADE_RETCODE_DONE,而是一个已经下了订单的响应。那么你的代码就会因为同样的请求而使服务器过载。这样会不会更好? int ResBear = -1; while(ResBear == -1) { if(OrderCheck(request,check)) { ResBear = OrderSend(request,result); } if((MQL5InfoInteger(MQL5_TESTING)||MQL5InfoInteger(MQL5_OPTIMIZATION)))break; } Yedelkin 2012.10.17 14:45 #1965 G001: 这样做会更好吗? 不太可能。请看OrderSend()函数的描述。它应该告诉你,如果它被成功执行,你仍然需要检查返回代码。因此,我们将不得不采取最繁琐的方式:采取一个返回代码的列表,并思考出每个代码的程序行为。也就是说,"我们发送了OrderSend(),得到了返回代码,对我们收到的retcode作出了反应"。 第二点。最好是使用事件模型。也就是说,在一个刻度线到达后,不要循环执行该函数,在几次不成功的尝试后,退出该函数,等待新的刻度线。 [删除] 2012.10.17 14:51 #1966 谢谢,真的很繁琐,我会对尝试进行更好的限制。 Yedelkin 2012.10.17 14:54 #1967 G001: 谢谢,真的很繁琐,我会对尝试进行更好的限制。 无论如何,你总有一天要这样做的 :)从我自己的经验来说。 [删除] 2012.10.17 15:22 #1968 我相信,但到目前为止,知识是缺乏的。 tor4en 2012.10.18 21:30 #1969 对不起,我怎样才能使一个条件在测试器中没有条件,但在可视化模式的测试器中却有条件?属性列表 不允许这样做,而且由于某些原因,这个条件对我不起作用。if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_TESTER)==1 && MQL5InfoInteger(MQL5_VISUAL_MODE)==1) Denis Lazarev 2012.10.18 21:34 #1970 if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_TESTER)==1 && MQL5InfoInteger(MQL5_VISUAL_MODE)==1)从这个条件中可以看出,它将在三种情况下执行。1)测试器工作时2)当测试器不工作时3)视觉检测仪工作时因此,该函数将一直工作,最可能的是你应该删除第二个条件,用&&连接第一个和第三个。 1...190191192193194195196197198199200201202203204...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我如何确定下一个柱状体何时打开,即尚未形成的那个柱状体?
是否有可能像这样循环请求打开一个订单?)
不可取。例如,想象一下,服务器返回 的不是TRADE_RETCODE_DONE,而是一个已经下了订单的响应。那么你的代码就会因为同样的请求而使服务器过载。
这样会不会更好?
不太可能。请看OrderSend()函数的描述。它应该告诉你,如果它被成功执行,你仍然需要检查返回代码。因此,我们将不得不采取最繁琐的方式:采取一个返回代码的列表,并思考出每个代码的程序行为。也就是说,"我们发送了OrderSend(),得到了返回代码,对我们收到的retcode作出了反应"。
第二点。最好是使用事件模型。也就是说,在一个刻度线到达后,不要循环执行该函数,在几次不成功的尝试后,退出该函数,等待新的刻度线。
无论如何,你总有一天要这样做的 :)从我自己的经验来说。
对不起,我怎样才能使一个条件在测试器中没有条件,但在可视化模式的测试器中却有条件?
属性列表 不允许这样做,而且由于某些原因,这个条件对我不起作用。
if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_TESTER)==1 && MQL5InfoInteger(MQL5_VISUAL_MODE)==1)
从这个条件中可以看出,它将在三种情况下执行。
1)测试器工作时
2)当测试器不工作时
3)视觉检测仪工作时
因此,该函数将一直工作,最可能的是你应该删除第二个条件,用&&连接第一个和第三个。