探讨一下对于ZIGZAG一类折现指标在MT5上碰到的问题...

 

几年前就发现MT5指标编写过程中有个很奇怪的现象->>

先讲讲我的代码入坑历程:

1.MT5编写的控件刷新会有闪烁的毛病,我当时开始编写交易助手面板的时候发现我在使用CANVAS画板进行对控件刷新显示内容的时候,MT4是响应非常迅速且毫无刷新感觉,但是MT5会有一个闪烁的过程,很明显看到间隔0.几秒的控件白屏时间

2.我制作有一个算法非常复杂的ZIGZAG指标,如同1一样我会对它制作两个一样功能和显示的不同的MT4和MT5版本,也就是说对于使用者来说他们使用的是一样的功能. 但是这个问题恰巧困扰我好几年,由于这款指标的MT5版本购买的者基本都没给我反馈这个问题,就算我自己发现了这问题但是因为我调试结果为,可能这是MT5造成的.在数据加载到ZIGZAG的指标缓冲区的时候他就是会不断闪烁

3.谈到2点指标闪烁问题,当时的闪烁还只是有闪烁的感觉,并不会出现长时间的白屏时间,而现在我发现随着MT5的更新白屏空隙越来越长了->(注意:1和2我用的DRAW_SECTION类型的BUFFER),在MT4和MT5编程中都有十几年了,但是我在这些年来没看到MT5的进步,反而是BUG制造者.单单这个闪烁问题,同样的代码逻辑,代码运算MT4中可以完美呈现效果,而MT5就是不行,虽然我感觉这里可能是MT5的图形渲染逻辑问题,那从侧面是不是也说明MT5这方面做的太差了呢?

指标严重闪烁gif图如下,不仅仅闪烁,而且长期的话还会长时间白屏无渲染.

闪烁问题1

有代码指标编写经历的朋友可以探讨下你们是怎么在MT5在编写ZIGZAG类的代码的,最近我可能画点时间和精力去尝试和MT4不同的编写方式进行对ZIGZAG类的指标进行优化,有相同精力的朋友可以来探讨探讨,希望MQL5的官方程序员们能有个重视,在开发MT5的时候请不要影响了用户的体验.同样的指标,同样适配MT5编写后,因为MT5的渲染问题给我们扯了后腿.


关于1点我碰到的控件数据刷新白屏问题,我后期是这么解决的:我在刷新控件显示之前加了个逻辑判断,先判断数据已经变化了,再刷新Bitmap_label上的内容.... 这样虽然不能根除,但是可以基本上拒绝了无效的闪烁.其他类似编写都这样解决.

OBJ_BITMAP_LABEL


希望帖子热度顶一下,让MQL5官方的程序员也看到,毕竟MT5使用下来,发现对指标虽然进行了很多改进比如色彩填充,比如变色线支持上都会比MT4的要好. 但是在图形渲染上(我只能归结你们对指标缓冲区渲染的逻辑不同而造成的)在MT5的K线数据刷新逻辑上,都是BUG制造机,因为在我的等待中我已经两三年了看到这个闪烁问题越来越严重,在代码不变的前提下.

也欢迎大家来指导我一下,是如何编写MT5的ZIGZAG类指标和MT4的体验感一样的.


闪烁2

 
在很多MT4和MT5指标编写过程中还一个踩坑的地方就是:
在MT5中编写指标如果使用ArraySetAsSeries(BuffXXX,true);来设置和MT4同样K线序列逻辑的代码中,代码在无任何错误的前提下,MT5可能就会数据混乱,指标显示不正常.
这时候解决方法就是,用MT5的序列逻辑,重写一份,这样就不会再有图表上指标乱画的情况.
而且从10年到现在,MT5很多地方提供了和MT4类似的获取数据逻辑,但是却有很多BUG,其实这块地方对我们有经验的开发者来说,本身MT4和MT5的逻辑很轻松能适应,但是就是适应了逻辑还不行,MT5他有很多地方虽然靠近回了MT4,不过它不能适配仍旧有BUG...
大家可以谈谈MT5遇到的其他各种BUG和解决方案,有需要我也可以帮你解决一些你遇到的问题,不过有些可能只能绕弯子解决了.
原因: