Module: Quant

Defined in:
lib/quant.rb,
lib/quant/version.rb

Constant Summary collapse

VERSION =
"0.0.3"

Class Method Summary collapse

Class Method Details

.donchian_channel(ohlc, n) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/quant.rb', line 20

def self.donchian_channel(ohlc, n)
  dc = []
  ohlc.each_with_index do |e, i|
    if i < (n - 1)
      dc << [not_a_number, not_a_number]
    else
      c = ohlc[(i - n + 1)..(i)].flatten
      dc << [c.max, c.min]
    end
  end
  dc
end

.sma(values, n) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/quant.rb', line 5

def self.sma(values, n)
  acc = 0
  values.inject_with_index([]) do |m, e, i|
    acc += e
    if i < (n - 1)
      m << not_a_number
    elsif i == (n - 1)
      m << acc / n
    else
      acc = acc - values[i - n]
      m << acc / n
    end
  end
end