FXボーグ | テクニカル実験室

テクニカル分析を使った自動売買プログラムの開発に挑戦!

スポンサーリンク

「NinjaTrader8」で複数のバッファをList<T>にまとめる方法など。

カスケードインジケーターをNinjaTrader8へ移植しました。

f:id:fxborg:20160721061629p:plain

色付きの帯はトレンドを表しています。色の意味は次のとおりです。

  • 緑・・・確かな上昇(6本のステップラインが上昇)
  • ライム・・・弱い上昇(5本のステップラインが上昇)
  • 黄色・・・持ち合い
  • オレンジ・・・弱い下落(5本のステップラインが下落)
  • 赤・・・確かな下落(6本のステップラインが下落)

 コード上のポイント

今回のインジケーターではバッファを入れ子にして使っています。

// こんな風に定義します。

private List<Series<double>> _lines;  

 

・・・

 

// 初期化

_lines = new List<Series<double>>();

for(int i=0;i<6;i++)
     _lines.Add(new Series<double>(this));

 

・・・

 

// バッファには2次元配列風にアクセスできます。

for(int i=0;i<6;i++)
{
     if(_lines[i][0]>max) max=_lines[i][0];
     if(_lines[i][0]<min) min=_lines[i][0];
}

 また、塗りつぶしは「Draw.Region()」を使用します。こんな感じです。

【構文】

Draw.Region(NinjaScriptBase owner,string tag,
            int startBarsAgo, int endBarsAgo,
            ISeries<double> series1,ISeries<double> series2,
            Brush outlineBrush, Brush areaBrush,
            int areaOpacity, [int displacement])

 

【引数】

・owner ・・・ this をセット
・tag   ・・・ 任意の一意な識別子 
・startBarsAgo ・・・ 色付けの開始位置
・endBarsAgo ・・・  色付けの終了位置
・series1 ・・・ バッファ1
・series2 ・・・ バッファ2
・outlineBrush ・・・ 輪郭の色 
・areaBrush ・・・ 塗りつぶしの色
・areaOpacity ・・・ オパシティ
・displacement ・・・ シフト(省略化)

リファレンスより) 

こちらは実際のソース。f:id:fxborg:20160721065114p:plain

 

 最後に

今回はカスケード・インジケータをNinjaScriptに移植しました。複数バッファを同列に扱えるのでとても楽です。スワミチャートなども簡単につくれそうです。今後はストラテジーの作り方などを調べたいと思います。

こちらからどうぞ
Indicators/Cascade.cs