Sha256: 55c10b2ddf099dadf79e4394fcbc1e91662fca1661a21f76565a25486a89cd62
Contents?: true
Size: 864 Bytes
Versions: 7
Compression:
Stored size: 864 Bytes
Contents
# 一定期間の移動平均を得る class MovingAverage def initialize( range=25 ) @rates = [] # レートを記録するバッファ @range = range end def next_rate( rate ) # バッファのデータを更新 @rates.push rate @rates.shift if @rates.length > @range # バッファサイズが十分でなければ、nilを返す。 return nil if @rates.length != @range # 移動平均を算出 return MovingAverage.get_moving_average(@rates) end # 前の結果(引数で指定した件数だけ記録。) attr :prev, true private # 移動平均値を計算する。 def self.get_moving_average( rates ) total = 0 rates.each {|s| total += s.end total += s.max total += s.min } return total / ( rates.length * 3 ) end end
Version data entries
7 entries across 7 versions & 2 rubygems