Skip to content

Commit

Permalink
Merge pull request #80 from JuliaQuant/ib-rsi-refine
Browse files Browse the repository at this point in the history
rsi: refine usage of wilder param (#80)
  • Loading branch information
iblislin committed May 13, 2017
2 parents 703f267 + 4796b45 commit 84078b8
Showing 1 changed file with 6 additions and 13 deletions.
19 changes: 6 additions & 13 deletions src/momentum.jl
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ Relative Strength Index
RSI = \frac{EMA(Up, n)}{EMA(Up, n) + EMA(Dn, n)}
```
"""
function rsi{T,N}(ta::TimeArray{T,N}, n::Int=14; wilder=false)
function rsi{T,N}(ta::TimeArray{T,N}, n::Int=14; wilder::Bool=false)
# for the record I'm not happy about transposing zeros here
# since it's difficult to see why
ret = vcat(zeros(length(colnames(ta)))', diff(ta.values))
ups = zeros(size(ta.values,1), size(ta.values,2))
dns = zeros(size(ta.values,1), size(ta.values,2))
ups = zeros(size(ta.values, 1), size(ta.values, 2))
dns = zeros(size(ta.values, 1), size(ta.values, 2))

for i in 1:size(ta.values,1)
for j in 1:size(ta.values,2)
Expand All @@ -24,16 +24,9 @@ function rsi{T,N}(ta::TimeArray{T,N}, n::Int=14; wilder=false)
end
end

if wilder
upsema = ema(ups, n, wilder=true)
dnsema = abs(ema(dns, n, wilder=true))
rs = upsema ./ dnsema

else
upsema = ema(ups, n)
dnsema = abs(ema(dns, n))
rs = upsema ./ dnsema
end
upsema = ema(ups, n, wilder=wilder)
dnsema = abs(ema(dns, n, wilder=wilder))
rs = upsema ./ dnsema

res = 100 .- (100./(1 .+ rs))

Expand Down

0 comments on commit 84078b8

Please sign in to comment.