【发布时间】:2020-04-19 17:15:31
【问题描述】:
我想计算下面 data.frame 中每一列 A:C 的利润/亏损。标题 A 到 C 可以被视为股票代码。每一行都可以被认为是每小时收盘价。价格日期和小时可以组合起来形成这个时间序列数据的时间戳。
我曾尝试使用fTrading 和PerformanceAnalytics 包来计算最大回撤,但不断出现错误。我不在乎何时出现最大回撤。我只需要最大回撤金额,以便我可以使用它来计算利润/回撤(利润除以最大回撤)比率。
数据:
hourlyclose <- data.frame(pricedate = as.Date('2019-12-18'), hour = c(1,2,3,4,5), A = c(3,5,6,2,4), B = c(1,9,7,11,4), C = c(0,2,5,4,9))
我希望输出第二个 data.frame,其中每个列对应股票代码、利润回撤率和利润(在我的示例每小时关闭 data.frame 中,最后一行减去第一行) .
生成的 data.frame 应如下所示:
Stock pdd profit
A 0.25 1
B 0.43 3
C 9.0 9
我希望尽可能多地使用 tidyverse 和其中任何一个财务包进行运营。
回撤定义:回撤是衡量价格在达到或超过之前的高价之前下跌的幅度。
每列的最大回撤:
对于“A”,最大回撤是 4,因为 A 的最高点是 6,然后下降到 2。
对于“B”,有两次回撤,但只有一次最大回撤。股价从 9 跌至 7,跌幅为 2。但股票在下一行达到 11 的新高,但随后下跌至 4,跌幅为 7。因此最大跌幅为 7为“B”。
对于“C”,股价从 5 跌至 4,最大回撤为 1。
【问题讨论】:
标签: r dplyr finance performanceanalytics