time of [Bench1()] = 1483377100000000
time of [Bench2()] = 1725035100000000
time of [Bench1()] = 1523441100000000
time of [Bench2()] = 1712777100000000
time of [Bench1()] = 1416779100000000
time of [Bench2()] = 1452093100000000
time of [Bench1()] = 1399366100000000
time of [Bench2()] = 1449939
inputint Range = 0;
double Res = 0;
#define GETCURRENTTICK GetCurrentTick1(Tick)
//#define GETCURRENTTICK GetCurrentTick2(Tick, !i)//#define GETCURRENTTICK GetCurrentTick3(Tick)voidOnTick()
{
MqlTick Tick;
for (int i = 0; i < 100; i++)
if (GETCURRENTTICK)
Res += Tick.bid;
}
doubleOnTester()
{
return(Res);
}
bool GetCurrentTick1( MqlTick &Tick )
{
return(SymbolInfoTick(_Symbol, Tick));
}
bool GetCurrentTick2( MqlTick &Tick, constbool NewTick = false )
{
staticMqlTick CurrentTick;
if (NewTick)
SymbolInfoTick(_Symbol, CurrentTick);
Tick = CurrentTick;
return(true);
}
bool GetCurrentTick3( MqlTick &Tick )
{
staticMqlTick _Tick; // Аналог Bid в MT4
_Tick.bid += _Point; // Хоть какой-то расход вычислительный ресурсов.
Tick = _Tick;
return(true);
}
#define GETCURRENTTICK GetCurrentTick1(Tick)
#define GETCURRENTTICK GetCurrentTick2(Tick, !i)
#define GETCURRENTTICK GetCurrentTick3(Tick)
2020.05.2114:19:52.450 Core 1 pass 0 returned result 693275970.165784in0:00:08.9252020.05.2114:19:59.980 Core 1 pass 1 returned result 693275970.165784in0:00:07.5292020.05.2114:20:07.370 Core 1 pass 2 returned result 693275970.165784in0:00:07.3902020.05.2114:20:14.694 Core 1 pass 3 returned result 693275970.165784in0:00:07.3232020.05.2114:20:21.688 Core 1 pass 4 returned result 693275970.165784in0:00:06.9942020.05.2114:20:29.114 Core 1 pass 5 returned result 693275970.165784in0:00:07.4252020.05.2114:20:36.133 Core 1 pass 6 returned result 693275970.165784in0:00:07.0192020.05.2114:20:43.557 Core 1 pass 7 returned result 693275970.165784in0:00:07.4242020.05.2114:20:49.580 Core 1 pass 8 returned result 693275970.165784in0:00:06.0222020.05.2114:20:57.273 Core 1 pass 9 returned result 693275970.165784in0:00:07.6932020.05.2114:21:03.993 Core 1 pass 10 returned result 693275970.165784in0:00:06.7192020.05.2114:21:03.993 Tester optimization finished, total passes 112020.05.2114:21:04.003 Statistics optimization done in1 minutes 22 seconds
2020.05.2114:21:04.003 Statistics shortest pass 0:00:06.022, longest pass 0:00:08.925, average pass 0:00:07.3142020.05.2114:21:04.003 Statistics local 11 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2020.05.2114:21:49.346 Core 1 pass 0 returned result 693275970.165784in0:00:03.0502020.05.2114:21:51.108 Core 1 pass 1 returned result 693275970.165784in0:00:01.7612020.05.2114:21:52.903 Core 1 pass 2 returned result 693275970.165784in0:00:01.7952020.05.2114:21:54.731 Core 1 pass 3 returned result 693275970.165784in0:00:01.8272020.05.2114:21:56.536 Core 1 pass 4 returned result 693275970.165784in0:00:01.8032020.05.2114:21:58.341 Core 1 pass 5 returned result 693275970.165784in0:00:01.8052020.05.2114:22:00.135 Core 1 pass 6 returned result 693275970.165784in0:00:01.7932020.05.2114:22:01.912 Core 1 pass 7 returned result 693275970.165784in0:00:01.7772020.05.2114:22:03.663 Core 1 pass 8 returned result 693275970.165784in0:00:01.7502020.05.2114:22:05.458 Core 1 pass 9 returned result 693275970.165784in0:00:01.7942020.05.2114:22:07.274 Core 1 pass 10 returned result 693275970.165784in0:00:01.8152020.05.2114:22:07.274 Tester optimization finished, total passes 112020.05.2114:22:07.284 Statistics optimization done in0 minutes 21 seconds
2020.05.2114:22:07.284 Statistics shortest pass 0:00:01.750, longest pass 0:00:03.050, average pass 0:00:01.9062020.05.2114:22:07.284 Statistics local 11 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2020.05.2114:23:00.873 Core 1 pass 0 returned result 661757660284.981689in0:00:02.8592020.05.2114:23:02.704 Core 1 pass 1 returned result 661757660284.981689in0:00:01.8302020.05.2114:23:04.488 Core 1 pass 2 returned result 661757660284.981689in0:00:01.7832020.05.2114:23:06.227 Core 1 pass 3 returned result 661757660284.981689in0:00:01.7372020.05.2114:23:07.778 Core 1 pass 4 returned result 661757660284.981689in0:00:01.5502020.05.2114:23:09.517 Core 1 pass 5 returned result 661757660284.981689in0:00:01.7382020.05.2114:23:11.288 Core 1 pass 6 returned result 661757660284.981689in0:00:01.7712020.05.2114:23:12.997 Core 1 pass 7 returned result 661757660284.981689in0:00:01.7082020.05.2114:23:14.815 Core 1 pass 8 returned result 661757660284.981689in0:00:01.8172020.05.2114:23:16.621 Core 1 pass 9 returned result 661757660284.981689in0:00:01.8052020.05.2114:23:18.313 Core 1 pass 10 returned result 661757660284.981689in0:00:01.6912020.05.2114:23:18.313 Tester optimization finished, total passes 112020.05.2114:23:18.323 Statistics optimization done in0 minutes 21 seconds
2020.05.2114:23:18.323 Statistics shortest pass 0:00:01.550, longest pass 0:00:02.859, average pass 0:00:01.8442020.05.2114:23:18.323 Statistics local 11 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
下午好,MT5日志显示这个消息:2020.05.21 05:49:44.364 虚拟主机获取虚拟主机列表失败(www.mql5.com:443 发送请求失败[12002])。
请你们告诉我这是什么意思,该怎么做?
谢谢你!
我的调试器拒绝在我的一个项目中工作。此外,它的行为也很难预测。有时它就是拒绝进入断点。它还拒绝进入一些功能。起初我以为原因是更新(也许是调试时出了问题)。但在其他更简单的程序中,一切似乎都在运作。不过我没怎么检查,因为我在做我的主要项目。它相当复杂,只包括我自己设计的15个模块(我没有计算标准模块的数量)。主模块最多包含2000行。我想也许这都是关于项目的复杂性......另外,在一些地方,我使用宏来处理重复的代码片段。我还使用了标准的UI元素,如CAppDialog、CCheckGroup、CComboBox、CButton等,我根据我的程序功能重新编写了这些元素。也许因为它们,调试工作无法进行......例如,我专门写的CCheckGroup::itemCheckState(const string item)方法就没有调试。该方法找到复选框的项目并检查它是否被选中(其状态)。
这就是我最终得到的用户界面。
一些用户界面元素被暂时分类。这里有一个分支,我描述了我如何覆盖CAppDialog元素的Show()和Hide()方法:https://www.mql5.com/ru/forum/338301 编译器在那一刻抱怨了,发生了一个关键错误。
最后,该项目编译正常,编译器没有产生任何错误。但调试失败,只是没有显示一些代码片段、函数、方法等的执行。
据我所知,这可能有几个原因。
建设和系统信息。
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
在CCheckGroup::itemCheckState方法中(调试器无法进入),我放了这样的东西。
并得到以下信息。
2020.05.21 13:20:44.229 CCheckGroup::itemCheckState item: 39 state: 32
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
如果没有调试器正常工作,项目可能会延迟很长时间。我希望开发者能关注这个很可能与调试器有关的错误。
它的文字很多,我还没有全部读完。
但是,如果有些东西在调试版本中可以工作,而在发布版本中却不能工作,或者相反,请检查所有的变量和字段,特别是在类/结构中,是否被初始化了。
#define GETCURRENTTICK GetCurrentTick1(Tick)
#define GETCURRENTTICK GetCurrentTick2(Tick, !i)
#define GETCURRENTTICK GetCurrentTick3(Tick)
关于SymbolInfo函数 是免费的问题。
也许这个方法是内联的,那么这就不是调试器的问题,而是编译器在调试模式下的问题。
确切地说,这个项目 变成了溢出的宏,包括我的和来自标准模块的。也许这就是为什么调试器并不总是能够将*.ex5调试文件中的命令与*.mq5源文件和其他模块中的行相匹配。
SymbolInfo函数是免费的。
所以这是函数本身的成本,而不是通过值传递字符串的成本,而不是通过引用传递字符串的成本。
如果这个函数的执行在EA的执行时间中占很大比例(我不太相信),那么你的带缓存的版本就是一个相当好的解决方案。
确切地说,这个项目变成了溢出的宏,包括我的和来自标准模块的。也许这就是为什么调试器并不总是能够将*.ex5调试文件中的命令与*.mq5源文件和其他模块中的行相匹配。
是函数本身的成本,而不是通过值传递字符串的成本,而不是通过引用传递字符串的成本。
这就是我最初被引导的原因。
关于交易、自动交易系统和策略测试的论坛
错误、漏洞、问题
fxsaber, 2020.05.20 13:24
最好能有
在优化器中,这些函数被调用了几百亿次。
此外,如果这个函数的执行在EA的运行时间中占有相当大的比例(我不太相信),那么你的缓存变体就是一个相当好的解决方案。
在某个阶段,不仅所花时间的相对部分变得重要,而且绝对部分也很重要。