ボリンジャーバンドの計算は難しいと思ったのですが、意外と簡単でした。

ただ、 n で割るのか n-1 で割るのか迷いましたが、数が決まっているので n で割ることにしました。

  • 標準偏差: n で割る
  • 不偏標準偏差: n-1 で割る


Rubyのボリンジャーバンド計算のコード

def calc_bb(ddd)
  sma = ddd.sum.to_f / ddd.size
  sig = Math.sqrt( ddd.inject(0){|ss,dd| ss + (dd - sma)**2} / ddd.size )
  [sig*2, sig, 0, -sig, -sig*2].map!{|dd| (dd+sma).round(3)}
end

配列を渡せば、配列で結果が返ります。与えた配列の最後の値に対する結果です。 使うときは、配列を1つづつずらして calc_bb を呼べばOKです。 配列の数がパラメータになります。


NT倍率に対してのグラフ結果例

2019/12/15