如何使图表上的输出为单行字体? - 页 6

 
Nikolai Semko:

另一方面,MT4的情况则完全不同。
在MT5上,Comment和Canvas的工作是差不多的,而在MT4上,Comment要快1000倍。我的结论是,在MT5中,评论是通过内部BitMap实现的,而在MT4中,它的工作方式不同。这种差异令人印象深刻。我想我要把这个问题移到错误论坛。

这里有详细的解释:https://www.mql5.com/ru/forum/1111/page2102#comment_6156364

MT4中的评论基本上是假的,不会导致图表重绘。

 
Renat Fatkhullin:

这里有详细的解释:https://www.mql5.com/ru/forum/1111/page2102#comment_6156364

MT4中的评论基本上是假的,不会导致图表重绘。


现在要得出实际的结论

1.如果能用#define对应的函数来取代测试中影响性能的一系列函数就更好了

2.这里90%的女士/人都是在defines里,就像在橙子里的oinking。

4.论坛上有一个定义的怪物fxsaber

5.也许请他制作并维护一个类似的定义库,这样凡人就不必考虑程序在什么模式下工作?

社区和fxsaber对这样的建议有什么看法?

 

如果人们不了解这个工具,并试图测试无法测试的速度,那么定义与它有什么关系。

调出一个评论来看是正常的。

每秒调用1000-10000次在逻辑上(你不能看)和技术上都是不正常的--它导致不显示/重绘整个图表(不只是你的线)的高成本。

你需要了解你在做什么。这就是我在答复中详细写到的。

 
Renat Fatkhullin:

如果人们不了解这个工具,并试图测试无法测试的速度,那么定义与它有什么关系。

调出一个评论来看是正常的。

每秒调用1000-10000次在逻辑上(你不能看)和技术上都是不正常的--它导致不显示/重绘整个图表(不只是你的线)的高成本。

你需要了解你在做什么。这就是我在答复中详细写到的内容。

而你却建议 "给我一段代码让我继续思考",无视对为什么这样做是错误的解释。

雷纳特,我这里有一个工作的EA。我是个傻瓜,对这些画一无所知。它的作用和它的伟大。我提交它进行测试,看到由于我所描述的问题而导致的性能下降。

做一个定义来决定我们在哪种模式下工作不是很有意义吗?而在测试/优化模式 下,它就是不输出任何东西?

 
Alexey Volchanskiy:

雷纳特,我这里有一个工作的EA。我是个傻瓜,对这些画一点都不了解。它的作用和它的伟大。我正在测试它,看到由于我所描述的问题,性能有所下降。

做一个定义来决定我们在哪种模式下工作不是很有意义吗?而在测试/优化模式 下,它就是不输出任何东西?


不要指望人们能像那样理解一切。上帝保佑,这个论坛上有20%的人了解OOP。可以把它比作对汽车的认识。所有人都在驾驶它们,但很少有人了解同样的内燃机是如何工作的,而一小部分%的人可以以某种方式解决一些问题。

但他们都是你的客户)。

 
Alexey Volchanskiy:

雷纳特,我这里有一个工作的EA。我是个傻瓜,对这些画一点都不了解。它的作用和它的伟大。我正在测试它,看到由于我所描述的问题,性能有所下降。

做一个定义来决定我们在哪种模式下工作不是很有意义吗?而在测试/优化模式 下,它就是不输出任何东西?

而思考和大幅改善一切的问题是什么呢?

已经有一些MQL4-MQL5库处于 "它能工作,而且很好 "的模式,这就是为什么我们要撕掉我们的头发。人们正在认真地用它来比较两个平台的速度。

而现在你提供的不是思考,而是制造另一个手工产品,将被拖着到处说 "MT5更慢"。

 
Renat Fatkhullin:

已经有一个MQL4-MQL5库处于 "工作和很好 "的模式,这让你撕掉了你的头发。人们正在认真地用它来比较两个平台的速度。

这不是一个有理有据的说法。

 
Alexey Volchanskiy:

做一个决定我们在哪种模式下工作的定义,这不是很合乎逻辑吗?而在测试/优化模式 下就是不输出任何东西?

有一个通用的工具,可以让你在测试器中用一行来测量代码性能。我们可以在那里看到很多东西。特别是,单次运行比优化运行要慢。

关于评论的问题,开发商给出了他们的答案。到目前为止,我自己通过一条线 加速了1.5-2倍的优化。

而SD告诉我关于性能的一个 重要细微差别


担心函数执行的微秒数只在优化模式下是合理的。在实时性方面,这没有什么区别。而评论对专家顾问的实时表现没有起到任何作用,即使它的速度慢了一个数量级。


但事实是,几乎没有人以这样的方式编写EA,使其在测试器中尽可能快地运行。

 
Renat Fatkhullin:

如果人们不了解这个工具,并试图测试一些不能测试速度的东西,那么定义与它有什么关系。

雷纳特-法特库林

已经有一个MQL4-MQL5库处于 "它的工作原理和它的伟大 "模式,让你撕掉你的头发。人们正在认真地使用它来比较两个平台的速度。


而我个人对所做的工作并不感到遗憾。这些看似无用的基准原来并不 无用。由于你的详细解释,许多有用的东西被发现了,结果一些谜题开始拼凑起来。我在任何地方都找不到它,所以我必须把它捏出来:))。

例如,虽然我羞于承认,但我不知道Kanvas的Update()函数会重绘整个窗口,而不论其大小。但为了理解它,我只得翻开CCanvas的内幕。而至少只知道这个事实会改变工作的逻辑,让我在一些与图形相关的实现中免于不必要的手势。而《评论》与此无关,只是 "为了弄清事实真相 "而已。再次感谢!

仍然不清楚的是,MT5的Update(false)函数不会在屏幕上绘制任何东西,而MT4的函数不会绘制整个窗口,而只是画布本身。 这意味着MT5的ResourceCreate函数在没有ChartRedraw()的情况下不会绘制一个像素阵列,但在MT4中却会。我认为它在MT5中也会很有用。

 
Nikolai Semko:

MT5中的ResourceCreate在没有ChartRedraw()的情况下不会显示像素阵列,但在MT4中会显示。

而且它做得很正确。这就像在改变对象属性后不做ChartRedraw一样合乎逻辑。使用的术语是

关于交易、自动交易系统和策略测试的论坛

错误, 漏洞, 问题

Renat Fatkhullin, 2017.12.05 02:51

  • MT5有一个更正确的系统来改变图表上的对象,你需要清楚地了解混合读/写命令的后果
    建议不要混合使用读/写命令,而是单独进行大量读和大量写

ChartRedraw应该在大量写入后被调用,而不是在每次写入后。