错误、漏洞、问题 - 页 1658 1...165116521653165416551656165716581659166016611662166316641665...3184 新评论 Sergei Vladimirov 2016.09.01 03:12 #16571 Alexey Volchanskiy:不管是什么问题,调用任何函数都要比访问堆栈上的一个变量慢,在这个例子中就是nType。不管这种明显性如何,问题是关于内联函数。也就是说,OrderType()在编译时没有被order.type这样的东西取代。就我个人而言,我总是对这样的MQL函数调用进行 缓存,就像你的第二个案例。正如测量结果显示的那样,这是没有必要的。 fxsaber 2016.09.01 07:02 #16572 Sergei Vladimirov:不管这种明显性如何,问题是关于内联函数。也就是说,在编译时,OrderType()是否没有被order.type这样的东西取代。正如测量结果所示,这是没有必要的。从数组的内部实现 来看,相同的ArraySize必须是内联的。但我总是这样使用(我没有测量过)。而不是for (int i = 0; i < ArraySize(Array); i++)我使用const int Amount = ArraySize(Array); for (int i = 0; i < Amount; i++) 在性能方面,我最近对这个事实感到惊讶 关于交易、自动交易系统和策略测试的论坛 我怎样才能持续地通过列举? fxsaber, 2016.08.22 09:13 在阵列中添加了静态。它的工作速度几乎比开关快三倍!扔掉这样的开关。谢谢你的提示! 因此,似乎最好不要依赖编译器的优化,而总是通过最小的函数调用来 "帮助 "它,并在所有可能的地方使用常量和静态的逻辑。 Alexey Volchanskiy 2016.09.01 07:07 #16573 Sergei Vladimirov:不管这种明显性如何,问题是关于内联函数。也就是说,在编译时,OrderType()是否没有被order.type这样的东西取代。正如测量结果所示,这是没有必要的。你自己写的。Sergei Vladimirov2016.09.01 02:53# RU我自己检查过了。第二段代码的运行速度快了4倍。这一切都很清楚,这个问题已经不存在了。 fxsaber 2016.09.01 07:25 #16574 Sergei Vladimirov: 我自己测试了一下。第二段代码的运行速度是原来的四倍。一切都很清楚,问题已经消除。 不要只在分析/调试模式 下测量。那里根本就没有内联。只有Release-version应该在那里。 Inv Андрей Иващенко 2016.09.01 09:34 #16575 Inv Андрей Иващенко:下午好!各位官员,你们能告诉我从哪里开始抓虫吗?多币种专家顾问。在第一笔交易之后,测试者就会停止。出了一个错误,我找不到它的代码。是的,测试器从启动日期2016.05.01开始工作正常。如果我改变这个日期--测试器停止,并出现错误,日志如下。请提供帮助!对自己的答复。这是测试器的一个错误。现在你需要在OnInit中把任何技术指标 的手柄添加到专家顾问工作的所有符号上。 Sergei Vladimirov 2016.09.01 11:20 #16576 Alexey Volchanskiy:你自己写的。Sergei Vladimirov2016.09.01 02:53# RU我自己检查过了。第二段代码的运行速度快了4倍。这一切都很清楚,这个问题已经不存在了。 在接下来的评论中,我写了数字:单次操作的增益是1纳秒。当按两年的时间和几千次的运行来优化一个策略时,节省一个N可能是有意义的。但在实际交易中... A100 2016.09.01 12:52 #16577 A100:在构建1398中,"EX5加载失败 "的错误仍然存在(显然与该例子无关)。在固定版本中,类似情况下的1400个错误现在被重现为 "纯虚拟函数调用"。而没有评论就可以了//Script1.mq5 typedef void (*fn)(); #import "Script2.ex5" void g( fn ); #import void h() /*export*/ {} //если export без комментария - нормально void OnStart() { g( h ); }//Script2.mq5 #property library typedef void (*fn)(); void g( fn f ) export { f(); } A100 2016.09.01 14:07 #16578 不能适用 :: 以解决模糊不清的问题 #import "Script1.ex5" void g(); #import "Script2.ex5" void g(); #import typedef void (*fn)(); void OnStart() { Script1::g(); //нормально Script2::g(); //нормально fn f = Script1::g; //Error } הטרנסצנדנטלי בעל-חזון 2016.09.01 20:08 #16579 Inv Андрей Иващенко:回答我自己。这是测试器的一个错误。现在,你需要在OnInit中为所有符号添加任何技术指标 的句柄,专家顾问在其中工作。而且似乎问题发生在只获得新条形上的第一个刻度时,测试者似乎 "卡住了",落后一个条形,也就是说,EA认为条形不存在,在可视化中它确实不存在,但几秒钟后条形出现了,在M1上测试的情况下,正确的值出现在第二个刻度上(如果我理解正确),我希望开发人员会尽快解决这个令人讨厌的时刻...另外。事实证明,为了规避这个时刻,现在你必须人为地跳过新条形图的第一个刻度......。 fxsaber 2016.09.01 20:18 #16580 无法通过CTRL+F5在RTS-9.16 BCS-MetaTrader5上对EA进行调试。测试人员写道Tester Leverage 1:1 set error 1...165116521653165416551656165716581659166016611662166316641665...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不管是什么问题,调用任何函数都要比访问堆栈上的一个变量慢,在这个例子中就是nType。
不管这种明显性如何,问题是关于内联函数。也就是说,OrderType()在编译时没有被order.type这样的东西取代。
就我个人而言,我总是对这样的MQL函数调用进行 缓存,就像你的第二个案例。
正如测量结果显示的那样,这是没有必要的。
不管这种明显性如何,问题是关于内联函数。也就是说,在编译时,OrderType()是否没有被order.type这样的东西取代。
正如测量结果所示,这是没有必要的。
从数组的内部实现 来看,相同的ArraySize必须是内联的。但我总是这样使用(我没有测量过)。
而不是
我使用
在性能方面,我最近对这个事实感到惊讶关于交易、自动交易系统和策略测试的论坛
我怎样才能持续地通过列举?
fxsaber, 2016.08.22 09:13
不管这种明显性如何,问题是关于内联函数。也就是说,在编译时,OrderType()是否没有被order.type这样的东西取代。
正如测量结果所示,这是没有必要的。
你自己写的。
我自己检查过了。第二段代码的运行速度快了4倍。这一切都很清楚,这个问题已经不存在了。
我自己测试了一下。第二段代码的运行速度是原来的四倍。一切都很清楚,问题已经消除。
下午好!
各位官员,你们能告诉我从哪里开始抓虫吗?
多币种专家顾问。在第一笔交易之后,测试者就会停止。
出了一个错误,我找不到它的代码。
是的,测试器从启动日期2016.05.01开始工作正常。如果我改变这个日期--测试器停止,并出现错误,日志如下。
请提供帮助!
对自己的答复。
这是测试器的一个错误。现在你需要在OnInit中把任何技术指标 的手柄添加到专家顾问工作的所有符号上。
你自己写的。
我自己检查过了。第二段代码的运行速度快了4倍。这一切都很清楚,这个问题已经不存在了。
在构建1398中,"EX5加载失败 "的错误仍然存在(显然与该例子无关)。
在固定版本中,类似情况下的1400个错误现在被重现为 "纯虚拟函数调用"。而没有评论就可以了
不能适用 :: 以解决模糊不清的问题
回答我自己。
这是测试器的一个错误。现在,你需要在OnInit中为所有符号添加任何技术指标 的句柄,专家顾问在其中工作。
而且似乎问题发生在只获得新条形上的第一个刻度时,测试者似乎 "卡住了",落后一个条形,也就是说,EA认为条形不存在,在可视化中它确实不存在,但几秒钟后条形出现了,在M1上测试的情况下,正确的值出现在第二个刻度上(如果我理解正确),我希望开发人员会尽快解决这个令人讨厌的时刻...
另外。
事实证明,为了规避这个时刻,现在你必须人为地跳过新条形图的第一个刻度......。