R
計算和解釋累積回報是 R
我有買入和賣出信號,因此,我人為地生成了一個信號系列,為此,我為每次買入分配 1,為每次賣出分配 -1:
library(xts) require(TTR) close_series=rnorm(20,100,10) date=seq(as.Date("2000/1/1"), as.Date("2000/1/20"), "days") close_xts=xts(close_series,date) x.points.buy=c(1,5,9,17) x.points.sell=c(3,6,12,20) buy.points=index(close_xts[x.points.buy]) sell.points=index(close_xts[x.points.sell]) signal<- xts(rep(NA,length(close_xts)),index(close_xts)) signal[buy.points]<-1 signal[sell.points]<--1 signal<-na.locf(signal) returns <- ROC(close_xts,type="discrete")*signal returns[is.na(returns)]<- 0 eq <- exp(cumsum(returns))
這給我的回報似乎好得令人難以置信,我無法理解這些累積回報顯示如此巨大數字的基本方法。誰能幫我理解這一點?
這是我重複你的程式碼後得到的淨值線。這怎麼好?可能你只用一組數字跑步。這裡的任何方法都是您可以做的一些事情來更接近現實:
- 將收盤價作為對數正態分佈而不是正態分佈。
- 您稍後將增加回報。只有當您有對數差異而不是簡單差異時,這才是正確的。
- 使用大量樣本執行相同的模擬以獲得分佈,然後確定它是好還是壞。
- 您將在淨值線上看到的波動是因為您為標準差提供了巨大的價值。
您可以使用 PerformanceAnalytics 包,並獲取以下圖表,累積收益、每日收益以及回撤,以了解時間序列。
程式碼:庫(“性能分析”)
chart.PerformanceSummary(ROC(eq, n = 1, type = “discrete”), main = “Returns (PerformanceAnalytice::charts.PerformanceSummary)”)