MT5とtrans2quik.dll。 - ページ 6 12345678910111213...18 新しいコメント Yuriy Asaulenko 2018.12.08 18:39 #51 prostotrader:いや、3つのスレッドを同期させる(基本的にはSynchronizerを書く)だけなんだけどね。 どうしたらいいのかわからない。さて、残るは国旗ですね。旗を立て、他の人が活動を終えるのを待ち、立ち止まって旗を外し、何かをし、旗を外す。まあ、フラグ優先の論理も当然ですが。 DDEを停止せず、バッファに書き込ませることで、何も失われないようにします。 prostotrader 2018.12.08 20:04 #52 Yuriy Asaulenko:さて、残るは国旗だけです。旗を立てる→他の人が活動を終えるのを待つ→立ち止まって旗を降ろす→用を足す→旗を降ろす。まあ、フラグ優先の論理も当然ですが。 DDEを止めずに、バッファに書き込ませておけば、何も失われることはないのですがね。言い換えれば、Synchronizerは、優先順位に応じて実行される受信関数をバッファリングする必要があるのでしょうか? Yuriy Asaulenko 2018.12.08 20:21 #53 prostotrader:では、Synchronizerは、優先順位に応じて実行される受信関数をバッファリングする必要があるのですか?いいえ、関連するフラグとその優先順位に従って、スレッドを一時停止するだけです。このバリエーションでは、他のものは全く必要ありません。 第二の選択肢は、スレッドの関数が終了するのを待ち、そのフラグによって停止させることです。これは、例えば、asc-bid、インジケータ、その他必要なものを更新するために必要な場合があります。 例えば、フラグ値。 0 - スレッドはアイドル状態です。 1 - スレッドがオンになっている。 2 - 優先度の低いスレッドを全て停止するよう要求する。 2に設定し、すべてのスレッドが0になるまで待ち、プログラムを実行し、0または1に設定します。このフラグによって、他のすべてのスレッドが作業を再開します。 prostotrader 2018.12.08 20:45 #54 Yuriy Asaulenko:いいえ、関連するフラグとその優先順位によってスレッド(複数可)を一時停止するだけです。このバリエーションでは、他のものは全く必要ありません。 第二の選択肢は、スレッドの関数が終了するまで待ち、そのフラグによって停止させることです。これは、例えば、asc-bid、インジケータ、その他必要なものを更新するために必要な場合があります。 例えば、フラグ値。 0 - スレッドはアイドル状態です。 1 - スレッドがオンになっている。 2 - 優先度の低いスレッドを全て停止するよう要求する。 2に設定し、すべてのスレッドが0になるまで待ち、プログラムを実行し、0または1に設定します。このフラグによって、他のすべてのスレッドが作業を再開します。DDEを停止するのは良くないとご自身で書かれていますね。 Yuriy Asaulenko 2018.12.08 20:58 #55 prostotrader:DDEをサスペンドするのは良くないとご自身で書かれていますね。あなたが理解できないだけです。 私がやっているのは、こういうことです。 1.サーバー(TCP-serverを使用しています)のスレッドで、コレクションに常にデータを書き込む(Last in First out)。止める必要はないのです。 データは別のスレッドでコレクションから読み取られ、DataTable(データベースのテーブルのようなもの、ただしメモリ上)に書き込まれます。このスレッドは、邪魔になるようなら、一時停止することがあります。 3.別のスレッドでDataTableからデータを読み込んで解析する。このスレッドは、selectによってフェッチされ、2以外の誰もこのテーブルにデータを書き込まないので、スレッド2に干渉しません。また、邪魔になるようならこのスレッドを停止することも可能です。 私は1つのツールで作業し、スレッド3は注文の送信-実行と取引のフォローに切り替えられているので、何も一時停止する必要はありません。 prostotrader 2018.12.08 21:47 #56 Yuriy Asaulenko:あなたが理解できないだけです。 私がやっているのは、こういうことです。 1.サーバー(TCPサーバー)のスレッドで、常にデータをコレクションに書き込んでいる(Last in First out)。止める必要はないのです。 データは別のスレッドでコレクションから読み取られ、DataTable(データベースのテーブルのようなもの、ただしメモリ上)に書き込まれます。このスレッドは、邪魔になるようなら、一時停止することがあります。 3.別のスレッドでDataTableからデータを読み込んで解析する。このスレッドは、selectによってフェッチされ、2以外の誰もこのテーブルにデータを書き込まないので、スレッド2に干渉しません。また、邪魔になるようならこのスレッドを停止することも可能です。 私は1つのツールで作業し、スレッド3は注文の送信-実行と取引のフォローに切り替えているので、何も一時停止する必要はありません。ラッキーなことに、私は52本の道具を持っているので、切り替えなければなりません。 Yuriy Asaulenko 2018.12.08 22:06 #57 prostotrader:運がいいことに、私は52個の楽器を持っているので、切り替えを52の楽器全ての解析が1つのスレッドで行われるということですね?それとも、そうなのか? ストレージとして使用されているものは何ですか?私の場合、マルチユーザーアクセスの場合、ロックは不要で、読み込みが書き込みの邪魔になることはありません。 ブロックする必要があるのは、チャイルドがtrans2quikへのアクセスを共有していることだけです。また、スレッドの集合の場合のみ Child.trans2quikを別スレッドで構成し、イベント時に呼び出すと同時に、リクエストが終了するまでイベントハンドラをロックすることで実現できる。残りは到達できない)。 Aleksey Vyazmikin 2018.12.08 23:21 #58 prostotrader:MT5とKvikをリンクさせることを完全に放棄し、Kvikのみ(DEEサーバ+trans2quik.dll)に落ち着きました。残念です。この決定の理由は何ですか?2つのプログラム間のデータの受信/送信に重大な支障があるのでしょうか? prostotrader 2018.12.10 02:43 #59 Yuriy Asaulenko:全52機種の解析は、ひとつの流れで行われているのですね。それとも違うのでしょうか? ストレージとして使用されているものは何ですか?私の場合、マルチユーザーアクセスの場合、ロックは不要で、読み込みが書き込みの邪魔になることはない。 ブロックするのは、チャイルドのtrans2quikへの共有アクセスだけです。また、スレッドの集合の場合のみ Child.trans2quikを別スレッドで構成し、イベント時に呼び出すと同時に、リクエストが終了するまでイベントハンドラをロックすることで実現できる。残りは届かない)。いいえ、解析自体はChildで行われます(ツールごとに別々に)。 Selector(1,2)は、どのロボットにデータとコルバックスを送るかを選択します。 ストレージ - メモリに格納されるテーブルのみ prostotrader 2018.12.10 02:46 #60 Aleksey Vyazmikin:それは残念です。この決定の理由は何でしょうか。2つのプログラム間でデータを受信/送信することに重大な支障があるのでしょうか。ただ、ごちゃごちゃ言っても意味がない。 MT5を使用する場合、Expert Advisorのコードと、データを受信するDLLが必要です。 Quickのみを使用し、アプリケーションは1つだけです(図解入り図参照) 12345678910111213...18 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
いや、3つのスレッドを同期させる(基本的にはSynchronizerを書く)だけなんだけどね。
どうしたらいいのかわからない。
さて、残るは国旗ですね。旗を立て、他の人が活動を終えるのを待ち、立ち止まって旗を外し、何かをし、旗を外す。まあ、フラグ優先の論理も当然ですが。
DDEを停止せず、バッファに書き込ませることで、何も失われないようにします。
さて、残るは国旗だけです。旗を立てる→他の人が活動を終えるのを待つ→立ち止まって旗を降ろす→用を足す→旗を降ろす。まあ、フラグ優先の論理も当然ですが。
DDEを止めずに、バッファに書き込ませておけば、何も失われることはないのですがね。
言い換えれば、Synchronizerは、優先順位に応じて実行される受信関数をバッファリングする必要があるのでしょうか?
では、Synchronizerは、優先順位に応じて実行される受信関数をバッファリングする必要があるのですか?
いいえ、関連するフラグとその優先順位に従って、スレッドを一時停止するだけです。このバリエーションでは、他のものは全く必要ありません。
第二の選択肢は、スレッドの関数が終了するのを待ち、そのフラグによって停止させることです。これは、例えば、asc-bid、インジケータ、その他必要なものを更新するために必要な場合があります。
例えば、フラグ値。
0 - スレッドはアイドル状態です。
1 - スレッドがオンになっている。
2 - 優先度の低いスレッドを全て停止するよう要求する。
2に設定し、すべてのスレッドが0になるまで待ち、プログラムを実行し、0または1に設定します。このフラグによって、他のすべてのスレッドが作業を再開します。
いいえ、関連するフラグとその優先順位によってスレッド(複数可)を一時停止するだけです。このバリエーションでは、他のものは全く必要ありません。
第二の選択肢は、スレッドの関数が終了するまで待ち、そのフラグによって停止させることです。これは、例えば、asc-bid、インジケータ、その他必要なものを更新するために必要な場合があります。
例えば、フラグ値。
0 - スレッドはアイドル状態です。
1 - スレッドがオンになっている。
2 - 優先度の低いスレッドを全て停止するよう要求する。
2に設定し、すべてのスレッドが0になるまで待ち、プログラムを実行し、0または1に設定します。このフラグによって、他のすべてのスレッドが作業を再開します。
DDEを停止するのは良くないとご自身で書かれていますね。
DDEをサスペンドするのは良くないとご自身で書かれていますね。
あなたが理解できないだけです。
私がやっているのは、こういうことです。
1.サーバー(TCP-serverを使用しています)のスレッドで、コレクションに常にデータを書き込む(Last in First out)。止める必要はないのです。
データは別のスレッドでコレクションから読み取られ、DataTable(データベースのテーブルのようなもの、ただしメモリ上)に書き込まれます。このスレッドは、邪魔になるようなら、一時停止することがあります。
3.別のスレッドでDataTableからデータを読み込んで解析する。このスレッドは、selectによってフェッチされ、2以外の誰もこのテーブルにデータを書き込まないので、スレッド2に干渉しません。また、邪魔になるようならこのスレッドを停止することも可能です。
私は1つのツールで作業し、スレッド3は注文の送信-実行と取引のフォローに切り替えられているので、何も一時停止する必要はありません。
あなたが理解できないだけです。
私がやっているのは、こういうことです。
1.サーバー(TCPサーバー)のスレッドで、常にデータをコレクションに書き込んでいる(Last in First out)。止める必要はないのです。
データは別のスレッドでコレクションから読み取られ、DataTable(データベースのテーブルのようなもの、ただしメモリ上)に書き込まれます。このスレッドは、邪魔になるようなら、一時停止することがあります。
3.別のスレッドでDataTableからデータを読み込んで解析する。このスレッドは、selectによってフェッチされ、2以外の誰もこのテーブルにデータを書き込まないので、スレッド2に干渉しません。また、邪魔になるようならこのスレッドを停止することも可能です。
私は1つのツールで作業し、スレッド3は注文の送信-実行と取引のフォローに切り替えているので、何も一時停止する必要はありません。
ラッキーなことに、私は52本の道具を持っているので、切り替えなければなりません。
運がいいことに、私は52個の楽器を持っているので、切り替えを
52の楽器全ての解析が1つのスレッドで行われるということですね?それとも、そうなのか?
ストレージとして使用されているものは何ですか?私の場合、マルチユーザーアクセスの場合、ロックは不要で、読み込みが書き込みの邪魔になることはありません。
ブロックする必要があるのは、チャイルドがtrans2quikへのアクセスを共有していることだけです。また、スレッドの集合の場合のみ Child.trans2quikを別スレッドで構成し、イベント時に呼び出すと同時に、リクエストが終了するまでイベントハンドラをロックすることで実現できる。残りは到達できない)。
MT5とKvikをリンクさせることを完全に放棄し、Kvikのみ(DEEサーバ+trans2quik.dll)に落ち着きました。
残念です。この決定の理由は何ですか?2つのプログラム間のデータの受信/送信に重大な支障があるのでしょうか?
全52機種の解析は、ひとつの流れで行われているのですね。それとも違うのでしょうか?
ストレージとして使用されているものは何ですか?私の場合、マルチユーザーアクセスの場合、ロックは不要で、読み込みが書き込みの邪魔になることはない。
ブロックするのは、チャイルドのtrans2quikへの共有アクセスだけです。また、スレッドの集合の場合のみ Child.trans2quikを別スレッドで構成し、イベント時に呼び出すと同時に、リクエストが終了するまでイベントハンドラをロックすることで実現できる。残りは届かない)。
いいえ、解析自体はChildで行われます(ツールごとに別々に)。 Selector(1,2)は、どのロボットにデータとコルバックスを送るかを選択します。
ストレージ - メモリに格納されるテーブルのみ
それは残念です。この決定の理由は何でしょうか。2つのプログラム間でデータを受信/送信することに重大な支障があるのでしょうか。
ただ、ごちゃごちゃ言っても意味がない。
MT5を使用する場合、Expert Advisorのコードと、データを受信するDLLが必要です。
Quickのみを使用し、アプリケーションは1つだけです(図解入り図参照)