Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:对交易策略进行回溯测试。quantmod和R的初学者_R_Quantmod - Fatal编程技术网

R:对交易策略进行回溯测试。quantmod和R的初学者

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

我对R非常陌生,并且试图对我已经在WealthLab编程的策略进行回溯测试

有几件事我不明白(而且显然不起作用:)

  • 我没有把收盘价很好地转化为一个向量……或者某种向量,但它是从结构开始的,我真的不理解这个函数的作用。这就是为什么我的系列电话可能不起作用


  • n从第二个问题开始

    > 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))