マルチタイムフレームとNinjaScriptでのGMT0の考え方
貴方がGMT0の時点でのクローズがほしい時。
NinjaTrader7ではどうするか?
まず日足のクローズを持ってきます。
Add(PeriodType.Day, 1);
この一文をInitialize()の中に書いてやると
Closes[1][0];で使えるようになります。
しかしただそのままにするとarray out of range.なので
OnBarUpdate()の中で
日足に必要な分>CurrentBars(足の総数)だったらreturnしてやります。
そのための文が
if (CurrentBars[0] <= BarsRequired || CurrentBars[1] <= BarsRequired)return;
最初BarsRequiredを知らなくて必死にGetBar()文を使ってやろうにも
そもそもそれを呼び出してarray out of range.を食らうという本末転倒式でした。
全体としてはこんなかんじです。
インジケーターは
6時に1日がクローズして日足を形成しています。
そうじゃなくて俺は0時にクローズする足がほしいんだって場合
NT7ではNSをいじるんじゃなくてSessionの方を変えます。
Tools→Session Manager
Default 24/7をCopyして任意の名前にします。
そしてtime zoneをUTC+9:00に設定。
SaveしSession templateを
Instrument EditorでUTC9に変えてやる
もう一度インジケーターを表示してやると
日付が変わったタイミングで変わりました。
俺の使っているFXCMのデモの場合はUTC+9のようですが、他のサーバーの場合はそのサーバーに合わせる必要がありそうです。