プロが教える店舗&オフィスのセキュリティ対策術

MQL4を勉強中でソースを読んでいるのですが

int s_time = GetTickCount();
  int WaitTime = 10;
while(true)
{
if(GetTickCount() - s_time > WaitTime*1000)
{
Alert("OrderClose time out.");
return(false);
}
これの if(GetTickCount() - s_time がわからずつまづいております。

GetTickCount()がs_timeに格納されているのに

GetTickCount() - GetTickCount()では 常にif( 0 > WaitTime*1000)
 
と言う意味になるのと思うのですが。

そう言う意味で合っているのでしょうか?

よろしくお願いします。

A 回答 (1件)

GetTickCount()関数はシステム起動時からその時点の経過時間を表します。


従って、最初のGetTickCount()はwhile文に入る前の時刻?で、それをs_timeに代入しています。

そして、while文の中でもGetTickCount()は刻々と時間によりカウントアップされるわけで、その値(時刻)と初期値(s_time)の差分がWaitTime*1000以上になったら、"OrderClose time out."とアラームを出すプログラムですね。

もし、このようなプログラムでどのような動きをしているか分からない場合は、Comment()やPrint()でリアルタイムにGetTickCount()を表示させてみれば、一目瞭然です。プログラム分析の一つの常道です。
    • good
    • 0
この回答へのお礼

頭の中でこねくり回してどんどん訳が分からなくなってました。次からPrintなど活用したいと思います。
システム起動時ってMT4立ち上げてからの時間かと思ってました。 

理解できましたありがとうございます。

お礼日時:2013/05/01 09:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!