DLLを使わずにMetaTrader 5で直接OpenCLを使ってできることは次のとおりです。 - ページ 16

 

レンダリングを確認します。

二重計算ができないと、私たちの分野では何もできないのです。2020年ならなおさらだ。

OpenCLの初期には、まだ妥協点を探すことができ、「まあ、floatで何か計算できるだろう」という考えに惑わされることがありましたが、現在はそうではありません。

double -> int -> double と変換しようとすると、特にサイズが大きい場合、性能と利益が完全に失われます。

正しい選択肢は、ネイティブフォーマットと新しいドライバを搭載したより最新のカードを使用することです。

 

サポートは万全です。

OpenCL device name: GeForce GTX 1050 Ti with Max-Q Design
OpenCL device ext: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64
                   cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing
                   cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics


OpenCL device name: Intel(R) UHD Graphics 630
OpenCL device ext: cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics 
                   cl_khr_local_int32_extended_atomics cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator 
                   cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long
                   cl_khr_fp64 cl_khr_subgroups cl_khr_il_progr
 
ITにおける現代のマネタイズモデルについては、論じないことにする。最適化されたアルゴリズムを使うよりも25%効率の良い新しいハードウェアを1台購入しても、地球温暖化の原因にはなりません :)

OpenCLとMT5の話題は、後日、家計にデスクトップPCの余裕資金がある時にでも先送りすることにします。

レナートさんにお願いがあるんです。MQL5のマニュアル(OpenCLセクション)に、グラフィックスカード/グラフィカルコプロセッサでダブルデータおよび計算を使用する前に、これらのデバイスでサポートされていることを確認する必要があるという免責事項を追加しました。MQL5の初心者が、古いハードに幻想を抱かないようにね。

お忙しい中、ありがとうございました。
 
aim-1:

あなたへのお願い レナートMQL5のマニュアル(OpenCLセクション)に、グラフィックスカード/グラフィカルコプロセッサでダブルデータおよび計算を使用する前に、これらのデバイスでサポートされていることを確認する必要がある旨の免責事項を追加してください。MQL5初心者が古いハードに幻想を抱かないように。

自動マップテストで既に書かれており、選択できない:最新リリースで行われた

OpenCL  test compilation failed with error: use of type 'double' requires cl_khr_fp64 extension to be enabled 

二重の裏付けがない古地図は、数学の計算には全く使えないと言っていい。

これが現実です。

 
Renat Fatkhullin:

自動マップテストで既に書かれており、選択できない:最新リリースで行われた

私はMetaQuotesをとても尊敬しています。非常に優れたプラットフォームは、自分で開発し、自分でメンテナンスするものです。

Disclamer(システム要件)は、評判を把握したい場合は論理的です。なぜなら、素朴な初心者は(私のように)ネットで拾った面白い機能に興奮し、MT5の立ち上げに失敗して、新しいプラットフォームに冷めてしまう可能性があるからです、使っているうちに他にも失敗がありそうな印象を受けるからです。例えば、標準ライブラリにおける OOPを理解する必要性などです。

ところで、OOPを使わない簡単なトレーディングExpert Advisorのテンプレートがあれば(できればMT5のウェブサイトに直接)、MQL4初心者でも、コードを完全にコントロールしながら、すぐにMQL5に慣れることができるので便利だと思うのですが。その意味で、新しいMQL5チュートリアル(できれば古いものを蒸し返さず、短いもの)があるとよいでしょう。そうすれば、取引コミュニティ(進歩の主要なエンジン/ストッパー)は、より早く新しいプラットフォームに這い上がることができるでしょう。

また、お疲れ様でした。
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
aim-1 : MetaQuotesを尊敬しています。非常に良いプラットフォームが開発され、サポートされていますね。

免責事項(システム要件)は、あなたの評判を監視したい場合は、論理的です。素朴な初心者は(私のように:)ネットワーク上で拾われ、MT5が起動したときにオフに壊れて面白い機能の火をキャッチするので、それを使用するときに他の故障が可能性があると思われるので、新しいプラットフォームに長い時間のためにクールダウンすることができます。例えば、 標準ライブラリにおける OOPの理解の必要性 、など です。

ところで、OOPの場合、OOPを使わない簡単なトレーディングExpert Advisorのテンプレートを公式に(より良いのは、MT5のウェブサイトのページで)レイアウトして、MQL4ベビーでも、コードの作業を完全にコントロールしながら、すぐにMQL5に関われるようにするといいと思います。その意味で、MQL5の新しい教科書(できればもっと短いもの-古い水を繰り返すことなく-)があっても損はないでしょう。そうすれば、取引コミュニティ(進歩の主要なエンジン/ストッパー)は、より速く新しいプラットフォームに這い上がってくるでしょう。

また、お疲れ様でした。

一部の例はMQL5パッケージに付属しています。完全なプロシージャ指向のプログラミング。MQL4はよくわからない

 
不明
//test.mqh
void f( int ii )
{
        for ( int i = -ii; i <= ii; i++ )
        {
                int j = CLContextCreate( i );
                if ( j != -1 )
                {
                        CLContextFree( j );
                        Print( ii, ":", i, ":", j );
                }
        }
}
#include "test.mqh"
void OnStart() { f( 32765 ); }
結果
32765:0:2147352576
32765:1:2147418112

で、もし

#include "test.mqh"
void OnStart() { f( 32766 ); }

結果

32766:0:2147418112

出力(線)が一方は1本、もう一方は2本なのはなぜですか?

 
A100:
不明 結果

で、もし

結果

なぜ、出力(線)が1本と2本なのですか?

メッセージをありがとうございました。
固定されています。

ハンドルをSHORT_MAX 回数以上、頻繁に使いすぎたことによるOpenCLハンドルのオーバーフロー。

 
抜本的に解決したらしいが、今はそれも通用しない
void OnStart()
{
        if ( CLContextCreate( 0 ) == -1 ) Print( GetLastError() ); //5114

}

と、1週間前は問題なく使えていたのに。ダブルのサポートがなく、使用しないのに、なぜOpenCLを無効にするのですか?

 

そう、ダブルサポートのない古いカードは一切使わないことにしたのです。

古いカード全般に言えることですが、未修復のドライバが悪くてよくクラッシュして端末を落とすなど、非常に悪質です。

現実には、PCゲームの開発者が行っているように、すでにドライバのバージョンを明示的に管理する必要があるのです。マイクロソフトのデフォルトドライバでは、とても無理です。