MQLによる非同期・マルチスレッドプログラミング - ページ 26 1...192021222324252627282930313233...40 新しいコメント Igor Makanu 2019.07.28 06:36 #251 Vladimir Simakov: 同期はプログラマの仕事であり、方法がわからなければマルチスレッドを使うことはない。道具を与えるのがクリエイターの仕事であり、そこでは誰もが自分に対して邪悪なピノキオである。同じア・ラ・ミューテックスでも、自分で実装するのは問題ない。 残念ながらそうではありません。MQLのターゲット層は、誰なのか(プログラミングの基本を知っているアプリケーションプログラマーだと思います)。 そして、これはやはりMQL5でしょう(開発者はMQL4ではもうアップデートはないと繰り返し言っています)。 MQL5自体は、最初は非同期モードで動作します。履歴データの要求(例えば、データを返すか、バックグラウンドでページングを開始してエラーを返すか)。 この方法で、端末とMQLプログラム間のデータ交換に関してすべてが機能します。 というのも、値を返す 代わりにデータの準備状態を常にチェックする必要があるなど、この瞬間がすでに困惑しているのです......。MQL4からコンバートする場合、本当に不便です。 と、ここで別の話題ですが、簡単な構造のMQLプログラムで、異なるイベントを非同期で入力する......というのはどうでしょう。その対象となるのは誰なのでしょうか?- これらの必要な機能を使うエンドユーザーは誰なのか? ;) fxsaber 2019.07.28 07:01 #252 Andrey Barinov: GUIはメインのEAで回し、それ以外は別のEAで回すようにします。この独立したスレーブEAは、不可視のOBJ_CHARTに 配置され、メインのEventSendCustom()パスと相互作用する。 今はどうなんだろう。以前は、OBJ_CHART上でスクリプトのみが動作していたようです。その他にも、入力パラメータに若干のクセがあった。 Market Watchから全シンボルのバーを要求してみた。全員分の履歴をアップロードしています。数十秒の1サイクルパス!控えめに言っても、MT5には満足していない。 Andrey Barinov 2019.07.28 07:46 #253 fxsaber: 今はどうなんだろう。以前は、OBJ_CHART上ではスクリプトのみが動作していたようです。その他にも、入力パラメータに若干のクセがあった。 Market Watchから全シンボルのバーを要求しようとした。アップロードされたすべての履歴を表示します。数十秒の1サイクルパス!控えめに言っても、MT5には満足していない。 Expert Advisorは実行されますが、ticksもtimerも動作しません。すべてを実行する唯一の方法は、OnChartEvent(ティックとタイマーはメインEAからそこに渡すことができます)を介してです。 その他、特に制限を感じることはありません。すべてがうまくいく。 しかし、同じ原理で通常のチャートでも同じことができます。(MT4ではOBJ_CHARTが ないので、このようにしています) Реter Konow 2019.07.28 07:51 #254 Andrey Barinov:アドバイザーは起動しますが、ティックもタイマーも動作しません。OnChartEventのみを使用してすべてを開始することができます(そして、ティックとタイマーはメインのEAからそこに送信することができます)。その他、特に制限を感じることはありません。すべてがうまくいく。 かっこいいですね。この可能性は知りませんでした。インジケータにguiを入れて、リソースでやりとりすればいいのでは?こんな感じで持っています。EventChartCustom() は最大128個のシンボル、doubleとlongを一度に送信し、OnChartEvent()のキューに入ります。 リソースには、単位を介して任意の文字と任意の型の値を配置することが可能です。しかも、キューに入らない。必要なときに必要なものを手に入れることができる。 fxsaber 2019.07.28 07:58 #255 Реter Konow: かっこいいですね。この可能性は知りませんでした。インジケータにguiを入れて、通信にリソースを使えばいいじゃないですか。こんな感じで持っています。EventChartCustom()は一度に128個までのシンボル、doubleとlongを送信し、OnChartEvent()のキューに入ります。 しかし、リソースには無限のシンボルと単位を介して任意の型の値を置くことができます。しかも、キューに入らない。必要なときに必要なものを手に入れることができる。 ありがとうございます、OnChartEventは 知りませんでした。同期をカスタムイベントで行っているのでしょうか?データ交換? Andrey Barinov 2019.07.28 08:03 #256 Реter Konow: かっこいいですね。このような機能があることを知りませんでした。インジケータにguiを入れて、リソースを使えばいいのでは?こんな感じで持っています。EventChartCustom()は最大128個のシンボル、doubleとlongを一度に送信し、OnChartEvent()のキューに入ります。 リソースには、単位を介して任意の文字と任意の型の値を配置することが可能です。しかも、キューに入らない。必要なときに必要なものを手に入れることができる。 OnChartEventでデータを渡さない。イベントのみ。そうでなければ、EAエージェントにイベントはなく、この方法でONTIMER_BEATと ONTICK_BEATを受け取ります。 データのやり取りは、タスクに応じて、ファイル経由でもリソース経由でも可能です。ファイルは、ターミナルを再起動した後にGUIなどを復元する際にも使うので、もっと頻繁に使っています。 端末の再起動後にGUIを記憶し、外観を復元することができますか? Реter Konow 2019.07.28 08:06 #257 fxsaber: ありがとうございます、OnChartEventは知りませんでした。同期をカスタムイベントで行っているのでしょうか?データ交換? 各サイドの各メッセージにはシーケンス番号があります。当事者Aが当事者Bにメッセージを送るとき、まず、前のメッセージが読まれたかどうかを調べます。そうでない場合は、新しいものを送らない。BがAへメッセージを送るとき、前のメッセージが読まれたかどうかも調べます。 Реter Konow 2019.07.28 08:20 #258 Andrey Barinov:OnChartEventでデータを送信しない。イベントのみ。そうでなければ、EAエージェントにイベントはなく、この方法でONTIMER_BEATとONTICK_BEATを受け取ります。 データのやり取りは、タスクに応じて、ファイル経由でもリソース経由でも可能です。ファイルは、ターミナルを再起動した後にGUIなどを復元する際にも使うので、もっと頻繁に使っています。端末の再起動後にGUIを記憶し、イメージを復元することは可能ですか? EventChartCustom() を完全に削除することをお勧めします。まさにキューが原因で、時にはスローダウンを引き起こす可能性があります。タイマーの周波数で双方向の要求をするリソースを通じて交流する。例えば、サイドAがOnChartEvent()で大きくロードされ、サイドBがキャンセルボタンのイベントを送信した場合、サイドAは何らかの無意味なロードにより、このイベントを遅れて受信する可能性があります。 はい、カーネルをファイルに保存して、ファイルからロードしています。この場合、再起動後にすべての設定と外観が最後の表示に戻されます。しかし、通常、再起動後は起動時の設定が必要なので、この機能は使っていません。 Andrey Barinov 2019.07.28 08:24 #259 Реter Konow: 私は、EventChartCustom() を完全に削除することをお勧めします。まさにキューが原因で、時にはスローダウンを引き起こすことがあります。 タイマーの周波数で双方向の要求を するリソースを通じて交流する。例えば、サイドAがOnChartEvent()で大きくロードされ、サイドBがキャンセルボタンのイベントを送信した場合、サイドAは何らかの無意味なロードにより、このイベントを遅れて受信する可能性があります。 OBJ_CHART 上にあるEAでは、タイマーが動作しない。 そこには、(OnChartEventを除く)イベントはありません。したがって、すべてのイベント(OnTick、OnTimerなど)をメインEAからそこに送信する必要があります。 それに、私はそこにボタン押しを送ったりはしないんです。その必要はないんです。 Реter Konow 2019.07.28 08:31 #260 Andrey Barinov: OBJ_CHART 上にあるEAでは、タイマーが動作しません。 そこには、(OnChartEventを除く)イベントはありません。したがって、すべてのイベント(OnTick、OnTimerなど)は、メインEAからそこに送信する必要があります。 それに、私はボタンを押したものを何度も送ったりしません。その必要はないんです。 インジケータはGUIのキャリアとして、リソースはEAへのリンクとして利用することを提案します。また、MT4では、Expert Advisorのテスターをパネルを使って標準のチャートから操作することができるようになる予定です。ボタンだけでなく、すべてのコントロールが機能します。テスト中のEAにテキストでも何でも送れるようになります。すでにテスト済みです。すべてがうまくいく。 ZS.そして、テスト中のEAは、通常のチャートとは異なるデータを送信します。 1...192021222324252627282930313233...40 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
同期はプログラマの仕事であり、方法がわからなければマルチスレッドを使うことはない。道具を与えるのがクリエイターの仕事であり、そこでは誰もが自分に対して邪悪なピノキオである。同じア・ラ・ミューテックスでも、自分で実装するのは問題ない。
残念ながらそうではありません。MQLのターゲット層は、誰なのか(プログラミングの基本を知っているアプリケーションプログラマーだと思います)。
そして、これはやはりMQL5でしょう(開発者はMQL4ではもうアップデートはないと繰り返し言っています)。
MQL5自体は、最初は非同期モードで動作します。履歴データの要求(例えば、データを返すか、バックグラウンドでページングを開始してエラーを返すか)。 この方法で、端末とMQLプログラム間のデータ交換に関してすべてが機能します。
というのも、値を返す 代わりにデータの準備状態を常にチェックする必要があるなど、この瞬間がすでに困惑しているのです......。MQL4からコンバートする場合、本当に不便です。
と、ここで別の話題ですが、簡単な構造のMQLプログラムで、異なるイベントを非同期で入力する......というのはどうでしょう。その対象となるのは誰なのでしょうか?- これらの必要な機能を使うエンドユーザーは誰なのか?
;)
GUIはメインのEAで回し、それ以外は別のEAで回すようにします。この独立したスレーブEAは、不可視のOBJ_CHARTに 配置され、メインのEventSendCustom()パスと相互作用する。
今はどうなんだろう。以前は、OBJ_CHART上でスクリプトのみが動作していたようです。その他にも、入力パラメータに若干のクセがあった。
Market Watchから全シンボルのバーを要求してみた。全員分の履歴をアップロードしています。数十秒の1サイクルパス!控えめに言っても、MT5には満足していない。今はどうなんだろう。以前は、OBJ_CHART上ではスクリプトのみが動作していたようです。その他にも、入力パラメータに若干のクセがあった。
Market Watchから全シンボルのバーを要求しようとした。アップロードされたすべての履歴を表示します。数十秒の1サイクルパス!控えめに言っても、MT5には満足していない。Expert Advisorは実行されますが、ticksもtimerも動作しません。すべてを実行する唯一の方法は、OnChartEvent(ティックとタイマーはメインEAからそこに渡すことができます)を介してです。
その他、特に制限を感じることはありません。すべてがうまくいく。
しかし、同じ原理で通常のチャートでも同じことができます。(MT4ではOBJ_CHARTが ないので、このようにしています)アドバイザーは起動しますが、ティックもタイマーも動作しません。OnChartEventのみを使用してすべてを開始することができます(そして、ティックとタイマーはメインのEAからそこに送信することができます)。
その他、特に制限を感じることはありません。すべてがうまくいく。
かっこいいですね。この可能性は知りませんでした。インジケータにguiを入れて、通信にリソースを使えばいいじゃないですか。こんな感じで持っています。EventChartCustom()は一度に128個までのシンボル、doubleとlongを送信し、OnChartEvent()のキューに入ります。 しかし、リソースには無限のシンボルと単位を介して任意の型の値を置くことができます。しかも、キューに入らない。必要なときに必要なものを手に入れることができる。
ありがとうございます、OnChartEventは 知りませんでした。同期をカスタムイベントで行っているのでしょうか?データ交換?
かっこいいですね。このような機能があることを知りませんでした。インジケータにguiを入れて、リソースを使えばいいのでは?こんな感じで持っています。EventChartCustom()は最大128個のシンボル、doubleとlongを一度に送信し、OnChartEvent()のキューに入ります。 リソースには、単位を介して任意の文字と任意の型の値を配置することが可能です。しかも、キューに入らない。必要なときに必要なものを手に入れることができる。
OnChartEventでデータを渡さない。イベントのみ。そうでなければ、EAエージェントにイベントはなく、この方法でONTIMER_BEATと ONTICK_BEATを受け取ります。
データのやり取りは、タスクに応じて、ファイル経由でもリソース経由でも可能です。ファイルは、ターミナルを再起動した後にGUIなどを復元する際にも使うので、もっと頻繁に使っています。
端末の再起動後にGUIを記憶し、外観を復元することができますか?
ありがとうございます、OnChartEventは知りませんでした。同期をカスタムイベントで行っているのでしょうか?データ交換?
OnChartEventでデータを送信しない。イベントのみ。そうでなければ、EAエージェントにイベントはなく、この方法でONTIMER_BEATとONTICK_BEATを受け取ります。
データのやり取りは、タスクに応じて、ファイル経由でもリソース経由でも可能です。ファイルは、ターミナルを再起動した後にGUIなどを復元する際にも使うので、もっと頻繁に使っています。
端末の再起動後にGUIを記憶し、イメージを復元することは可能ですか?
EventChartCustom() を完全に削除することをお勧めします。まさにキューが原因で、時にはスローダウンを引き起こす可能性があります。タイマーの周波数で双方向の要求をするリソースを通じて交流する。例えば、サイドAがOnChartEvent()で大きくロードされ、サイドBがキャンセルボタンのイベントを送信した場合、サイドAは何らかの無意味なロードにより、このイベントを遅れて受信する可能性があります。
はい、カーネルをファイルに保存して、ファイルからロードしています。この場合、再起動後にすべての設定と外観が最後の表示に戻されます。しかし、通常、再起動後は起動時の設定が必要なので、この機能は使っていません。
私は、EventChartCustom() を完全に削除することをお勧めします。まさにキューが原因で、時にはスローダウンを引き起こすことがあります。 タイマーの周波数で双方向の要求を するリソースを通じて交流する。例えば、サイドAがOnChartEvent()で大きくロードされ、サイドBがキャンセルボタンのイベントを送信した場合、サイドAは何らかの無意味なロードにより、このイベントを遅れて受信する可能性があります。
OBJ_CHART 上にあるEAでは、タイマーが動作しない。 そこには、(OnChartEventを除く)イベントはありません。したがって、すべてのイベント(OnTick、OnTimerなど)をメインEAからそこに送信する必要があります。
それに、私はそこにボタン押しを送ったりはしないんです。その必要はないんです。OBJ_CHART 上にあるEAでは、タイマーが動作しません。 そこには、(OnChartEventを除く)イベントはありません。したがって、すべてのイベント(OnTick、OnTimerなど)は、メインEAからそこに送信する必要があります。
それに、私はボタンを押したものを何度も送ったりしません。その必要はないんです。インジケータはGUIのキャリアとして、リソースはEAへのリンクとして利用することを提案します。また、MT4では、Expert Advisorのテスターをパネルを使って標準のチャートから操作することができるようになる予定です。ボタンだけでなく、すべてのコントロールが機能します。テスト中のEAにテキストでも何でも送れるようになります。すでにテスト済みです。すべてがうまくいく。
ZS.そして、テスト中のEAは、通常のチャートとは異なるデータを送信します。