[SERVICE DESK】タイマーでシニアTFの時刻を取得する際にエラーが発生!? - ページ 4

 
Vitaly Gorbunov:
まあ、松葉づえとは言いませんけどね。サーバーからの引用の流れを期待しているのですが、そうしないと履歴が更新されないのです。もう一つの方法は、コンピュータのローカルタイムを取って、それをタイムゾーンに補正することで、自動的に計算することができます。ちょっと曲者ですが、Metakvotの人がMT4で何かを変えるとは思えません。結局はサーバーの接続の問題なので、何らかの方法で対処しなければならないのです。

そこにそして、これが問題であることに気づいたのですね!しかし、私は、それが修正されるべきであり、かつ/または、ヘルプは、すべてのケースのためのアルゴリズムで補完されるべきであると思います。

データ検索機能は、エラーや警告なしに左利きのデータを出してはいけないのです

これは、同期と次のハング/エラーに関する私の最初のトピックではありません(前のものはMT5に関するもので、私はそれについて明確な答えを持っていませんでした)。

 
Alexey Kozitsyn:

はい、うまくいきそうですね。オプションとして、使用することができます。ありがとうございました。でも、やっぱり機能はちゃんと動いてほしいですよね。

これは、欠けたバーがない場合にのみ機能しますが、保証はできません。 例えば、現在の時間(そしておそらく前の時間も)の新しい相場がサーバーにないとします。 したがって、最後のバーは前のバーとなります。

 
Ihor Herasko:

検証のアプローチには、2つの大きな誤りがあります。

  1. インジケーターのOnInit()では、どのTF(現在のTFも含む)の正しいデータを取得することができません。端末起動時のインジケータのOnInit()は、ほぼ空のウィンドウで実行されます(端末シャットダウン時にあったデータすらない可能性があります)。市場環境ですら、まだ手に入らないことが多いのです。ヘルプには、OnInit()でやってはいけないことについての警告がたくさん書かれています。そのため、そのコードに含めるべきものはあまりありません。通常は、設定されたパラメータの値のチェック、インジケータ・バッファと配列の結合、クラスが使用されている場合はその作成です。それ以外はすべてOnCalculate()で行う必要があります。
  2. これらのチェックは、OnCalculateが少なくとも一回呼ばれた後にのみ行うことができます。

イゴール、コードを見直したか?OnInit()のどこに何かあるのでしょうか?

2.何のチェック?インジケータが正しく動作するためには、少なくとも一度はOnCalculate()を使用しなければならないとありますが、どこに書かれていますか?

 
Alexey Navoykov:

これは、ミスバーがない場合にのみ機能しますが、保証はできません。 現在の時間(そしておそらく前の時間も)の新しい相場がサーバー上にないとします。 したがって、最後のバーは、ある前のバーとなります。

この解決策は、何もしないよりはずっとましです。私が言った(証明した)ように、バグがあるのです。開発者が早く直したほうがいい。

 
そのため、偽のデータを出すことはなく、最後に受信したデータを出し、端末がクォートストリームを受信し始めるまでエラーは発生しない。あなたの場合、引用符を受け取る前にデータを受け取ろうとしているので、プログラマーはそのような例外的な状況を自分で処理しなければなりません。また、接続に失敗した場合も同様です。MT5の問題点は何ですか?
 
Alexey Navoykov:

これは、ミスバーがない場合にのみ機能しますが、保証はできません。 現在の時間(そしておそらく前の時間も)サーバー上に新しい相場がないとします。 したがって、最後のバーは前のバーとなります。

iBarShiftを 使った方法では、履歴のずれを特定することができますが、一定の間隔で確認する必要があります。私自身は、それに対応する手順を書き、それ以降はMTFのプログラムの隙間については忘れています。
 
Vitaly Gorbunov:
そのため、余ったデータを出すのではなく、最後に受信したデータを出し、端末が相場の流れを受信し始めるまでエラーは発生しません。あなたの場合、相場が始まる前にデータを受信しようとしています。接続障害も同様です。MT5の問題点は何ですか?

おいおい...すでに解体のその段階は過ぎているのです。ご自身のログをご覧ください。

2018.09.21 15:02:42.910 Custom indicator test XAUUSD,H1: removed
2018.09.21 15:15:27.985 test XAUUSD,H1: initialized
2018.09.21 15:15:29.520 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.552 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.589 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.605 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.636 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.667 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.705 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.736 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.768 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.805 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.837 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.868 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.906 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.937 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.969 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.006 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.038 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.069 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.106 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.138 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.169 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:31.880 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #4066
2018.09.21 15:15:31.900 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:31.940 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:31.990 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.010 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.074 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.100 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.120 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.174 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0

シーケンスです。まず、接続を確認します。接続が確立されると、時刻を取得 する。なぜ最初にエラー4066が返され、その後返されないのか、説明してくれ!?前回の呼び出しから20msの間に何が変わったのか?

 
Vitaly Gorbunov:
読んでいて非常に興味深いそこにMT5の問題点は何ですか?

https://www.mql5.com/ru/forum/219829

Клинч в индикаторах mql5.
Клинч в индикаторах mql5.
  • 2017.11.15
  • www.mql5.com
Недавно столкнулся с одной крайне неприятной проблемой...
 
Alexey Kozitsyn:

この解決策は、何もしないよりはずっとましです。私が言った(証明した)ように、バグがあるのです。開発者が早く直したほうがいい。

さて、最適な松葉杖といえば、現在の時間だけでなく、最後に判明したバーから前の時間をすべてチェックすることです。 そうしないと、現在の時間の相場がない場合、このチェックで行き詰ってしまうからです。
 
Alexey Kozitsyn:

おいおい...すでに解体のその段階は過ぎているのです。ご自身のログをご覧ください。

シーケンスです。まず、接続を確認します。接続が確立されると、時刻を取得する。なぜ最初にエラー4066が返され、その後返されないのか、説明してくれ!?前回の呼び出しから20msの間に何が変わったのか?

データはエラー4066をロードされ、それはバグmetakvotovtsev最も可能性の高い受信データは、このような状況のために処理され、エラーが作成されていませんです。それまでは、すべてが理にかなっています。