-2

场景(使用 quantstrat、blotter 和投资组合分析)

  • 我有 10k 初始股权
  • 我有一个策略,我想回测超过 3000 个符号宇宙(股票)
  • 假设该策略是一个简单的 MA 交叉
  • 每次我获得买入交叉时,我都会购买价值 10k 的股票并在卖出交叉时平仓
  • 出于回测目的,该策略可以在没有任何投资组合限制的情况下进行交易,因此我可能在任何时间点持有 100 多个头寸,因此不应考虑初始权益。

我想知道这个策略在所有交易中的平均回报。

实际上,如果我只有 10k,我一次只能进行一笔交易,但我想从统计上知道平均回报是多少。

然后,我想将此与股票指数基准进行比较。

  • 我是 SUM 还是 MEAN 每个符号的返回流
  • 是投资组合的回报吗,这是否考虑了初始权益?- 我不希望回报是初始权益的百分比或考虑交易品种的交易方式。
4

1 回答 1

0

有时间我会添加一个示例策略,但问题的解决方案是:

#get the portfolio returns
instRets <- PortfReturns(account.st)
#for each column, NA the values where there is no return, because when the values are averaged out, you don't want 0's to be included in the calculation
# if there are no signals in the strategy, you will invest money elsewhere rather than just leaving lying around. Therefore you only calculate the returns #when the strategy is ACTIVE
for (i in 1:ncol(instRets)){
  instRets[,i][instRets[,i] == 0] <- NA
}
#this will give you the average return when the strategy is active, if there are 100 trades on, you want the average return during that period.
portfRets <- xts(rowMeans(instRets, na.rm = T), order.by = index(instRets)) 
portfRets <- portfRets[!is.na(portfRets)] 

例如,现在您可以将该策略与基准 SPY 进行比较。如果策略具有 alpha,您可以使用平衡规则在信号出现时将资金应用于策略,或在没有信号时继续投资于指数。

据我所知,blotter 内置的收益分析使用初始资产来计算收益,因此在每笔交易中投资与初始资产相同的金额。10k 初始权益,每笔交易 10k。

于 2017-11-06T08:33:27.573 回答