R:对交易策略进行回溯测试。quantmod和R的初学者
我对R非常陌生,并且试图对我已经在WealthLab编程的策略进行回溯测试 有几件事我不明白(而且显然不起作用:)R:对交易策略进行回溯测试。quantmod和R的初学者,r,quantmod,R,Quantmod,我对R非常陌生,并且试图对我已经在WealthLab编程的策略进行回溯测试 有几件事我不明白(而且显然不起作用:) 我没有把收盘价很好地转化为一个向量……或者某种向量,但它是从结构开始的,我真的不理解这个函数的作用。这就是为什么我的系列电话可能不起作用 n从第二个问题开始 > s <- getSymbols('SPY') > nrow(s) NULL > class(s) [1] "character" > s.data <- get(s) > clas
> s <- getSymbols('SPY')
> nrow(s)
NULL
> class(s)
[1] "character"
> s.data <- get(s)
> class(s.data)
[1] "xts" "zoo"
> nrow(s.data)
[1] 1635
现在,为了让您开始简单的策略回溯测试,我建议您按照以下步骤进行操作
定义你的战略。
2.创建一个数组或向xts对象添加一列,以表示每天的位置。1表示长,0表示无仓位,-1表示短(稍后您可以使用数字进行杠杆)。
3.将每天的回报与头寸相乘,你将得到你的策略回报向量。
4.检查结果-我的建议是PerformanceAnalytics
简单策略-收盘价超过SMA20时买入,低于SMA20时卖出
library(quantmod)
library(PerformanceAnalytics)
s <- get(getSymbols('SPY'))["2012::"]
s$sma20 <- SMA(Cl(s) , 20)
s$position <- ifelse(Cl(s) > s$sma20 , 1 , -1)
myReturn <- lag(s$position) * dailyReturn(s)
charts.PerformanceSummary(cbind(dailyReturn(s),myReturn))
库(quantmod)
库(性能分析)
Let’请提供一份报告<代码>位置是的,我从本教程中复制了一些代码行,但并不真正理解这一行。我的意思是,系列[,1],我认为会将函数f应用到系列的“列”1上。但是由于这个系列的结构比较复杂,所以它不起作用。我说的是本教程:fapply
!=<代码>应用
。它们是不同的函数,具有不同的参数和不同的行为。但我使用的是RStudio,找不到关于fapply的任何帮助主题?系列
不是您所认为的;我想你想要AAPL
getSymbols
不会返回任何有趣的内容,而是创建与传递给它的符号对应的变量。请参阅?getSymbols
。谢谢您的帮助。关于如何测试策略的优秀简单示例。Hello@haki,应该是:closing.prices
closing.prices <- coredata(Cl(s))
library(quantmod)
library(PerformanceAnalytics)
s <- get(getSymbols('SPY'))["2012::"]
s$sma20 <- SMA(Cl(s) , 20)
s$position <- ifelse(Cl(s) > s$sma20 , 1 , -1)
myReturn <- lag(s$position) * dailyReturn(s)
charts.PerformanceSummary(cbind(dailyReturn(s),myReturn))