【问题标题】:R - PerformanceAnalytics - SharpRatio rollapply zooR - PerformanceAnalytics - SharpRatio rollapply zoo
【发布时间】:2013-10-12 00:59:08
【问题描述】:

我一直在尝试使用 PerformanceAnalytics 包中的 SharpeRatio 函数。我正在尝试将夏普比率应用于动物园对象,但认为结果不好。 谁能说我为什么不能像 rollapply(dreturns.z,FUN="SharpeRatio",by.column=T,width=20,align="right") 那样应用它? 另一个问题,这个函数 SharpeRatio 作为一个参数 FUN。由于 rollapply 还定义了参数 FUN ,如何使用 rollapply 定义它?

    dprices.z = get.hist.quote(instrument="VTI", quote="AdjClose",start="2013-07-01",
                                               provider="yahoo", origin="1970-01-01",
                                               compression="d",retclass="zoo")

    dreturns.z =dprices.z / lag(dprices.z,k=-1) -1
    rownames(dreturns.z)=as.character(index(dreturns.z))

    tail(rollapply(dreturns.z,FUN=mean,width=20,align="right") / sqrt(rollapply(dreturns.z,FUN=var,width=20,align="right")))
            AdjClose
2013-09-26 0.4093935
2013-09-27 0.3366035
2013-09-30 0.3531433
2013-10-01 0.3745384
2013-10-02 0.2891515
2013-10-03 0.1851469  
    StdDevSharpeRatio = function(x) {SharpeRatio(x,FUN="StdDev")}
    VaRSharpeRatio = function(x) {SharpeRatio(x,FUN="VaR")}
    ESSharpeRatio= function(x) {SharpeRatio(x,FUN="ES")}

    tail(rollapply(dreturns.z,FUN="StdDevSharpeRatio",width=20,align="right"))
            AdjClose
2013-09-26 0.4093935
2013-09-27 0.3366035
2013-09-30 0.3531433
2013-10-01 0.3745384
2013-10-02 0.2891515
2013-10-03 0.1851469
    tail(rollapply(dreturns.z,FUN="VaRSharpeRatio",width=20,align="right"))
            AdjClose
2013-09-26 0.3473634
2013-09-27 0.2746835
2013-09-30 0.2947952
2013-10-01 0.3147704
2013-10-02 0.2383431
2013-10-03 0.1373277
    tail(rollapply(dreturns.z,FUN="ESSharpeRatio",width=20,align="right"))
            AdjClose
2013-09-26 0.4093935
2013-09-27 0.3366035
2013-09-30 0.3531433
2013-10-01 0.3745384
2013-10-02 0.2891515
2013-10-03 0.1851469
    tail(rollapply(dreturns.z,FUN="SharpeRatio",by.column=T,width=20,align="right"))
              AdjClose
2013-09-26 -0.07070451
2013-09-27 -0.25525289
2013-09-30 -0.14237154
2013-10-01 -0.10778731
2013-10-02 -0.16874505
2013-10-03 -0.09659218

【问题讨论】:

    标签: r zoo performanceanalytics


    【解决方案1】:

    由于我不是 Sharp Ratios 方面的专家,您期望得到什么结果?无论如何,不​​要忘记您假设无风险利率为 0(因为 SharpeRatio(R, Rf = 0, p = 0.95) 的默认值为零),这可能会影响您的结果。

    关于你问题的后半部分,我会这样做:

    rollapply(dreturns.z, FUN = function(x) SharpeRatio(x, FUN = "StdDev"),
               by.column=T, width=20, align="right")
    

    希望这会有所帮助....

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 2023-03-14
      • 2021-08-01
      • 2013-08-29
      • 2020-11-29
      • 2017-12-20
      • 1970-01-01
      • 2020-02-11
      相关资源
      最近更新 更多