MetaTrader 5 Python用户组 - 如何在Metatrader中使用Python - 页 24

 
Maxim Dmitrievsky:

视觉上类似的情况也不容易被发现。

无法解释图片。

 
fxsaber:

无法解释图片。

文章在路上

有趣的是,在一些人的头脑中,周期和目标有时是重合的))。
 
fxsaber:

我在博客上发布了一个计算方法,与之完全相似。不幸的是,OpenCL信息的水平,需要比我高得多的能力。

我希望看到一个简单的OpenCL实现的例子(就像在博客中),以及加速的结果。

虽然有要求,但为什么没有联系就谈?
 
Renat Fatkhullin:
虽然有要求,但为什么没有链接呢?

没有索赔。我没有提供该博客文章的链接,以免引起对自我推销的指责。

https://www.mql5.com/ru/blogs/post/731774

Research03: находим простые связи между движениями цены в разных частях суток
Research03: находим простые связи между движениями цены в разных частях суток
  • 2019.12.04
  • www.mql5.com
Как это ни парадоксально, но именно при активной алготоровле много времени уходит на вглядывание в монитор. Иногда возникают иллюзии, будто что-то полезное уловил глазом. Так произошло и в этот раз. Давно была гипотеза, что какие-то движения внтури дня имеют связь с движениями после в этом же дне. Например, может показаться, что микрогепы в...
 
Renat Fatkhullin:

在过去的10年里,我(和其他人)都没能在Visual Studio中看到这个参数的使用。即使打开了所有的循环扫荡报告标志。

它根本不起作用,甚至在有很多并行化可能性的大型项目中也不起作用。只有直接的OpenMP与手动的循环分区才可以工作。

在MQL5中,这些循环没有被并联。

我同意fxsaber的观点,OpenCL需要很高的入门门槛。
有这个事实是好的,但只有少数人擅长这个。

事实上,mql5中的循环不是平行的,这就是可能实现的建议。
现在的平台是在Clang中,也许那里有很好的并行性,我不知道。
建议的重点是将其拉入mql指令。

 
Renat Fatkhullin:

我的理解是否正确,如果你把这个任务设置为寻找与优化器类似的运动,那么遗传学就不会工作?

在这种情况下,测试器将不会被启用进行全面的列举,因为有很多通道要进行。

也就是说,解决这个问题的唯一方法是在终端运行脚本。

 
Lyuk:

决定在一个真实的项目上检查一下--也许python一直在使用jit编译器?我有rangerhttps://github.com/ranger/ranger, 项目有122个文件(26368行),为@njit ping了它们。

$ grep '@njit' $(xbps-query -f ranger)

结果--没有任何发现。我担心积极使用这一功能会把启动变成一个多分钟的探索过程。

 
Lyuk:

恕我直言,你只是不知道如何烹饪它。重做了你的例子。

在Python中。


下面是Python 3.8和MQL5在单线程/OpenCL模式下的比较:时间以秒为单位,越少越好

pi-single.py
pi-multi.py
速度PI.mq5单一
速度 PI.mq5 OpenCL
4.1743
0.2101
4.1836
0.1025

Python在JIT模式下通过numba,铁定是。

  • Windows 10 x64, Intel Xeon E5-2690 v3 @ 2.60GHz
  • GeForce RTX 2080

使用OpenCL的例子非常简单,它不需要任何修饰的优化。虽然这个任务对于OpenCL来说并不庞大,而且它在准备过程中引发了开销,但它仍然给出了一个更好的结果。

使用OpenCL可以常规地运行非常大的并行计算。进入门槛并不高,只需要一天时间就能搞清楚如何使用。

附上用于播放的文件。

附加的文件:
 
Renat Fatkhullin:

虽然这个任务对于OpenCL来说并不庞大,而且它在准备过程中引发了开销,但它仍然给出了一个更好的结果。

你是如何对代码的OpenCL部分进行调试的?

 
Renat Fatkhullin:

使用OpenCL的例子非常简单,没有任何优化的修饰。虽然这个任务对于OpenCL来说并不庞大,而且它在准备过程中触发了开销,但它仍然给出了一个更好的结果。


Renat,你能不能具体说明在哪些情况下OpenCL会有优势,处理大量的数组或者在一个EA中有大量的符号和指标?

我不是一个专业的程序员,在编程层面的简单事情对我来说可能很难