NinjaScriptで独自のインジケーターやストラテジーを開発する目的の核心は、価格データを評価することである。NinjaScriptは現在および過去の価格データを参照することを可能にする。Price Type、IndicatorおよびCustom Historical Seiresを含むいくつかの価格データのカテゴリがある。
Price Type | 構文 | エディタのショートカット | 定義 |
Close | Close[ int barsAgo ] | "c" + Tab Key | バーの終値 |
Open | Open[ int barsAgo ] | "o" + Tab Key | バーの始値 |
High | High[ int barsAgo ] | "h" + Tab Key | バーの高値 |
Low | Low[ int barsAgo ] | "l" + Tab Key | バーの低値 |
Volume | Volume[ int barsAgo ] | "v" + Tab Key | バーの取引高 |
Input | Input[ int barsAgo ] | "i" + Tab Key | バーのデフォルトのPrice Type * |
あなたは、何らかの価格データを参照するために、[ int barsAgo ]の部分に値を入れる必要があることに気付くだろう。これは非常に単純な概念である。すなわち、barsAgoは参照するために前に遡るバーの個数を意味し、intはbarsAgoが整数値であることを示す。例えば1つ前のバーの高値が現在のバーの高値より小さいかどうかを調べる命令文は、このように記述することができる:
High[1] < High[0];
直近の3つのバーの終値の平均値を計算する命令文は、このように記述することができる:
( Close[2] + Close[1] + Close[0] ) / 3;
既に見当がついているかもしれないが、現在のバーのデータを参照するには、barsAgoパラメーターに値0(ゼロ)を渡すことによって成される。基本的に我々が言わんとしているのは0個前のバーの価格データを示せということであり、それは現在のバーを意味する。
* Inputは、デフォルトのPrice Typeを常に指し示し且つアクセス可能である、特別なプロパティである。ソース・データとして異なるPrice Typeの使用に対応しているインジケーターがあり、そのInput[int barsAgo]プロパティを参照する場合、自動的に正しいPrice Typeオブジェクトを参照する。これは進歩的な話題である。
NinjaScriptは、あなたがアクセスできる内蔵のインジケータのライブラリを備えている。それぞれのインジケータへのアクセス方法の明確な定義については、Indicator Methodsの項を参照。
全てのインジケーターの値は次の方法でアクセスすることができる:
indicator( parameters )[ int barsAgo ]
indicator
はアクセスしたいインジケーターの名前、
parameters
はそのインジケータに必要な何らかの関連付けのあるパラメーター、そして
barsAgo
は現在のバーからオフセットさせたいバーの個数である。
例として、現在の終値が20単位周期(訳注:バー周期とでも言い換えれば良いか)の単純移動平均より大きいかどうかを調べる命令文は、このよう記述することができる:
Close[0] > SMA(20)[0];
20単位周期の高値の単純移動平均に対して同様に調べたいのであれば、このように記述することができる:
Close[0] > SMA(High, 20)[0];
14単位周期のCCIインジケーターが上昇するかどうかを調べるには、このように命令文を記述することができる:
CCI(14)[0] > CCI(14)[1];
10単位周期のCCIに関する1つ前のバーの値 = CCI(10)[1] である。
様々なインジケータの値にアクセスするための正確な文法については、Indicator Methodsの項を参照すること。