【发布时间】:2022-06-11 21:15:28
【问题描述】:
我是编程新手,正在尝试学习 Julia。我尝试像以前在 R 中那样计算短期股票交易活动的加权平均成本。我在 Julia 中重写了代码,不幸的是,它以数据框格式返回了不正确的结果。
我试图通过将return vwavg 更改为println([volume[i], s, unitprice[i], value[i], t, vwavg[i], u]) 来调查每个迭代步骤的结果,并且输出是正确的。是四舍五入的问题吗?
非常感谢您的帮助
# create trial dataset
df = DataFrame(qty = [3, 2, 2, -7, 4, 4, -3,-2, 4, 4, -2, -3],
price = [100.0, 99.0, 101.0, 103.0, 95.0, 93.0, 90.0, 90.0, 93.0, 95.0, 93.0, 92.0])
# create function for weighted average cost of stock price
function vwacost(volume, unitprice)
value = Vector{Float64}(undef, length(volume))
vwavg = Vector{Float64}(undef, length(volume))
for i in 1:length(volume)
s = 0
t = 0
u = 0
if volume[i]>0
value[i] = (volume[i]*unitprice[i]) + t
volume[i] = volume[i] + s
vwavg[i] = value[i]/volume[i]
u = vwavg[i]
s = volume[i]
t = value[i]
else
volume[i] = volume[i] + s
value[i] = u * volume[i]
s = volume[i]
t = value[i]
vwavg[i] = u
end
return vwavg
end
end
out = transform(df, [:qty, :price] => vwacost)
【问题讨论】:
标签: julia stock trading weighted-average