Вы решили изучить язык программирования торговых стратегий MQL5, но ничего о нем не знаете? Мы постарались взглянуть на MQL5 и терминал MetaTrader 5 глазами новичка и написали эту небольшую вводную статью. Из неё вы сможете получить краткое представление о возможностях самого языка, а также несколько полезных советов по работе с редактором MetaEditor 5 и самим терминалом.
The Khronos Group promotes the deployment and development of open standard APIs to enable authoring and playback of dynamic media on a wide variety of platforms and embedded devices. Current APIs are OpenGL ES, OpenML, OpenMAX, OpenSL ES, and Collada.
皆さん、こんにちは。
この非常に興味深いテーマについて、ひとことアドバイスを。
1.トレーディング用のEAで、OpenCLを使った計算をするものはまだないのでしょうか?
(1年以上前に対応が発表され、みんなでテストスクリプトで性能を試したのですが、だいぶ時間が経ってしまい、この話題は静かになってしまいました...)。
2.複数のビデオカードがシステムにインストールされている場合、すべてのビデオカードが計算に使用されるのですか、それとも1枚だけですか?おそらく存在すると思いますが、コドバツにある可能性は低いでしょう。マニアも少ないし、全員がやっているわけでもない。
OpenCLは、取引に不可欠な計算の 大幅な高速 化を実現する場合に有利です。ショブロ」やビデオカードの読み込みのためだけにアルゴリズムに詰め込むのは、あまり賢明とは言えません。
また、ニューラルネットワークの設計者にとっては、最も重要な出力は、並列性の高い集中的な計算で得られると思います。それは聞いてみる価値があるかもしれませんね。
例えば、個人的には興味の ある方向が1つあるのですが、そこではOpenCLはほとんど役に立たないので必要ありません(グローバルメモリでのランダムアクセス操作が多すぎて、悪魔だけが並列化する方法を知っているのです)。まだ絶望はしていないし、合理的な可能性をすべて試したわけでもないのですが......フリーアクセスでは絶対にありえないことです。
2.複数のビデオカードが搭載されている場合、それらをすべて計算に使用するのか、それともどれか1つだけを使用するのか?
複数枚あるいは両頭のものでも問題があるようなことをおっしゃっていました。解決しているかどうかわからない。
こんにちは。
MetaTrader5で一括計算をして、問題(ポーカーゲームのモデル化)を解決しています。 オタクでMcl5しか知らないので、Mcl5で書いています。私の場合、性能の問題は非常に重要です。
つまり、連続する各計算ステップが前の計算結果に縛られないタスクは、並列化できるのだと理解しています。よかった!まさにそんな課題を持っています。
でも、どうやって並列化すればいいんだろう?私のアルゴリズムが、メソッドを持つ構造体(struct)を操作する場合
- 例)ハードディスクからテキストファイルを開く、読み込む、構造体配列に情報を追加する、テキストファイルを閉じる。
- などのメソッドには、rand()、ArrayResize() などの標準的な関数が多く含まれています。
OpenClは、私の理解では、c++に似た言語です。とにかく質問なのですが、一般的に計算を並列化するにはどうしたらいいのでしょうか?
こんにちは。
MetaTrader5で一括計算をして、問題(ポーカーゲームのモデル化)を解決しています。 オタクでMcl5しか知らないので、Mcl5で書いています。私の場合、性能の問題は非常に重要です。
つまり、連続する各計算ステップが前の計算結果に縛られないタスクは、並列化できるのだと理解しています。よかった!まさにそんな課題を持っています。
でも、どうやって並列化すればいいんだろう?私のアルゴリズムが、メソッドを持つ構造体(struct)を操作する場合
- 例)ハードディスクからテキストファイルを開く、読み込む、構造体配列に情報を追加する、テキストファイルを閉じる。
- などのメソッドには、rand()、ArrayResize()などの標準的な関数が多く含まれています。
OpenClは、私の理解では、c++に似た言語です。とにかく質問なのですが、一般的に計算を並列化するにはどうしたらいいのでしょうか?
Googleがヘルプです。
このような質問には、この掲示板では回答が得られないでしょう。
単純に2つの理由が重なったからです。
初心者のプログラマは、OpenCLを把握できないので、全くプログラミングをしない(並列性を全く扱わない)。
2 経験豊富なプログラマーは、それ(あなたの質問)には、あなたの資格を徹底的に調べ、あなたに理解できる言葉で答え、その答えについて長い説明をしなければならないので、いじりたくはないのです。
そのため、経験豊富なプログラマーの時間的リソースを尊重し、基本的なことは自分で調べてください。 しかし、それを理解した上で、その言語(OpenCL)についての具体的な質問があれば、有意義な会話ができる可能性は高くなります。
並列化が可能であると答えることができます。
純粋なC言語のみで、最も単純な算術演算のみ
OpenCL 2.0
OpenCL 2.0は、クロスプラットフォームプログラミングをさらに簡素化し、豊富なアルゴリズムとプログラミングパターンを容易に加速できるように設計された、OpenCL標準の最新の重要な進化です。 これらの機能拡張の基盤として、OpenCL 2.0では、拡張された実行モデル、C11およびC++11のメモリモデルのサブセット、同期およびアトミック操作を定義しています。
OpenCL 2.0は、OpenCL規格の最新の重要な進化であり、..............................続きを読む
何が言いたいんだ?
このニュースを見て、ここに投稿することにしました。掘り下げると面白いのですが、まだ時間がとれないんです。以下、同ニュースをロシア語で紹介します。
OpenCL 2.0仕様の採用
Khronos Groupは、OpenCL 2.0仕様の最終版を批准し、提供開始したことを発表しました。開発者によれば、OpenCL 2.0のリリースは、クロスプラットフォームの並列プログラミングを簡素化する、オープンソースで自由に使える規格の進化における重要なマイルストーンとなるとのことです。
新バージョンでは、C11とC++11の実行モデルとメモリモデルのサブセット、同期とアトミック演算が改善されています。新バージョンのOpenCLでは、より幅広いアルゴリズムやプログラミングパターンを使用することができると言われています。新バージョンでは、OpenCLを利用するソフトウェア開発者の要望を取り入れました。仕様については、すでにクロノス社のホームページで公開されています。
OpenCL 2.0では、共有仮想メモリ、ネスト型並列処理、共有アドレス空間、sRGBのサポートを含む画像処理の向上などの機能が強化されています。さらに、C11のアトミック演算、インメモリFIFOスタックパイプライン、Android向けのインストール可能なドライバ拡張機能にも注目です。
このニュースを見て、ここに投稿することにしました。掘り下げると面白いのですが、まだ時間がとれないんです。以下、同ニュースをロシア語で紹介します。
OpenCL 2.0仕様の採用
Khronos Groupは、OpenCL 2.0仕様の最終版を批准し、提供開始することを発表しました。開発者によれば、OpenCL 2.0のリリースは、クロスプラットフォームの並列プログラミングを簡素化する、オープンソースで自由に使える規格の進化における重要なマイルストーンとなるとのことです。
新バージョンでは、C11とC++11の実行モデルとメモリモデルのサブセット、同期とアトミック演算が改善されています。新バージョンのOpenCLでは、より幅広いアルゴリズムやプログラミングパターンを使用することができると言われています。新バージョンでは、OpenCLを利用するソフトウェア開発者の要望を取り入れました。仕様については、すでにクロノス社のホームページで公開されています。
OpenCL 2.0では、共有仮想メモリ、ネスト型並列処理、共有アドレス空間、sRGBのサポートを含む画像処理の向上などの機能が強化されています。さらに、C11のアトミック演算、インメモリFIFOスタックパイプライン、Android向けのインストール可能なドライバ拡張機能にも注目です。
C#/C++でダンプした方がいいのか?
レナートなら、ここから何が学べるかわかるかもしれません。MQL5でも新しい仕様で性能が向上する可能性は十分にありますね。
C#/C++に関しては、必要であれば、捨てることも可能です。メインは可能な限り最大の出力を得ることです。;)