rubyでボリンジャーバンドを計算
需要あるかどうかしらんけどrubyでボリンジャーバンドの計算方法。
簡単に検索した限りだとrubyの計算は出てこなかったので。
ほぼ自分用メモとして。
pythonの場合だとNumpyで書けば np.std() で出来るっぽい。※実行していないので本当かどうかは分かりませんw
MT4だとiBands() で一発。
# Bollinger bandの計算 puts "ボリバン計算開始" class Array def sum #合計 reduce(:+) end def mean #平均 sum.to_f / size end def var m = mean #分散 reduce(0) { |a,b| a + (b - m) ** 2 } / (size - 1) end def sd #標準偏差 Math.sqrt(var) end end # テストデータ a = [101.537, 101.571, 101.637, 101.632, 101.622, 101.623, 101.61, 101.554, 101.548, 101.532, 101.551, 101.561, 101.572, 101.57, 101.588, 101.581, 101.584, 101.574, 101.583, 101.568] p a heikin = a.mean hensa = a.sd puts (heikin + (hensa * 2)).round(3) #2σ #=> 101.642 puts (heikin + (hensa * 1)).round(3) #1σ #=> 101.611 puts (heikin + (hensa * -1)).round(3) #-1σ #=> 101.549 puts (heikin + (hensa * -2)).round(3) #-2σ #=> 101.518
書いててあれですがあってますよね?w