0より大きい場合、ですね。0以下ならこの確認プロセスは実行されないことになります。次に、for(cnt=0;cnt<total;cnt++){として、繰り返しのfor文が使ってありますね。cntが0からtotalより小さいうちはcntに1を足しつつ繰り返してくださいといった感じです。totalが3の場合は、cntが0、1、2の3回繰り返されるということです。MODE_TRADES)){として、そのcntが使われてます。「もしインデックスcntのポジションを選択したときtrueになったら」といった意味ですね。(TimeCurrent()-OrderOpenTime())/3600.0;としてtmpに現在と選択されたポジションのオープン時の秒差を3600で割ったものを代入しています。これは、選択されたポジションを何時間保持してるかを計算しtmpに入れているわけですね。(((NormalizeDouble(tmp,8)-MaxOpenTime)>=0)){としています。MaxOpenTimeが0以上の場合という意味です。ここで、NormalizeDouble(小数値,0~8)という関数は、小数値の第何位(0~8)の後ろで四捨五入するといった関数です。NormalizeDouble(3.1415,3)とすれば、3.142というように小数点以下第3位の後ろで四捨五入した値になります。この場合、私が調べたところNormalizeDoubleを使っても使わなくても値は変わりませんでした。次にRefreshRates();としてます。いったあらかじめ作ってある変数の値をもう一度取得する必要があるときに使います。文字通りレートのリフレッシュですね。