MetaTrader 5 Python User Group - メタトレーダーで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でこのパラメータの使い方を確認することができませんでした。ループスイープの報告フラグを全てONにしても。

それは単にうまくいかなかっただけで、並列化できる可能性がたくさんある大規模なプロジェクトでもうまくいかないのです。ループ分割を手動で行うダイレクトOpenMPのみが動作します。

MQL5では、ループは並列化されていません。

OpenCLが高い参入障壁を必要とすることは、fxsaberと同じ意見です。
あることはいいのですが、得意な人は少数派です。

mql5のループが並列でないこと、それが実装の可能性を示唆するものでした。
今はプラットフォームがClangになっているので、もしかしたら良い並列性があるのかもしれませんね。
提案のポイントは、それをmqlディレクティブに引き込むことです。

 
Renat Fatkhullin:

このタスクでオプティマイザーと似たような動作を探すように設定すると、遺伝子が働かなくなるという理解でいいのでしょうか?

この場合、パスの数が多いので、テスターは完全な列挙のために有効にはなりません。

つまり、この問題を解決する唯一の方法は、ターミナルでスクリプトを実行することです。

 
Lyuk:

実際のプロジェクトで確認することにした - Pythonは常にjitコンパイラを使っているのかも?私はレンジャーhttps://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

numba経由のJITモードでのPython、鉄板ですね。

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

OpenCLの使用例は非常にシンプルで、最適化のための飾り気は必要ありません。OpenCLのタスクは大規模ではなく、準備のオーバーヘッドが発生しますが、それでもはるかに良い結果を得ることができました。

OpenCLを使えば、非常に大規模な並列計算を 日常的に実行することができる。参入の敷居は高くなく、使い方を理解するのに1日あれば十分です。

再生用ファイルを添付しました。

ファイル:
 
Renat Fatkhullin:

OpenCLのタスクは大規模ではなく、準備のオーバーヘッドが発生しますが、それでもはるかに良い結果を得ることができました。

OpenCLの部分はどのようにデバッグしたのでしょうか?

 
Renat Fatkhullin:

OpenCLの使用例は、最適化のための飾り気がなく、非常にシンプルなものです。OpenCLのタスクは大規模ではなく、準備のためのオーバーヘッドが発生しますが、それでもはるかに良い結果を得ることができました。


Renat、OpenCLがどのような場合に有利なのか、大量の配列を扱う場合、あるいは1つのEAに大量のシンボルとインジケータがある場合など、具体的に教えてください。

私はプログラマーではないので、プログラミングレベルの簡単なことは難しいかもしれません。