もう一度、マルチスレッドについて - ページ 4 12345678910 新しいコメント Andrey Khatimlianskii 2012.11.16 02:52 #31 meat:まあ、あなたが挙げたものがすべてmql5ツールに関連しているわけではない、ということにしておきましょう :)そして、この問題をどう解決(回避)するかという問題ではありませんでした。必ず回避できる道がある、それは間違いない。問題は、なぜ必要な機能を詳細不明なままmql5に追加しようとしなかったかということです。MQL5には必要なものがすべて揃っているので、あとは使いこなすだけです。計算の一部をインジケータに 移し、Expert Advisorから実行する。また、2数十人(楽観的)のユーザーに対して、基本的なパラレリングをする人はいないでしょう。 Документация по MQL5: Основы языка / Функции / Функции обработки событий www.mql5.com Основы языка / Функции / Функции обработки событий - Документация по MQL5 Sergey Pavlov 2012.11.16 08:37 #32 TheXpert: マルチスレッドに対応したスクリプトがあります。また、テスターでは必要ありませんExpert Advisorからスクリプトを実行するにはどうすればよいですか? Alexey Navoykov 2012.11.16 11:17 #33 komposter:計算の一部をインジケータに 転送し、Expert Advisorから実行します。また、タンバリンダンスですか。普通に実装した場合の話です。そして、2ダース(楽観的)のユーザーには、誰も通常のパラレリングを行わないでしょう。MQL5は、mql4とは対照的に、多少なりとも熟練したプログラマー向けの言語として位置づけられているように、当初から感じられました。つまり、アルゴリズムの最適化、複数のスレッドにまたがる並列化は、日常的に必要なことなのです。だから、冒頭でこの点に注意を促したのです。そして、レナートはなぜかそれにとても痛烈に反応したのです。多くの人が言うように、最適化の問題を一箇所で常に解決することは、全くやりたくないことです。それに、普通のパラレリングをやれとは言わないと、もう最初に言っているんです。WinApiを使って、自分ですべてを並列化することが完全に可能なんです。必要なのはファンクションアドレスだけです。だから、関数へのポインタだけを追加するようにお願いしたんです。もちろん,__stdcall 指令に対応することが望ましいが,その必要はなく,必要な操作は自前で行えばよい.関数へのポインタは、実はとても便利なものなんです。糸を作るために使うのは、さまざまな使い方のひとつに過ぎません。また、様々な非同期処理におけるコールバック関数の指定などにも使用される。また、それらはDLLにアーチ状に転送され、DLLとそれをインポートしたExpert Advisorの間の通信を簡素化し、すなわち完全な統合を実現します。実行時に、DLLは直接MQL関数を呼び出して、そこから必要な情報を得ることができます。そのためには、イベント(例:ティック)を生成し、Expert Advisorを呼び出して、必要な情報をDLLに渡す必要があります...。全体として、余分な手間と時間の消費 Ilyas 2012.11.16 14:00 #34 マルチスレッドについて。言語にマルチスレッドを追加することは、マルチスレッドをサポートする特別なAPIを作成することを意味します。 その結果、そのようなサポートがないAPIよりも動作が遅くなることが、おわかりいただけたかと思います(lokiなど)。MQL5コンパイラのオプティマイザーを書き直さなければならない - 実際は最適化が悪化する。なかなか見つからないユーザーのバグを紹介する場所です。 さて、最後になりますが、必要とするユーザーはそれほど多くなく、サポート不足も迂闊に解消されます。 関数へのポインタについて。 MQL5コード内での 使用については未定です。 残念ながら、DLLへのポインタを渡すことはできません。クロスプラットフォームx86/x64のために、呼び出しの合意を犠牲にしなければならなかったのです。 Renat Fatkhullin 2012.11.16 14:20 #35 mql5: マルチスレッドについて。この人は机上の空論で荒らしているだけで、言語の応用性もマルチスレッドの結果も理解できていない(と思った)。実際、彼は平行移動の実作業も行っていない。 Sergey Pavlov 2012.11.16 14:32 #36 mql5: ...Ну и последнее, нужно это не очень малому числу пользователей и отсутствие поддержки можно обойти.スクリプトを使うのはいいのですが、EAからどのように呼び出すのでしょうか? Ilyas 2012.11.16 14:48 #37 DC2008:スクリプトを使うのはいいのですが、EAからどのように呼び出すのでしょうか? 残念ながら、MQL5からスクリプトを起動する機能はありません。 しかし、Expert Advisorの代わりにチャートのテンプレートを使って、そこにスクリプトを書けば、方法はあるのです。 このようなテンプレートを新しいチャートに適用すると、スクリプトが起動する(ただし、これは「文書化されていない機能」であり、いつか利用できなくなるかもしれない)...。 あなたの仕事は何ですか? イベントを受信した後に仕事をするExpert Advisorを隣接するチャートに実行する準備ができていないのですか? EX5ファイルの保護のため、新しいMQL5プログラムの 起動にはコストがかかります。 Sergey Pavlov 2012.11.16 15:05 #38 mql5: 残念ながら、MQL5からスクリプトを起動することはできません。 しかし、チャートテンプレートを通じて、Expert Advisorの代わりにスクリプトを入れれば、方法はある。 このようなテンプレートを新しいチャートに適用すると、スクリプトが起動する(ただし、これは「文書化されていない機能」であり、いつか利用できなくなるかもしれない)...。 あなたの仕事は何ですか? イベントを受信した後に仕事をするExpert Advisorを隣接するチャートに実行する準備ができていないのですか? EX5ファイルの保護のため、新しいMQL5プログラムの 起動にはコストがかかります。何千ものグラフィカルなオブジェクトがあり、不要なものを削除したり、プロパティを変更したり、統計的特性を計算したりと、分析することができます。1枚のチャートでもラグがあるのに、それが何枚もあったらどうするんだ? Renat Fatkhullin 2012.11.16 15:56 #39 グラフィカルなオブジェクトの場合、マルチスレッドは理論上も役に立ちません。 グラフィカルなオブジェクトを扱う問題は、アルゴリズム的に解決する必要があります。経済的で、オブジェクトの変更と読み込みのコマンドを混在させないこと。例えば、1000回の読み出しと1000回の書き込みを行うよりも、1000回の読み出しと1000回の書き込みのみを行う方が、はるかに高速になります。 Alexey Navoykov 2012.11.16 16:27 #40 mql5: マルチスレッドについて。言語にマルチスレッドを追加することは、マルチスレッドをサポートする特別なAPIを作成することを意味します。 その結果、そのようなサポートがないAPIよりも動作が遅くなることが、おわかりいただけたかと思います(lokiなど)。MQL5コンパイラのオプティマイザーを書き直さなければならない - 実際は最適化が悪化する。なかなか見つからないユーザーのバグを紹介する場所です。 さて、最後になりますが、必要とするユーザーはそれほど多くなく、サポート不足も迂闊に解消されます。 関数へのポインタについて。 MQL5コード内での 使用については未定です。 残念ながら、DLLにポインタを渡しても動作しません。x86/x64クロスプラットフォーム用の呼び出し規約を犠牲にしなければなりませんでした。 丁寧な対応ありがとうございました。すべてがクリアになりました。DLLにポインタを渡すことができないというのは、システムDLLのことでしょうか(つまり、__stdcallの規約)?そして、自分のDLLには、他のどんな契約も書くことができます。それとも、どの規格にも準拠しない排他的なものなのでしょうか? 12345678910 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
まあ、あなたが挙げたものがすべてmql5ツールに関連しているわけではない、ということにしておきましょう :)そして、この問題をどう解決(回避)するかという問題ではありませんでした。必ず回避できる道がある、それは間違いない。問題は、なぜ必要な機能を詳細不明なままmql5に追加しようとしなかったかということです。
MQL5には必要なものがすべて揃っているので、あとは使いこなすだけです。
計算の一部をインジケータに 移し、Expert Advisorから実行する。
また、2数十人(楽観的)のユーザーに対して、基本的なパラレリングをする人はいないでしょう。
マルチスレッドに対応したスクリプトがあります。また、テスターでは必要ありません
Expert Advisorからスクリプトを実行するにはどうすればよいですか?
計算の一部をインジケータに 転送し、Expert Advisorから実行します。
また、タンバリンダンスですか。普通に実装した場合の話です。
そして、2ダース(楽観的)のユーザーには、誰も通常のパラレリングを行わないでしょう。
MQL5は、mql4とは対照的に、多少なりとも熟練したプログラマー向けの言語として位置づけられているように、当初から感じられました。つまり、アルゴリズムの最適化、複数のスレッドにまたがる並列化は、日常的に必要なことなのです。だから、冒頭でこの点に注意を促したのです。そして、レナートはなぜかそれにとても痛烈に反応したのです。
多くの人が言うように、最適化の問題を一箇所で常に解決することは、全くやりたくないことです。
それに、普通のパラレリングをやれとは言わないと、もう最初に言っているんです。WinApiを使って、自分ですべてを並列化することが完全に可能なんです。必要なのはファンクションアドレスだけです。だから、関数へのポインタだけを追加するようにお願いしたんです。もちろん,__stdcall 指令に対応することが望ましいが,その必要はなく,必要な操作は自前で行えばよい.
関数へのポインタは、実はとても便利なものなんです。糸を作るために使うのは、さまざまな使い方のひとつに過ぎません。また、様々な非同期処理におけるコールバック関数の指定などにも使用される。また、それらはDLLにアーチ状に転送され、DLLとそれをインポートしたExpert Advisorの間の通信を簡素化し、すなわち完全な統合を実現します。実行時に、DLLは直接MQL関数を呼び出して、そこから必要な情報を得ることができます。そのためには、イベント(例:ティック)を生成し、Expert Advisorを呼び出して、必要な情報をDLLに渡す必要があります...。全体として、余分な手間と時間の消費
- 言語にマルチスレッドを追加することは、マルチスレッドをサポートする特別なAPIを作成することを意味します。
- MQL5コンパイラのオプティマイザーを書き直さなければならない - 実際は最適化が悪化する。
- なかなか見つからないユーザーのバグを紹介する場所です。
さて、最後になりますが、必要とするユーザーはそれほど多くなく、サポート不足も迂闊に解消されます。その結果、そのようなサポートがないAPIよりも動作が遅くなることが、おわかりいただけたかと思います(lokiなど)。
関数へのポインタについて。
MQL5コード内での 使用については未定です。
残念ながら、DLLへのポインタを渡すことはできません。クロスプラットフォームx86/x64のために、呼び出しの合意を犠牲にしなければならなかったのです。
マルチスレッドについて。
この人は机上の空論で荒らしているだけで、言語の応用性もマルチスレッドの結果も理解できていない(と思った)。
実際、彼は平行移動の実作業も行っていない。
mql5:
...Ну и последнее, нужно это не очень малому числу пользователей и отсутствие поддержки можно обойти.
スクリプトを使うのはいいのですが、EAからどのように呼び出すのでしょうか?
スクリプトを使うのはいいのですが、EAからどのように呼び出すのでしょうか?
しかし、Expert Advisorの代わりにチャートのテンプレートを使って、そこにスクリプトを書けば、方法はあるのです。
このようなテンプレートを新しいチャートに適用すると、スクリプトが起動する(ただし、これは「文書化されていない機能」であり、いつか利用できなくなるかもしれない)...。
あなたの仕事は何ですか?
イベントを受信した後に仕事をするExpert Advisorを隣接するチャートに実行する準備ができていないのですか?
EX5ファイルの保護のため、新しいMQL5プログラムの 起動にはコストがかかります。
残念ながら、MQL5からスクリプトを起動することはできません。
しかし、チャートテンプレートを通じて、Expert Advisorの代わりにスクリプトを入れれば、方法はある。
このようなテンプレートを新しいチャートに適用すると、スクリプトが起動する(ただし、これは「文書化されていない機能」であり、いつか利用できなくなるかもしれない)...。
あなたの仕事は何ですか?
イベントを受信した後に仕事をするExpert Advisorを隣接するチャートに実行する準備ができていないのですか?
EX5ファイルの保護のため、新しいMQL5プログラムの 起動にはコストがかかります。
何千ものグラフィカルなオブジェクトがあり、不要なものを削除したり、プロパティを変更したり、統計的特性を計算したりと、分析することができます。1枚のチャートでもラグがあるのに、それが何枚もあったらどうするんだ?
グラフィカルなオブジェクトを扱う問題は、アルゴリズム的に解決する必要があります。経済的で、オブジェクトの変更と読み込みのコマンドを混在させないこと。例えば、1000回の読み出しと1000回の書き込みを行うよりも、1000回の読み出しと1000回の書き込みのみを行う方が、はるかに高速になります。
マルチスレッドについて。
- 言語にマルチスレッドを追加することは、マルチスレッドをサポートする特別なAPIを作成することを意味します。
- MQL5コンパイラのオプティマイザーを書き直さなければならない - 実際は最適化が悪化する。
- なかなか見つからないユーザーのバグを紹介する場所です。
さて、最後になりますが、必要とするユーザーはそれほど多くなく、サポート不足も迂闊に解消されます。その結果、そのようなサポートがないAPIよりも動作が遅くなることが、おわかりいただけたかと思います(lokiなど)。
関数へのポインタについて。
MQL5コード内での 使用については未定です。
残念ながら、DLLにポインタを渡しても動作しません。x86/x64クロスプラットフォーム用の呼び出し規約を犠牲にしなければなりませんでした。