Paul_B: I'm plotting certain times on a chart which match to GMT, so it matters a great deal when trying to get the offset between MT4 server time and GMT.
あなたの回答は、マニュアルがこの分野で明らかに欠けているという事実にもかかわらず、基本的にRTFMの良いバージョンでした(これは珍しいことで、MT4のドキュメントの質はかなり良いのですが...)。Angevoyageurの反応は、これを大騒ぎと表現した。これは、MT4に対するいかなる批判に対しても、それがどんなに軽いものであっても、病的に敏感に反応するパターンの一部であるように思われる。WHRoederは、"you don't want to do that "と言い、Paul_BがすでにGMTオフセットの計算方法を知っていたため、明らかに無関係なコードをコピー&ペーストしている。
この問題は、Indicatorに対して最初にstart()が呼ばれたとき、新しいティックの結果ではない可能性があることだと思います ... その場合、TimeCurrent()は間違った時刻を報告します。 私はこれを検証していません ... ...
この場合、私は単に最初のティックを無視して ... 2ティック以降を通常通り続けます。
Paul_B:
I'm plotting certain times on a chart which match to GMT, so it matters a great deal when trying to get the offset between MT4 server time and GMT.
<g> あなたはまだこのフォーラムの文化についていけてないようですね。モデレータや他の長期的なフォーラムのユーザーからの一連の応答は、常に「あなたは何か間違ったことをしています」であり、あなたが間違ったことをしていないことが判明したときには「なぜそんなことをしたいのですか?
もし私があなただったら、IsConnected()がfalseなら、start()の呼び出しから抜けるようにします。あるいは、ティックカウントを静的変数に保持し、ティック#1を無視することもできますが、そうすると通常の状況下で起動が不必要に遅くなってしまいます。
RaptorUKの提案に賛成です。最初のティックを無視し、2回目にすべてのバーを更新するインジケータを提案します。
また、これは完全に予想外というわけではありません。インディケータはスリープできないので、EAがiCustom経由でインディケータをinitでロードした場合、インディケータがinitとstartを実行するまで、呼び出しはバッファの値を返すことができないのです。
ご意見ありがとうございました!現在動作していますが、私が持っているものは理想的なソリューションではなく、特に堅牢でもないようです。IsConnected()をもう少し詳しく調べてみます。
選択肢はあまりないように思います。MT4は、オフラインのチャートにインジケータを表示させるためにstart()のダミーコールを生成します。また、より一般的には、接続の確立を待たずに、MT4をロードするとすぐにチャートにインジケータを(再)表示させたいからです。
適切に確立された接続と有効なTimeCurrent()があることの確実性を高めたい場合は、AccountNumber() != 0およびAccountBalance() > 0を探すこともできます。または、流動性の薄いシンボルで数秒の遅延を犠牲にして、2番目のティックを待つことも可能です。
ありがとうございます。2回目のティックが受信されるまで待つようにインジケータをプログラムしてみます。
ちなみに、IsConnected()の可能性を探りましたが、IsConnected()がtrueと報告しても、まだ「間違った」TimeCurrent()を得ていました。
<g> あなたはまだこのフォーラムの文化についていけてないようですね。モデレータや他の長期的なフォーラムのユーザーからの一連の応答は、常に「あなたは何か間違ったことをしています」であり、あなたが間違ったことをしていないことが判明したときには「なぜそんなことをしたいのですか」です。
もし私があなただったら、IsConnected()がfalseなら、start()の呼び出しから抜けるようにします。あるいは、ティックカウントを静的変数に保持し、ティック#1を無視することもできますが、そうすると通常の状況下で起動が不必要に遅くなってしまいます。
もし、ユーザーが問題を実証するためのテストコードを提供しない場合、[...]。
OPには何も問題や欠落はありませんでした。Paul_Bは、MT4のドキュメントから完全に合理的に、start()は新しいティックに応答してのみ呼び出されると仮定していたことは明らかです。(なぜ 彼がTimeCurrent()をチェック したかったのかは、違いがなく、実際私たちには関係ありません)。
あなたの回答は、マニュアルがこの分野で明らかに欠けているという事実にもかかわらず、基本的にRTFMの良いバージョンでした(これは珍しいことで、MT4のドキュメントの質はかなり良いのですが...)。Angevoyageurの反応は、これを大騒ぎと表現した。これは、MT4に対するいかなる批判に対しても、それがどんなに軽いものであっても、病的に敏感に反応するパターンの一部であるように思われる。WHRoederは、"you don't want to do that "と言い、Paul_BがすでにGMTオフセットの計算方法を知っていたため、明らかに無関係なコードをコピー&ペーストしている。