multi-series(multi-time frameあるいはmulti-insturument)のNinjaScriptを開発するために、インジケーターあるいはストラテジーにBarsオブジェクトを加える。NinjaScriptを実行する際、プライマリ(第一)の銘柄とバー間隔を選択することができる。このプライマリのBarオブジェクトに対しては、BarsInProgressインデックスの値は0になる。multi-time frameおよびmulti-instrumentのNinjaScriptにおいて、付け加えられたBarsオブジェクトはこのメソッドを通してInitialize()に追加され、インクリメントされたBarsInProgressのインデックス値が与えられる。さらなる情報はmulti-series scriptsを参照。
* 特別な形式のBarsを追加するにはこれらのメソッドを使用すること:
AddKagi()
AddLineBreak()
AddPointAndFigure()
AddRenko()
次の構文は、スクリプトのプライマリの銘柄のBarsオブジェクトをもう1つ、ストラテジーに追加する。
Add(
PeriodType
periodType
,
int
period
)
次の構文は、様々な銘柄のBarsオブジェクトをスクリプトに追加することを可能にする。
Add(
string
instrumentName
,
PeriodType
periodType
,
int
period
)
Add(
string
instrumentName
,
PeriodType
periodType
,
int
period
,
MarketDataType
marketDataType
)
注記:オプションでシンボル名に接尾語として取引所の名前を追加することができる。このことは、その銘柄が複数の取引可能な取引所で扱われる可能性があり且つそのことがInstrument Manager中で設定されている場合にのみ、勧められる。例えば: Add("MSFT Arca", PeriodType.Minute, 5) (訳注:MSFTがシンボル名、Arcaが取引所名) }}
instrumentName | 銘柄名(Instrument Name)、例えば"MSFT" |
periodType |
バーの周期の種類: PeriodType.Day PeriodType.Minute PeriodType.Range PeriodType.Second PeriodType.Tick PeriodType.Volume |
period | バーの周期、例えば3分毎のバーなら"3"を指定する |
marketDataType |
設定可能な値は以下の通り: MarketDataType.Ask MarketDataType.Bid MarketDataType.Last * Bid/Ask系列の使用についてはこの記事を参照すること。 |
protected override void Initialize()
{
// Add a 5 minute Bars object - BarsInProgress index = 1
Add(PeriodType.Minute, 5);
// Add a 100 tick Bars object for the ES 12-06 contract - BarsInProgress index = 2
Add("ES 12-06", PeriodType.Tick, 100);
}
protected override void OnBarUpdate()
{
// Ignore bar update events for the supplementary Bars object added above
if (BarsInProgress == 1 || BarsInProgress == 2)
return;
// Go long if we have three up bars on all bars objects
if (Close[0] > Open[0] && Closes[1][0] > Opens[1][0] && Closes[2][0] > Opens[2][0])
EnterLong();
}