【问题标题】:Issue with chart.Drawdown in performance analytics, need finite 'ylim' values errorchart.Drawdown 性能分析中的问题,需要有限的“ylim”值错误
【发布时间】:2018-01-27 08:26:00
【问题描述】:

所以我目前正在尝试为每日损益创建一个回撤图。使用:

cols = rainbow(ncol(pdrawdown),s=0.7, v=0.8, alpha= 0.7)
chart.Drawdown(pdrawdown, legend.loc = "bottomleft",colorset = cols,
               main = "Drawdown Chart", xlab ="Date", ylab = "Drawdown")

我能够轻松地绘制它以获取回报(其值大部分小于 10)。但是,在尝试使用这种完全相同的方法来计算利润/损失时,其值达到 10e+09 的范围,我得到了错误:

Error in plot.window(xlim, ylim, xaxs = "r", log = logaxis) : 
  need finite 'ylim' values

最奇怪的部分是,当我用pdrawdown = pdrawdown/10000000 将数据表 pdrawdown 中的每个值除以 10,000,000 时,问题就解决了,它可以绘制它。那么我该怎么做才能正确绘制图表而不必使用这种奇怪的技巧呢?

【问题讨论】:

    标签: r performanceanalytics


    【解决方案1】:

    您的时间序列pdrawdown 是一系列值(例如 [100, 101, 99.5, 102, ... ])还是一系列百分比变化(例如 [0.01, -0.02, 0.025, .. .]) ?

    chart.Drawdown 需要一系列百分比变化。当您有一系列绝对值时,chart.Drawdown 将假定它们是百分比变化,因此结果将变得如此之大,以至于您会收到 need finite 'ylim' values 错误。

    【讨论】:

    • 同意,这通常是问题
    【解决方案2】:

    你能简单地设置一个 ylim 值吗?

    chart.Drawdown(pdrawdown, legend.loc = "bottomleft",colorset = cols,
               main = "Drawdown Chart", xlab ="Date", ylab = "Drawdown", 
                       ylim=c(0,1000000000))
    

    【讨论】:

    • 这不起作用,但感谢您的尝试。出于某种原因,它看起来像飙升到无法适应规模的大量数字,然后返回到 0。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多