MQL5とMQL5 Cloud Networkのユニバーサル数学計算の追加サポートのために追加すべきものは何ですか?

 

MetaTrader 5テスターは、取引戦略だけでなく、あらゆる種類の普遍的な問題を解決することができることを誰もが知っているわけではありません。そのために特別なモード「数学的計算」があり、市場環境のデータ配信を無効化することで、転送データ量を大幅に節約することができます。

現在、ユニバーサル計算機ネットワーク構築のための重要な機能を多数実装しています。

  • 市場環境を無効にする「数学的計算」モード。
  • プロパティ tester_file"my_file.dat" の添付による初期データの送信により、任意のサイズの初期データを処理し、結果を返します。
  • ソースデータを#resourceの 添付ファイルで送信すること。
  • 端末上の計算サーバモードと、エージェントからのデータアレイをフレーム形式で転送する。エージェントはFrameAddを介して 端末に任意のデータを返すことができ、同じExpert Advisorのサーバ部分は端末側で別ウィンドウで起動し、FrameXXX 関数によるデータ抽出でOnTesterPass エントリポイント経由で結果を受け取ります。得られたデータは、端末側に記録したり、チャートで可視化したりすることができる。詳しくは「MetaTrader 5における最適化プロセスのリアルタイム制御とエージェントからの膨大な データの転送」のトピックでご覧いただけます。
  • ローカルエージェントとリモートエージェント(MQL5 Cloud Networkなし)を、名前付きパイプを 使用して別サーバーで操作します。
  • 巨大な代理店網を借りて、計算をスピードアップ。
  • リモートエージェントでネットワーク上に独自の計算ファームを構築することができます。

もちろん、これには、MQL5の安全性、スピード、遺伝子の列挙などが伴っています。

そこで、「計算機ネットワークの機能を向上させるためには、他にどのような機能を盛り込めばよいのだろうか?

 
Renat:

そこで、「計算ネットワークの機能を向上させるためには、他にどのような機能を有効にすればよいのでしょうか?

クラウド上でOpenCLを「数学的コンピューティング」モードで使用 できるようにする。
OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 
TheXpert:
クラウド上でOpenCLを「数式演算」モードで使用できるようにする。

これは何度も議論されてきたことですが、Windowsのドライバの仕組み上、アーキテクチャ上不可能なのです。計算機能がビデオドライバのプロテクト部分である以上、解決策はない。今現在、Windowsにリモートデスクトップで接続しても、OpenCLにアクセスできないことがわかります。

ビデオカードメーカーが計算機能をビデオドライバから独立した別インターフェースに移行してくれれば、多少の幸せはあるのだが。今のところ、その方向に進んでいるのはNvidia Teslaだけです。

 
OnTesterInit()関数の中で

エージェントへの生データの転送を、付属のリソースとしてではなく、最適化の過程で生成されるデータの配列として追加します。

void OnTesterInit()
  {
   // здесь формируем массив данных (например ArrayPass[])
   // и передаем сформированный массив агенту для расчетов
   return(ArrayPass);
  }

.

...

お願いします。

 
そして、そのデータを誰が、具体的にどのように送信しなければならないのか。

誰が」「何を」「どのように」という技術的な内容にこそ興味があります。
 
Renat:
1.誰が、どのように具体的にこのデータを転送すべきなのか?

2. 興味を引くのは、誰が、何を、どのように、という技術的な詳細である。

1.それは当然、私が上で提案したように、ユーザーから発信されるべきものです。「だいたいこんな感じ:」、あなたが一番よく知って いるはずです。

2.誰が誰で、どのように、とは言い切れませんが )

何のためのエージェントなのか?- 問題を解決するために

どんな課題を解決するのか?- よくわからないけど、要は解決してくれるってことでしょ。

これらの課題を解決するためには、インプットとアウトプットが必要です。

アウトプットは明確だが、インプットが不明確なのだ。

もしかしたら、何か見落としているかも?入力データ(過去の出力データを元に計算)をエージェントに渡すにはどうしたらよいですか?

 
her.human:

1.それは当然、私が上で提案したように、ユーザーから発信されるべきものです。「だいたいこんな感じ:」、あなたが一番よく知って いるはずです。

2.誰が誰で、どのように、とは言い切れませんが )

要は、少なくとも2つのステップで、きっちり技術的に練られた提案が必要なのです。"何が、どうわからない "ではダメなんです。

 
her.human:

入力データ(過去の出力データから計算)をエージェントに渡す方法

これはすでに質問されていることですが、最適化の進捗をコントロールすることは、時に非常に有効です。

しかし、(最適化が単一のローカルエージェントで行われる場合を除き)詳しく調べてみると、多くの疑問が湧いてくるのです。

 
Renat:

要は、少なくとも2つのステップで技術的に確かな提案が必要なのです。"何が、どうわからない "ではダメなんです。

提案は条件付きで受け付ける」そう言わないと、「アイデアを聞きます」と受け取られてしまうのです。
 
Komposter、それほどカテゴライズされていませんが、やはりもう少しテクニカルなものです。

私たちとしては、端末を介さないエージェント間の独立した通信を考えています。例えば、あるエージェントが初期データを生成し、フォアキャストで他のエージェントに送信することができます。
 
Renat:
私たちとしては、端末を介さないエージェント間の独立した通信を考えています。例えば、あるエージェントが初期データを生成し、フォアキャストで他のエージェントに送信することができます。

ちょっと違うんです。最適化のコースをコントロールしたかったのです。

つまり、最適化の進行に合わせてパラメータセットを生成し、エージェントに送信して実行させることです。

当然、いろいろな疑問も出てくるでしょう。まだ、答えられない。