- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MQL4を勉強中なのですが)
MQL4のGetTickCount関数についての疑問
このQ&Aのポイント
- MQL4でGetTickCount関数を使用している際に、if(GetTickCount() - s_time)の意味が理解できずに困っています。
- GetTickCount()関数は現在の時間をミリ秒単位で返す関数ですが、ここではその戻り値と変数s_timeの差分を計算しています。
- if(GetTickCount() - s_time > WaitTime*1000)は、指定したWaitTime秒後に処理を実行するための条件式です。差分が指定した秒数を超えた場合に処理が実行され、それ以外の場合は処理が終了します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
GetTickCount()関数はシステム起動時からその時点の経過時間を表します。 従って、最初のGetTickCount()はwhile文に入る前の時刻?で、それをs_timeに代入しています。 そして、while文の中でもGetTickCount()は刻々と時間によりカウントアップされるわけで、その値(時刻)と初期値(s_time)の差分がWaitTime*1000以上になったら、"OrderClose time out."とアラームを出すプログラムですね。 もし、このようなプログラムでどのような動きをしているか分からない場合は、Comment()やPrint()でリアルタイムにGetTickCount()を表示させてみれば、一目瞭然です。プログラム分析の一つの常道です。
お礼
頭の中でこねくり回してどんどん訳が分からなくなってました。次からPrintなど活用したいと思います。 システム起動時ってMT4立ち上げてからの時間かと思ってました。 理解できましたありがとうございます。