如何使图表上的输出为单行字体? - 页 7 1234567 新评论 Alexey Volchanskiy 2017.12.05 07:48 #61 Renat Fatkhullin:思考并大幅改善它有什么问题?已经有一个MQL4-MQL5库处于 "它能工作,而且很好 "的模式,正在撕扯着你的头发。人们正在认真地用它来比较两个平台的速度。而现在你提供的不是思考,而是创造一个新的尖端工具,将被拖着到处说 "MT5比较慢"。我什么都不明白。我再次建议,如果fxsaber有时间和愿望。1.为MT5制作一个库(MT4可选),在测试器/优化器模式下禁用不必要的功能(目前是图形)。2.要做到这一点,可以将这些昂贵的功能包裹在定义中,并根据操作模式,启用或禁用它们没有必要如此情绪化,没有人在攻击MT5。 Alexey Volchanskiy 2017.12.05 07:53 #62 fxsaber:有一个通用的工具,可以让你用一句话来衡量测试器中代码的性能。我们设法在那里看到了很多东西。特别是,单次运行比优化运行要慢。关于评论的问题,开发商给出了他们的答案。到目前为止,我自己通过一条线 加速了1.5-2倍的优化。而SD告诉我关于性能的一个 重要细微差别。担心函数执行的微秒数只在优化模式下是合理的。在实时性方面,这没有什么区别。而评论对专家顾问的实时表现没有起到任何作用,即使它的速度慢了一个数量级。但事实是,几乎没有人以这样的方式编写EA,使其在测试器中尽可能快地运行。 请写一个关于如何实现这一目标的常见问题。请把你的想法都放在一个地方。我们会把它们放在你的博客和其他地方,我可能会在YouTube上制作一个视频剪辑,并把它放在MQ频道。你无疑在这种系统性的事情上有丰富的经验,让我们为了共同的利益而分享吧! fxsaber 2017.12.05 08:16 #63 Alexey Volchanskiy: 请写一个关于如何实现这一目标的常见问题。让所有的思想都在一个地方。有一个伟大的主题就是为了这个。也许有人会花大量的时间和精力,根据本线程中的许多帖子,编制一个逐节的FAQ。对于性能,我总是使用相同的配方--TesterBenchmark +profiler。当然,还要在测试器的功能和真实贸易之间找到一个合理的平衡。这就是MT4Orders的编写方式。该程序的目的是在测试器中快速工作,在真实账户上理想地工作。为此,我们需要了解,在同一个测试器中,有一些(有时是昂贵的)检查,对于真正的交易来说是不必要的。这导致了巨大的节约。以及对同一历史的缓存等。也就是说,有必要写一些库,这些库的内脏有时对测试者和真实者有不同的逻辑。不幸的是,Trade.mqh并不是这样一个库。 Особенности языка mql5, тонкости и приёмы работы 2017.02.24www.mql5.com В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач... Alexey Volchanskiy 2017.12.05 08:26 #64 fxsaber:有一个伟大的主题就是为了这个。也许有人会花大量的时间和精力,根据本线程中的许多帖子,编制一个逐节的FAQ。对于性能,我总是使用相同的配方--TesterBenchmark +profiler。当然,还要在测试器的功能和真实贸易之间找到一个合理的平衡。这就是MT4Orders的编写方式。该程序的目的是在测试器中快速工作,在真实账户上理想地工作。为此,我们需要了解,在同一个测试器中,有一些(有时是昂贵的)检查,对于真正的交易来说是不必要的。这导致了巨大的节约。以及对同一历史的缓存等。也就是说,有必要写一些库,这些库的内脏有时对测试者和真实者有不同的逻辑。不幸的是,Trade.mqh并不是这样一个库。 这就是我在以前的帖子中想说的。在上述分支上做一个FAQ是最重要的任务。让我们来做一个关于加速优化的FAQ,这是个很卑微的任务。你只要写下你的想法,如果有任何代码,就添加代码。我将试着总结一下,刷一下,然后我们达成一致意见后再发布。我会做这个剪辑,我有很多经验,没问题。 fxsaber 2017.12.05 08:42 #65 Alexey Volchanskiy: 让我们来做一个不大的任务--做一个关于加速优化的FAQ。利他主义有时是一件好事。但时间并不属于我,它属于家庭。谦虚的代码和食谱被分享。这似乎足够了。我不拥有任何秘密。 Nikolai Semko 2017.12.05 14:27 #66 fxsaber:而且它这样做是正确的。这和改变对象的属性后不做ChartRedraw一样有意义。用术语来说就是ChartRedraw应该在大量写入后被调用,而不是在每次写入后。 是的,但如果我有一个小画布,比如130x80像素,这还不到总窗口的1%,而我需要将当前信息输出到其中。所以在MT4中,我可以用Update(false)来做,而不用重绘整个屏幕,但在MT5中,我每次都要重绘整个屏幕。而且它的资源密集度要高几个数量级。而且这不是一个测试,而是一个工作课题。 fxsaber 2017.12.05 14:33 #67 Nikolai Semko: 是的,但如果我有一个小画布,比如130x80像素,不到总窗口的1%,而我需要在其中显示当前信息。所以在MT4中,我可以用Update(false)来做,而不用重绘整个屏幕,但在MT5中,我每次都要重绘整个屏幕。而且它的资源密集度要高几个数量级。而且这不是一个测试,而是一个工作课题。我确信,在kanvas或任何其他动作时,屏幕从未被部分重绘。 Alexey Volchanskiy 2017.12.05 14:37 #68 fxsaber:利他主义有时是一件好事。但时间并不属于我,它属于家庭。谦虚的代码和食谱被分享。这似乎足够了。我没有任何秘密。谦虚是伟大的!我也是一个谦虚的人。利他主义在大多数情况下是为已故的特蕾莎修女服务的。虽然,有时这种坏病的根源--利他主义--也会在我身上萌发出来 )) Nikolai Semko 2017.12.05 14:50 #69 fxsaber:当然,当kanvas或任何其他动作时,屏幕永远不会被部分重绘。是的,我错了。我错了,我说MT4的ResourceCreate 没有ChartRedraw,每次都会重绘画布。它只是偶尔做一次,而MT5根本就不做。是的,我当然是个哑巴。在硬件层面上,屏幕上下文不能只改变屏幕的一部分,而是整个屏幕。 当我引入一个小的延迟Sleep(10)时,我明白了。 附加的文件: TestSpeedText.mq4 5 kb 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
思考并大幅改善它有什么问题?
已经有一个MQL4-MQL5库处于 "它能工作,而且很好 "的模式,正在撕扯着你的头发。人们正在认真地用它来比较两个平台的速度。
而现在你提供的不是思考,而是创造一个新的尖端工具,将被拖着到处说 "MT5比较慢"。
我什么都不明白。我再次建议,如果fxsaber有时间和愿望。
1.为MT5制作一个库(MT4可选),在测试器/优化器模式下禁用不必要的功能(目前是图形)。
2.要做到这一点,可以将这些昂贵的功能包裹在定义中,并根据操作模式,启用或禁用它们
没有必要如此情绪化,没有人在攻击MT5。
有一个通用的工具,可以让你用一句话来衡量测试器中代码的性能。我们设法在那里看到了很多东西。特别是,单次运行比优化运行要慢。
关于评论的问题,开发商给出了他们的答案。到目前为止,我自己通过一条线 加速了1.5-2倍的优化。
而SD告诉我关于性能的一个 重要细微差别。
担心函数执行的微秒数只在优化模式下是合理的。在实时性方面,这没有什么区别。而评论对专家顾问的实时表现没有起到任何作用,即使它的速度慢了一个数量级。
但事实是,几乎没有人以这样的方式编写EA,使其在测试器中尽可能快地运行。
请写一个关于如何实现这一目标的常见问题。让所有的思想都在一个地方。
有一个伟大的主题就是为了这个。也许有人会花大量的时间和精力,根据本线程中的许多帖子,编制一个逐节的FAQ。
对于性能,我总是使用相同的配方--TesterBenchmark +profiler。当然,还要在测试器的功能和真实贸易之间找到一个合理的平衡。这就是MT4Orders的编写方式。该程序的目的是在测试器中快速工作,在真实账户上理想地工作。为此,我们需要了解,在同一个测试器中,有一些(有时是昂贵的)检查,对于真正的交易来说是不必要的。这导致了巨大的节约。以及对同一历史的缓存等。也就是说,有必要写一些库,这些库的内脏有时对测试者和真实者有不同的逻辑。不幸的是,Trade.mqh并不是这样一个库。
有一个伟大的主题就是为了这个。也许有人会花大量的时间和精力,根据本线程中的许多帖子,编制一个逐节的FAQ。
对于性能,我总是使用相同的配方--TesterBenchmark +profiler。当然,还要在测试器的功能和真实贸易之间找到一个合理的平衡。这就是MT4Orders的编写方式。该程序的目的是在测试器中快速工作,在真实账户上理想地工作。为此,我们需要了解,在同一个测试器中,有一些(有时是昂贵的)检查,对于真正的交易来说是不必要的。这导致了巨大的节约。以及对同一历史的缓存等。也就是说,有必要写一些库,这些库的内脏有时对测试者和真实者有不同的逻辑。不幸的是,Trade.mqh并不是这样一个库。
让我们来做一个不大的任务--做一个关于加速优化的FAQ。
利他主义有时是一件好事。但时间并不属于我,它属于家庭。
谦虚的代码和食谱被分享。这似乎足够了。
我不拥有任何秘密。
而且它这样做是正确的。这和改变对象的属性后不做ChartRedraw一样有意义。用术语来说就是
ChartRedraw应该在大量写入后被调用,而不是在每次写入后。
是的,但如果我有一个小画布,比如130x80像素,不到总窗口的1%,而我需要在其中显示当前信息。所以在MT4中,我可以用Update(false)来做,而不用重绘整个屏幕,但在MT5中,我每次都要重绘整个屏幕。而且它的资源密集度要高几个数量级。而且这不是一个测试,而是一个工作课题。
我确信,在kanvas或任何其他动作时,屏幕从未被部分重绘。
利他主义有时是一件好事。但时间并不属于我,它属于家庭。
谦虚的代码和食谱被分享。这似乎足够了。
我没有任何秘密。
谦虚是伟大的!我也是一个谦虚的人。利他主义在大多数情况下是为已故的特蕾莎修女服务的。虽然,有时这种坏病的根源--利他主义--也会在我身上萌发出来 ))
当然,当kanvas或任何其他动作时,屏幕永远不会被部分重绘。
是的,我错了。我错了,我说MT4的ResourceCreate 没有ChartRedraw,每次都会重绘画布。它只是偶尔做一次,而MT5根本就不做。
是的,我当然是个哑巴。在硬件层面上,屏幕上下文不能只改变屏幕的一部分,而是整个屏幕。
当我引入一个小的延迟Sleep(10)时,我明白了。