所以我目前正在尝试为每日盈利/亏损创建一个Drawdown图表。使用:
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 = pdrawdown/10000000
除以10,000,000时,问题就解决了,它可以绘制它。那么如何正确绘制图形而不必使用这种奇怪的黑客呢?
答案 0 :(得分:2)
您的时间序列pdrawdown
是一系列值(例如[100、101、99.5、102,...])还是一系列百分比变化(例如[0.01,-0.02、0.025, ...])?
chart.Drawdown需要一系列百分比更改。当您具有一系列绝对值时,chart.Drawdown将假定它们是百分比变化,因此结果将变得如此之大,以至于出现need finite 'ylim' values
错误。
答案 1 :(得分:0)
你能设置一个ylim值吗?
chart.Drawdown(pdrawdown, legend.loc = "bottomleft",colorset = cols,
main = "Drawdown Chart", xlab ="Date", ylab = "Drawdown",
ylim=c(0,1000000000))