エラー、バグ、質問 - ページ 1547 1...154015411542154315441545154615471548154915501551155215531554...3185 新しいコメント 削除済み 2016.04.04 08:53 #15461 Комбинатор: このように計算されたデータを、端末ですぐに再描画するにはどうしたらいいでしょうか?OnCalculateにないバッファからデータを描画 します。OnCalculateの最小描画時間は1分です。ティックインジケーターは1ティックごとに描画 削除済み 2016.04.04 09:18 #15462 comp: そうではないようです。ChartRedrawは4で100%やってくれるけど。そして、5でもOKであることが判明 したのです。そのため、ChartRedrawはどちらのプラットフォームでも問題なく動作します。 削除済み 2016.04.04 11:41 #15463 CHARTEVENT_CHART_CHANGEが届くと、時々1秒/1晩続く計算をするんだ。計算中に、例えばチャートが移動された場合、計算後に CHARTEVENT_CHART_CHANGE がキューから再度呼び出されます。イベントキューに何かあることを計算中に知ることは可能でしょうか?それなら、もう関係ない計算をして、それを中断して新しい計算を始めることはできないのでしょうか?例えば、非常に重い計算部分でもIsStopped()の チェックがあれば、Expert Advisorの終了は計算を待つことなく瞬時に行われるでしょう。ここでは、似たようなことを、closeのイベントではなく、ChartEventで行うことにします。 --- 2016.04.04 12:17 #15464 comp:CHARTEVENT_CHART_CHANGEが届くと、時々1秒/1晩続く計算をするんだ。計算中に、例えばチャートが移動された場合、計算後に CHARTEVENT_CHART_CHANGE がキューから再度呼び出されます。イベントキューに何かあることを計算中に知ることは可能でしょうか?それなら、もう関係ない計算をして、それを中断して新しい計算を始めることはできないのでしょうか?例えば、非常に重い計算部分でもIsStopped()のチェックがあれば、Expert Advisorの終了は計算を待つことなく瞬時に行われるでしょう。ここでは、似たようなことを、closeのイベントではなく、ChartEventで行うことにします。第二の処理スレッドを行う(例えばmsタイマーのような形で)で、まさにそこで計算を行う。ただし、カウンタフラグ==XXX が設定されており、CHARTEVENT_CHART_CHANGE でインクリメントされることが条件。このように、ChartEventのキュー全体を素早く取得し、フラグを設定し、これと並行してタイマーがこのフラグをチェックし、計算を行います。---同じタイマーで、フラグカウンターの値を確認します。現在のカウンターの値が計算を開始した値よりも大きい場合に、計算を停止することが可能です。 これは、IsNewChangedの一種です。 削除済み 2016.04.04 12:44 #15465 o_O:そこで、ChartEventのキュー全体を素早く調べ、フラグを設定し、並行して タイマーがそのフラグをプルして計算するのです。ChartEventと Timerのイベントは並行して動作しているということでしょうか? 削除済み 2016.04.05 08:55 #15466 サービスデスクはこのように表明しています。SetIndexBuffer делается однократно на вызове OnInitSetIndexBufferを OnInitの中ではなく、何度も使っている人はいますか?MT4では、いつも使っています。MT5では、残念ながらこれができません。 --- 2016.04.06 07:08 #15467 comp:ChartEventと Timerのイベントは並行して動作しているということでしょうか?を順次実行しても、少なくともこれを使用することは妨げられません。の場合、瞬時にChartEvent全体を取り除き、1つのオーダーだけを置く。---タイマーとチャートのイベントの並列性については、適切な質問である。サービスデスクに聞く Slava 2016.04.06 07:12 #15468 o_O:を順次実行しても、少なくともこれを使用することは妨げられません。の場合、瞬時にChartEvent全体を取り除き、1つのオーダーだけを置く。---タイマーとチャートのイベントの並列性については、適切な質問である。サービスデスクにお問い合わせください。誰もドキュメントを 読んでいない...。クライアント端末は、生成されたイベントを対応するオープンチャートに送信します。また、チャート(チャートイベント)やmql5プログラム(カスタムイベント)によってもイベントを発生させることができます。チャートのCHART_EVENT_OBJECT_CREATE 及びCHART_EVENT_OBJECT_DELETE プロパティを設定することで、チャート上のグラフィカル オブジェクトの作成及び削除のイベント生成を有効/無効にすることができます。各mql5-programと各チャートは独自のイベントキューを持ち、そこにすべての新しいイベントが保存されます。 プログラムは、実行中のチャートからのイベントのみを受信します。すべてのイベントは、受信した順に順次処理 されます。キューに既にイベントNewTickが ある場合、またはこのイベントが処理中の場合、新しいイベントNewTickはmql5-programのキューに配置されない。同様に、mql5-programのキューがすでにChartEvent イベントを含んでいるか、そのようなイベントが処理されている場合、このタイプの新しいイベントはキューに入れられません。タイマーイベントも同じ方式で処理されます。キューにタイマー イベントがある場合、またはタイマーイベントがすでに処理されている場合、新しいタイマーイベントはキューに入れられません。 削除済み 2016.04.06 07:14 #15469 Slawa:誰もドキュメントを 読んでいない...。 そうすれば、イベントによる計算の中断はありません。 --- 2016.04.06 07:17 #15470 Slawa:誰もドキュメントを 読まないし...。お久しぶりです 1...154015411542154315441545154615471548154915501551155215531554...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
このように計算されたデータを、端末ですぐに再描画するにはどうしたらいいでしょうか?
OnCalculateにないバッファからデータを描画 します。
OnCalculateの最小描画時間は1分です。
ティックインジケーターは1ティックごとに描画
そうではないようです。
ChartRedrawは4で100%やってくれるけど。
そして、5でもOKであることが判明 したのです。
そのため、ChartRedrawはどちらのプラットフォームでも問題なく動作します。
CHARTEVENT_CHART_CHANGEが届くと、時々1秒/1晩続く計算をするんだ。計算中に、例えばチャートが移動された場合、計算後に CHARTEVENT_CHART_CHANGE がキューから再度呼び出されます。
イベントキューに何かあることを計算中に知ることは可能でしょうか?それなら、もう関係ない計算をして、それを中断して新しい計算を始めることはできないのでしょうか?
例えば、非常に重い計算部分でもIsStopped()の チェックがあれば、Expert Advisorの終了は計算を待つことなく瞬時に行われるでしょう。
ここでは、似たようなことを、closeのイベントではなく、ChartEventで行うことにします。
CHARTEVENT_CHART_CHANGEが届くと、時々1秒/1晩続く計算をするんだ。計算中に、例えばチャートが移動された場合、計算後に CHARTEVENT_CHART_CHANGE がキューから再度呼び出されます。
イベントキューに何かあることを計算中に知ることは可能でしょうか?それなら、もう関係ない計算をして、それを中断して新しい計算を始めることはできないのでしょうか?
例えば、非常に重い計算部分でもIsStopped()のチェックがあれば、Expert Advisorの終了は計算を待つことなく瞬時に行われるでしょう。
ここでは、似たようなことを、closeのイベントではなく、ChartEventで行うことにします。
第二の処理スレッドを行う(例えばmsタイマーのような形で)
で、まさにそこで計算を行う。ただし、カウンタフラグ==XXX が設定されており、CHARTEVENT_CHART_CHANGE でインクリメントされることが条件。
このように、ChartEventのキュー全体を素早く取得し、フラグを設定し、これと並行してタイマーがこのフラグをチェックし、計算を行います。
---
同じタイマーで、フラグカウンターの値を確認します。現在のカウンターの値が計算を開始した値よりも大きい場合に、計算を停止することが可能です。 これは、IsNewChangedの一種です。
そこで、ChartEventのキュー全体を素早く調べ、フラグを設定し、並行して タイマーがそのフラグをプルして計算するのです。
サービスデスクはこのように表明しています。
SetIndexBuffer делается однократно на вызове OnInit
SetIndexBufferを OnInitの中ではなく、何度も使っている人はいますか?MT4では、いつも使っています。MT5では、残念ながらこれができません。
ChartEventと Timerのイベントは並行して動作しているということでしょうか?
を順次実行しても、少なくともこれを使用することは妨げられません。
の場合、瞬時にChartEvent全体を取り除き、1つのオーダーだけを置く。
---
タイマーとチャートのイベントの並列性については、適切な質問である。
サービスデスクに聞く
を順次実行しても、少なくともこれを使用することは妨げられません。
の場合、瞬時にChartEvent全体を取り除き、1つのオーダーだけを置く。
---
タイマーとチャートのイベントの並列性については、適切な質問である。
サービスデスクにお問い合わせください。
誰もドキュメントを 読んでいない...。
クライアント端末は、生成されたイベントを対応するオープンチャートに送信します。また、チャート(チャートイベント)やmql5プログラム(カスタムイベント)によってもイベントを発生させることができます。チャートのCHART_EVENT_OBJECT_CREATE 及びCHART_EVENT_OBJECT_DELETE プロパティを設定することで、チャート上のグラフィカル オブジェクトの作成及び削除のイベント生成を有効/無効にすることができます。各mql5-programと各チャートは独自のイベントキューを持ち、そこにすべての新しいイベントが保存されます。
プログラムは、実行中のチャートからのイベントのみを受信します。すべてのイベントは、受信した順に順次処理 されます。キューに既にイベントNewTickが ある場合、またはこのイベントが処理中の場合、新しいイベントNewTickはmql5-programのキューに配置されない。同様に、mql5-programのキューがすでにChartEvent イベントを含んでいるか、そのようなイベントが処理されている場合、このタイプの新しいイベントはキューに入れられません。タイマーイベントも同じ方式で処理されます。キューにタイマー イベントがある場合、またはタイマーイベントがすでに処理されている場合、新しいタイマーイベントはキューに入れられません。
誰もドキュメントを 読んでいない...。
誰もドキュメントを 読まないし...。
お久しぶりです