class Signals::RangeSignal

一定期間のレートデータを元に値を算出するシグナルの基底クラス

Public Class Methods

new(range = 25) click to toggle source

コンストラクタ

range

集計期間

# File src/jiji/model/agents/builtin_files/signals.rb, line 10
def initialize(range = 25)
  @data  = [] # レートを記録するバッファ
  @range = range
end

Public Instance Methods

next_data(data) click to toggle source

次のデータを受け取って指標を返します。

data

次のデータ

戻り値

指標。十分なデータが蓄積されていない場合nil

# File src/jiji/model/agents/builtin_files/signals.rb, line 18
def next_data(data)
  # バッファのデータを更新
  @data.push data
  @data.shift if @data.length > @range

  # バッファサイズが十分でなければ、nilを返す。
  return nil if @data.length != @range

  # 算出
  calculate(@data)
end