iBarShiftとiTimeを組み合わせる
何日前より過去のオブジェクトは表示させたくない等で、ある日の0:00ちょうどの日付(datetime)を取得したいことが時々あります。
そんな時はこう書きます。
datetime baseDatetime = TimeCurrent(); // 基準日付(=ある日) int shift = iBarShift(NULL, PERIOD_D1, baseDatetime); datetime justDatetime = iTime(NULL, PERIOD_D1, shift); // 0:00ちょうどの日付
iBarShift関数に指定する3つ目の引数の日時(baseDatetimeのこと)は本来ローソク足のオープン時間であるべきですが、4つめの引数をfalseあるいは未入力にすることで、直近のローソク足のオープン時間を自動で取得してくれます。
PERIOD_D1を使うのがポイントですね。