俺にも執筆活動させろボケ

マルチタイムフレームと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.を食らうという本末転倒式でした。

全体としてはこんなかんじです。

f:id:nemui3900:20141003170447p:plain

インジケーターは

f:id:nemui3900:20141003170621p:plain

6時に1日がクローズして日足を形成しています。

そうじゃなくて俺は0時にクローズする足がほしいんだって場合

NT7ではNSをいじるんじゃなくてSessionの方を変えます。

Tools→Session Manager

Default 24/7をCopyして任意の名前にします。

そしてtime zoneをUTC+9:00に設定。

f:id:nemui3900:20141003172015p:plain

SaveしSession templateを

Instrument EditorでUTC9に変えてやる

f:id:nemui3900:20141003172437p:plain

もう一度インジケーターを表示してやると

f:id:nemui3900:20141003172613p:plain

日付が変わったタイミングで変わりました。

俺の使っているFXCMのデモの場合はUTC+9のようですが、他のサーバーの場合はそのサーバーに合わせる必要がありそうです。