MetaTrader 5 Python User Group - メタトレーダーでPythonを使用する方法 - ページ 80

 
Сергей Таболин:

またまた新参者からの質問です。

状況は次のとおりです。インジケーターがあるんです。コールド」モードでチャートに追加すると、計算されるまでに7~8秒かかる。

pythonで同じことをしました。違いは、pythonがデータを.csvファイルに書き出すことです。

MT5での接続損失、その他の諸経費は理解しているのですが・・・。でも、8秒対3時間って......。????????どのように?

C++の100倍も遅い言語に何を求めているのか?

Pythonで高速に動作するものはすべてC++のモジュールとして書かれています。もし適当な高速モジュールがなければ、すべてが無限に遅くなる。


copy_ticks_rangeを はじめ、Python APIのデータ抽出メソッドは、そのデータをMQL5に与えるレベルで、私たちが超効率的かつ迅速に書いています。
 
Renat Fatkhullin:

C++の100倍も遅い言語に何を求めているのか?

Pythonで高速に動作するものはすべてC++のモジュールとして書かれています。適当な高速モジュールがなければ、すべてが無限に遅くなってしまうのです。


copy_ticks_rangeをはじめ、Python APIのデータ抽出メソッドは、MQL5でこのデータを与えるレベルで超効率的かつ高速に私たちが記述しています。

遅い、ではなく、数百倍......。

Renatさん、返信ありがとうございます。このスピードは、もっぱらPythonのなすがままということですね?私自身は、MTでティックを呼び出すことも、ファイルにデータを書き込むことも、それほど遅くなることはないと思っていたのですが......。

 

さて、なぜ私たちが言語パフォーマンスに力を入れるのか、おわかりいただけたでしょうか。

そうでなければ、現代のボリュームに対応することは不可能です。

Python単体ではなく、Pythonのために書かれた効率的なライブラリ(C++)への橋渡しとしてサポートしています。

 
レナートさん、新しいテスターでどこまでできるようになったか、簡単に説明してください。

そうすると、きっとPythonでテスターを使うためのAPI機能が搭載されるのではないでしょうか?

ごあいさつ
 
Christian:

そうすると、きっとPythonでテスターを使うためのAPI機能が搭載されるのではないでしょうか?

いや、テスターを殺すために、自分たちの言語の100倍も遅い言語を選んで自殺しようなんて、甘い考えです。

サードパーティのC++ライブラリをMQL5モジュールに再コンパイルするという我々のアイデアを発展させる方が、はるかに有益です。そのために、外部のLLVMコンパイラをエディタに搭載するようにしました。

 
Renat Fatkhullin:

いや、テスターを殺すために、自分たちの言語の100倍も遅い言語を選んで自殺しようなんて、甘い考えです。

サードパーティのC++ライブラリをMQL5モジュールに再コンパイルするという我々のアイデアを発展させる方が、はるかに有益です。そのために、外部のLLVMコンパイラをエディタに取り込むようにしました。

C/C++の.libや.aスタティックライブラリをmqlプログラムプロジェクトに リンクできるようにするアイデアはないでしょうか?

 
Roman:

C/C++の.libや.aのスタティックライブラリをmqlプログラムにリンクさせるというアイデアはどうでしょう?

いいえ、明示的なアクセス権制御が可能なDLLであれば、常に使用することができます。

 
MT5への接続ロス、その他の諸経費は理解しているのですが・・・。でも、8秒対3時間って......。????????どのように?

あなたのPythonのコードが遅くなる例を教えてください。何をするのか、どうやってデータを取得するのか、言葉からはよくわかりません。また、なぜ常にファイルに書き込んでいるのでしょうか?最後にはできないのでしょうか?

 
Renat Fatkhullin:

いや、テスターを殺すために、自分たちの言語の100倍も遅い言語を選んで自殺しようなんて、甘い考えです。

サードパーティのC++ライブラリをMQL5モジュールに再コンパイルするという我々のアイデアを発展させる方が、はるかに有益です。そのために、外部のLLVMコンパイラをエディタに組み込むことを開始しました。

また、仮にONNXのサポートを受けた場合、インポートしたモデルは MQL本体より遅くなるのでしょうか?

 

出力に異変があることに気がついた。

[89, '2020.01.16', 3, 15, 3, 16, Timedelta('0 days 01:16:53.966000')]
[90, '2020.01.16', 3, 16, 3, 17, Timedelta('0 days 00:25:39.266000')]
[91, '2020.01.16', 3, 17, 4, 12, Timedelta('0 days 19:07:12.757000')]
[92, '2020.01.17', 4, 12, 4, 13, Timedelta('0 days 00:36:14')]
[93, '2020.01.17', 4, 13, 4, 15, Timedelta('0 days 02:21:01.630000')]
[94, '2020.01.17', 4, 15, 4, 17, Timedelta('0 days 02:12:28.692000')]
[95, '2020.01.17', 4, 17, 0, 11, Timedelta('0 days 17:30:16.404000')]

Is it == 00:36:14.000000 ?