错误、漏洞、问题 - 页 1851 1...184418451846184718481849185018511852185318541855185618571858...3184 新评论 Renat Fatkhullin 2017.04.12 20:02 #18501 kaus_bonus:谢谢你的答复。总的来说,结果就像我在帖子中显示的那样。我一直在用一个普通的测试。 不是作弊,这两个系统的条件是一样的。然而,MT4和MT5之间的结果几乎相差200倍(由于-必须控制与服务器数据的完全同步??和ping?).在MT4中大约0.6ms,我还会想办法的。显然,那里的数据已经预先准备好了,因此这个数字并没有显示真实的成本。MT4有一个相当不同的意识形态,实际上终端为每个脚本/专家在系统层面上复制了大量的数据,从MQL4代码中出来。因此,在MQL4中进行的测量通常不能证明数据接收的实际资源消耗。当然,这些费用是存在的,但它们是在另一个层面上--系统对它们负责。很明显,当你的任务扩展到无限大的数据流(深度历史,数以万计的工具)时,MT4机制(为每个机器人创建市场数据的副本)无法应用。因此,我不得不大幅改变和改进MQL5,摆脱了Open/High/Low/Close的直接访问,改用CopyXXX函数。考虑到MT5的数据规模,专家顾问为600万个条形图建立欧元兑美元M1 副本的成本太高。 MT5/MQL5采用按需加载数据的策略,没有提前复制,这意味着有更好的机会从MQL5代码中衡量实际成本。在113毫秒内将数据库带入内存、检查同步和准备MT5中一个复杂对象的缓存是可以接受的。 Renat Fatkhullin 2017.04.12 20:07 #18502 kaus_bonus: 例如,由于MT没有市场筛选器,我写了一个小脚本,将符号添加到市场观察中,价格只能通过CopyClose获得,既不能通过SymbolInfoDouble,也不能通过MqlTick获得,直到符号被添加到观察中,所以这个脚本在运行时数量 非常大,运行时间无限长。这只是作为一个例子。工具不需要被添加到市场概览中,就可以获得它们的历史。对符号数据的任何引用都会触发背景数据的同步。现在有一个问题,就是我们使用了过多的缓存,整个图表数据库被提升到了它的全部深度,即使是最新的数据被请求。这导致检查数百个图表的筛选器出现大量内存超限。任务已经被设定为改变这一策略,并在距离请求的最远日期不超过500条的范围内提取数据。这将使市场筛选器的撰写不费吹灰之力。 Алексей Тарабанов 2017.04.12 20:44 #18503 fxsaber:什么是正确的方式? 你问,你答:)嗯,是的,它是。 fxsaber 2017.04.12 20:55 #18504 Алексей Тарабанов: 你问,你答:)嗯,是的,这就对了。 我从未见过简略的模板操作员电话。 Алексей Тарабанов 2017.04.12 21:10 #18505 fxsaber: 我仍然没有看到缩短后的模板操作员电话。 我已经很久没有用结构工作了。如果你需要启动整个结构数组元素,将是一个字符串操作。而你启动的那个转换后的字符串 的整数元素是正确的,这就是编译器报告的内容。如果你想启动、比较或以其他方式处理结构的数组,请问它们在MQL中是如何表示/存储的。这并不复杂,而且能大大加快工作进度。 fxsaber 2017.04.12 21:13 #18506 Алексей Тарабанов: 我需要知道哪个语法条目是这个的简写版本Struct.operator[]<int>(0); TheXpert 2017.04.12 21:32 #18507 fxsaber: 我需要知道哪个语法条目是这个的简写版本 结构[0]。 Алексей Тарабанов 2017.04.12 21:37 #18508 Комбинатор: 结构[0]。 对谁,如何 fxsaber 2017.04.12 21:43 #18509 Комбинатор: 结构[0]。 为了不浏览页面,我将复制代码 关于交易、自动交易系统和交易策略测试的论坛 虫子,虫子,问题 fxsaber, 2017.04.12 14:27 struct STRUCT { template <typename T> void operator []( int ) {} }; void OnStart() { STRUCT Struct; Struct.operator[]<int>(0); // Нормально Struct[0]<int>; // Ошибка }这两个电话是不同的。Struct.operator[]<int>(0); Struct.operator[]<MqlTick>(0);每个条目都应该有一个相应的缩写条目。哪一个? Алексей Тарабанов 2017.04.12 21:43 #18510 fxsaber: 我需要知道哪个语法条目是这个的简写版本 没有条目可以提供你想要的东西。从根本上说。在语义上。 1...184418451846184718481849185018511852185318541855185618571858...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你的答复。
总的来说,结果就像我在帖子中显示的那样。
我一直在用一个普通的测试。
然而,MT4和MT5之间的结果几乎相差200倍(由于-必须控制与服务器数据的完全同步??和ping?).
在MT4中大约0.6ms,我还会想办法的。显然,那里的数据已经预先准备好了,因此这个数字并没有显示真实的成本。
MT4有一个相当不同的意识形态,实际上终端为每个脚本/专家在系统层面上复制了大量的数据,从MQL4代码中出来。因此,在MQL4中进行的测量通常不能证明数据接收的实际资源消耗。当然,这些费用是存在的,但它们是在另一个层面上--系统对它们负责。
很明显,当你的任务扩展到无限大的数据流(深度历史,数以万计的工具)时,MT4机制(为每个机器人创建市场数据的副本)无法应用。因此,我不得不大幅改变和改进MQL5,摆脱了Open/High/Low/Close的直接访问,改用CopyXXX函数。考虑到MT5的数据规模,专家顾问为600万个条形图建立欧元兑美元M1 副本的成本太高。
MT5/MQL5采用按需加载数据的策略,没有提前复制,这意味着有更好的机会从MQL5代码中衡量实际成本。
在113毫秒内将数据库带入内存、检查同步和准备MT5中一个复杂对象的缓存是可以接受的。
例如,由于MT没有市场筛选器,我写了一个小脚本,将符号添加到市场观察中,价格只能通过CopyClose获得,既不能通过SymbolInfoDouble,也不能通过MqlTick获得,直到符号被添加到观察中,所以这个脚本在运行时数量 非常大,运行时间无限长。这只是作为一个例子。
工具不需要被添加到市场概览中,就可以获得它们的历史。对符号数据的任何引用都会触发背景数据的同步。
现在有一个问题,就是我们使用了过多的缓存,整个图表数据库被提升到了它的全部深度,即使是最新的数据被请求。这导致检查数百个图表的筛选器出现大量内存超限。
任务已经被设定为改变这一策略,并在距离请求的最远日期不超过500条的范围内提取数据。这将使市场筛选器的撰写不费吹灰之力。
什么是正确的方式?
你问,你答:)嗯,是的,它是。
你问,你答:)嗯,是的,这就对了。
我仍然没有看到缩短后的模板操作员电话。
我已经很久没有用结构工作了。如果你需要启动整个结构数组元素,将是一个字符串操作。而你启动的那个转换后的字符串 的整数元素是正确的,这就是编译器报告的内容。如果你想启动、比较或以其他方式处理结构的数组,请问它们在MQL中是如何表示/存储的。这并不复杂,而且能大大加快工作进度。
我需要知道哪个语法条目是这个的简写版本
结构[0]。
对谁,如何
结构[0]。
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
fxsaber, 2017.04.12 14:27
这两个电话是不同的。
每个条目都应该有一个相应的缩写条目。哪一个?
我需要知道哪个语法条目是这个的简写版本
没有条目可以提供你想要的东西。从根本上说。在语义上。