エラー、バグ、質問 - ページ 3029 1...302230233024302530263027302830293030303130323033303430353036...3185 新しいコメント mktr8591 2021.05.28 14:44 #30281 Igor Makanu:というのは、インジケータでは正しく動作しないはずです。もし私が間違っていなければ、ヘルプにすべてのTFのデータをページングするスクリプトの内訳があり、インジケータが非同期に動作するため、この方法でインジケータから履歴データを要求することができないという警告があるはずです。で、ハンドルをバインドした後に BarsCalculated() を一度使うことが推奨されています。UPD: ヒストリーページング用スクリプトと、インディケータで動作しない理由の説明: https://www.mql5.com/ru/docs/series/timeseries_access この記事では、インジケータでタイムスケールからのデータを要求する(あるいはループで SeriesInfoInteger を 要求する) のは好ましくないということだけが書かれています。 "更新の原因となる指標と同じ周期で時系列の更新要求を送る ことは、非常に望ましくないことを思い出して ください。ヒストリカルデータの更新は、インジケータが動作するのと同じスレッドで実行されるため、インジケータが持つのと同じシンボル期間のデータを要求することは望ましくありません。したがって、ウェッジの可能性が高い。" 単純にSeriesInfoIntegerを要求して、falseの場合はOnCalculateを終了させると、どうしてウェッジが発生するのでしょうか? mktr8591 2021.05.28 14:50 #30282 皆さんに質問です。 https://www.mql5.com/ru/docs/series/timeseries_access の ヘルプにはこう書かれています。 「時系列データから任意のデータをコピーする関数を呼び出す場合 、開始パラメータ (価格データのコピーを開始するバー数)は常に利用可能な端末履歴内になければ ならないことに留意してください。 100本しかない場合、インデックス500のバーから始めて300本コピーしても意味がありません。このリクエストは無効とみなされ、処理されません。つまり、取引サーバーから履歴が読み込まれることはありません。 CopyTimeが-1を出すことは明らかですが、時系列を構築するプロセス自体を開始するのか、サーバーのバーから800番目(500+300)までのページングを行うのか、そうでないのか? アドバイスをお願いします。 Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным www.mql5.com Организация доступа к данным - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Andrey Dik 2021.05.28 14:54 #30283 mktr8591:1.この記事では、インディカで時系列のデータを要求するのは望ましくない(あるいは、ループ内でSeriesInfoIntegerを 要求する)としか書かれていません。"更新の原因となる指標と同じ周期で時系列の更新要求を送る ことは、非常に望ましくないことを思い出して ください。ヒストリカルデータの更新は、インジケータが動作するのと同じスレッドで実行されるため、インジケータが持つのと同じシンボル期間のデータを要求することは望ましくありません。したがって、ウェッジの可能性が高い。"2.SeriesInfoIntegerを 要求するだけで、OnCalculateがfalseの場合、どのようにウェッジが発生するのでしょうか。 1.そう、インジケーターのスレッドを遅くすることはできないからです。同期状態を要求すると、履歴がスワップされてしまうので、待つことができないからです。 2.そうですね。データの準備ができていない場合は、単にoncalcを終了し、同期端子が開始されますが、インジケータのフローは阻害されることはありません。次のoncalcは、データの準備ができ、要求された指標が完全にカウントされたときにのみ、ブレーキなしで完全に実行されます。上に追加されたプリントは、要求されたインジケータが常に準備ができていないことを示していますが、我々はすべての指標の 最速の計算の ためにすべてのティックではなく、一度だけ新しいバーを処理することができます。 mktr8591 2021.05.28 15:00 #30284 Andrey Dik: ありがとうございます。 また、私の質問を参照してください:https://www.mql5.com/ru/forum/1111/page3028#comment_22557528 Ошибки, баги, вопросы 2021.05.28www.mql5.com Общее обсуждение: Ошибки, баги, вопросы Alexey Viktorov 2021.05.28 15:02 #30285 Andrey Dik: は、上記のコードを参照してください。 コードを修正し、プリントアウトを追加する if(SeriesInfoInteger(Symbol(), OldTF, SERIES_SYNCHRONIZED)) { if(iBars(Symbol(), OldTF) != BarsCalculated(Handle)) { Print("Баров ", iBars(Symbol(), OldTF)); Print("посчитано", BarsCalculated(Handle)); return 0; } } else { Print("Период ", OldTF, " не синхронизирован."); return 0; } ゴキブリを見たら、モニターを丸めて、どこかへ押し込んでください。 Andrey Dik 2021.05.28 15:08 #30286 mktr8591:ありがとうございます。また、私の質問を参照してください:https://www.mql5.com/ru/forum/1111/page3028#comment_22557528 100%確実ではありませんが(要確認)、要求された日付がサーバー上の履歴の一番最初よりも新しいことを確認してから、データを要求すれば、履歴が入れ替わります。 mktr8591 2021.05.28 15:11 #30287 Andrey Dik:100%確実ではありませんが(要確認)、要求された日付がサーバー上の履歴の一番最初の日付よりも新しいことを確認することで、データを要求することができ、履歴は入れ替わります。 ありがとうございます。 私の他の投稿について尋ねていたのですが、もう一度リンクしてください :https://www.mql5.com/ru/forum/1111/page3028#comment_22557528 Ошибки, баги, вопросы 2021.05.28www.mql5.com Общее обсуждение: Ошибки, баги, вопросы Andrey Dik 2021.05.28 15:16 #30288 Alexey Viktorov:コードを修正し、プリントアウトを追加するゴキブリを見たら、モニターを丸めて、どこかへ押し込んでください。 同志よ、あなたは私の主張を証明してくれているのです。 Andrey Dik 2021.05.28 15:26 #30289 mktr8591:ありがとうございます。 私の他の投稿について尋ねていたのですが、もう一度リンクしてください :https://www.mql5.com/ru/forum/1111/page3028#comment_22557528あなたのコードがよくわからないのですが。次のOnCalculateの呼び出しで、"return 0; "の後はどうすれば よいのでしょうか? 0を返すことで、まだ何も計算していないことを示し、次のバーでprev kalkを1だけ増加させない。 つまり、return(rates_total)するまで、olderfからデータの要求を開始したバーにいることになる。 削除済み 2021.05.28 15:31 #30290 Andrey Dik:同志よ、あなたは私の主張を証明しています。 1.皆さんありがとうございます。インジケーターの知識が少し増えました ))) 2)アンドリュー、もし誰かがあなたの考えを理解しないなら(私も含めて)、それはたった一つのこと、つまりあなたが正しく絵を描いていないのです正確には、多くの人が理解できないような描き方をしているのですが......。 1...302230233024302530263027302830293030303130323033303430353036...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
というのは、インジケータでは正しく動作しないはずです。
もし私が間違っていなければ、ヘルプにすべてのTFのデータをページングするスクリプトの内訳があり、インジケータが非同期に動作するため、この方法でインジケータから履歴データを要求することができないという警告があるはずです。
で、ハンドルをバインドした後に BarsCalculated() を一度使うことが推奨されています。
UPD: ヒストリーページング用スクリプトと、インディケータで動作しない理由の説明: https://www.mql5.com/ru/docs/series/timeseries_access
この記事では、インジケータでタイムスケールからのデータを要求する(あるいはループで SeriesInfoInteger を 要求する) のは好ましくないということだけが書かれています。
"更新の原因となる指標と同じ周期で時系列の更新要求を送る ことは、非常に望ましくないことを思い出して ください。ヒストリカルデータの更新は、インジケータが動作するのと同じスレッドで実行されるため、インジケータが持つのと同じシンボル期間のデータを要求することは望ましくありません。したがって、ウェッジの可能性が高い。"
単純にSeriesInfoIntegerを要求して、falseの場合はOnCalculateを終了させると、どうしてウェッジが発生するのでしょうか?
皆さんに質問です。
https://www.mql5.com/ru/docs/series/timeseries_access の ヘルプにはこう書かれています。
「時系列データから任意のデータをコピーする関数を呼び出す場合 、開始パラメータ (価格データのコピーを開始するバー数)は常に利用可能な端末履歴内になければ ならないことに留意してください。 100本しかない場合、インデックス500のバーから始めて300本コピーしても意味がありません。このリクエストは無効とみなされ、処理されません。つまり、取引サーバーから履歴が読み込まれることはありません。
CopyTimeが-1を出すことは明らかですが、時系列を構築するプロセス自体を開始するのか、サーバーのバーから800番目(500+300)までのページングを行うのか、そうでないのか?
アドバイスをお願いします。
1.この記事では、インディカで時系列のデータを要求するのは望ましくない(あるいは、ループ内でSeriesInfoIntegerを 要求する)としか書かれていません。
"更新の原因となる指標と同じ周期で時系列の更新要求を送る ことは、非常に望ましくないことを思い出して ください。ヒストリカルデータの更新は、インジケータが動作するのと同じスレッドで実行されるため、インジケータが持つのと同じシンボル期間のデータを要求することは望ましくありません。したがって、ウェッジの可能性が高い。"
2.SeriesInfoIntegerを 要求するだけで、OnCalculateがfalseの場合、どのようにウェッジが発生するのでしょうか。
1.そう、インジケーターのスレッドを遅くすることはできないからです。同期状態を要求すると、履歴がスワップされてしまうので、待つことができないからです。
2.そうですね。データの準備ができていない場合は、単にoncalcを終了し、同期端子が開始されますが、インジケータのフローは阻害されることはありません。次のoncalcは、データの準備ができ、要求された指標が完全にカウントされたときにのみ、ブレーキなしで完全に実行されます。上に追加されたプリントは、要求されたインジケータが常に準備ができていないことを示していますが、我々はすべての指標の 最速の計算の ためにすべてのティックではなく、一度だけ新しいバーを処理することができます。
ありがとうございます。
また、私の質問を参照してください:https://www.mql5.com/ru/forum/1111/page3028#comment_22557528
Andrey Dik:
は、上記のコードを参照してください。
コードを修正し、プリントアウトを追加する
ゴキブリを見たら、モニターを丸めて、どこかへ押し込んでください。
ありがとうございます。
また、私の質問を参照してください:https://www.mql5.com/ru/forum/1111/page3028#comment_22557528
100%確実ではありませんが(要確認)、要求された日付がサーバー上の履歴の一番最初よりも新しいことを確認してから、データを要求すれば、履歴が入れ替わります。
100%確実ではありませんが(要確認)、要求された日付がサーバー上の履歴の一番最初の日付よりも新しいことを確認することで、データを要求することができ、履歴は入れ替わります。
ありがとうございます。
私の他の投稿について尋ねていたのですが、もう一度リンクしてください :https://www.mql5.com/ru/forum/1111/page3028#comment_22557528
コードを修正し、プリントアウトを追加する
ゴキブリを見たら、モニターを丸めて、どこかへ押し込んでください。
同志よ、あなたは私の主張を証明してくれているのです。
ありがとうございます。
私の他の投稿について尋ねていたのですが、もう一度リンクしてください :https://www.mql5.com/ru/forum/1111/page3028#comment_22557528
0を返すことで、まだ何も計算していないことを示し、次のバーでprev kalkを1だけ増加させない。
つまり、return(rates_total)するまで、olderfからデータの要求を開始したバーにいることになる。
同志よ、あなたは私の主張を証明しています。
1.皆さんありがとうございます。インジケーターの知識が少し増えました )))
2)アンドリュー、もし誰かがあなたの考えを理解しないなら(私も含めて)、それはたった一つのこと、つまりあなたが正しく絵を描いていないのです正確には、多くの人が理解できないような描き方をしているのですが......。