累积回报

时间:2018-04-06 21:56:23

标签: julia

在R中我们可以做到:

cum.ret <- cumprod(1 + df$rets) - 1

我想对朱莉娅做同样的事情,这里有一些假数据:

# Dummy Data
df = DataFrame(a = 1:10, b = 10*rand(10), Close = 10 * rand(10))

# Calculate Returns 
Close = df[:Close]
Close = convert(Array, Close)
df[:Close_Rets] = [NaN; (Close[2:end] ./ Close[1:(end-1)] - 1)] 

# Calculate Cumulative Returns 
df[:Cum_Ret] = cumprod(((1 .+ df[:Close_Rets])-1),2)

输出:

julia> head(df)
6×5 DataFrames.DataFrame
│ Row │ a │ b       │ Close    │ Close_Rets │ Cum_Ret   │
├─────┼───┼─────────┼──────────┼────────────┼───────────┤
│ 1   │ 1 │ 6.15507 │ 3.6363   │ NaN        │ NaN       │
│ 2   │ 2 │ 7.73259 │ 0.98378  │ -0.729456  │ -0.729456 │
│ 3   │ 3 │ 3.64926 │ 7.94633  │ 7.07735    │ 7.07735   │
│ 4   │ 4 │ 5.15762 │ 0.744905 │ -0.906258  │ -0.906258 │
│ 5   │ 5 │ 9.49532 │ 8.51811  │ 10.4352    │ 10.4352   │
│ 6   │ 6 │ 6.14604 │ 5.02165  │ -0.410473  │ -0.410473 │

无论如何要做到这一点?

0 个答案:

没有答案