原文链接:http://tecdat.cn/?p=23141

定量战术资产配置策略(QATAA)模型是应用10个月的挪动平均线作为过滤器。如果在月末,资产的价格高于挪动平均线,就留在市场中;否则就会来到市场。

10个月有什么特别之处;为什么10个月对所有资产和区制都是不变的。我提出了依据历史稳定率来调整挪动平均线回溯的想法。也就是说,在高稳定期间,较短的挪动平均线会让咱们更快地来到市场,而在低稳定期间,较长的挪动平均线会让咱们留在市场中。然而,这导致了更差的后果。

我花了一些工夫剖析根底的10个月挪动平均线策略,看到了相当大的损失,简略的解决办法是在10个月挪动平均线四周应用+/-5%的区间,以缩小损失,减少收益。

上面我将展现这个概念是如何运作的。

#*****************************************************************# 加载历史数据#*****************************************************************# 加载保留的代理原始数据tickers = 'SPYCASH = SHY + TB3Y'#*****************************************************************# 用来显示信号的辅助函数#*****************************************************************    signal = iif(model == 'base', prices > sma,      #基于信号创立一个模型 share(data, clean.signal=T, silent=T)  # 创立一个图来显示信号  plot(p\[dates\] ,type='l', plotX=F, x.highlight = highlight)

visuali('2000::2001')

提早进场/登场的益处是交易量少,成交量小。 

#*****************************************************************# 设置#*****************************************************************models = list()#*****************************************************************# SPY#******************************************************************run(data)#*****************************************************************#  SPY + 10个月过滤器#******************************************************************apply(prices, SMA, 10*22) iif(prices > sma, 1, 0)CASH = 1 - ifna( ifna(SPY), 0)#*****************************************************************# SPY+10个月+5/-5%过滤器#******************************************************************(cross(prices, sma * 1.05), (prices, sma * 0.95), 0, NA)

我还包含了我对动静回测挪动平均线的尝试,但在这种模式下,并不实用。

#*****************************************************************#  SPY + 基于稳定率的动静过滤器#******************************************************************vol = matrix(ret, SD, n = 21)if(vol.rank < 0.5, bt(prices, SMA, 10\*22),matrix(prices, SMA, 1\*22))data$w#*****************************************************************# SPY+基于稳定率的动静过滤器;多个级别#******************************************************************nbreaks = 5sma.cash = sma * NAfor(i in 1:nbreaks) {    temp = data(matrix(prices, SMA, (nbreaks - i + 1)* 2 *22)    }#*****************************************************************# 报告#*****************************************************************plot(models)

SPY

SPY.CASH

SPY.CASH.BAND

SPY.CASH.VOL.SIMPLE

SPY.CASH.VOL

Period

Jan1993 - Feb2015

Jan1993 - Feb2015

Jan1993 - Feb2015

Jan1993 - Feb2015

Jan1993 - Feb2015

Cagr

9.4

9.9

12.1

9.2

8

DVR

41.9

78.3

91.4

83.8

74

Sharpe

56.7

83.6

97.1

90.8

77.1

R2

73.9

93.7

94.1

92.3

96

Win.Percent

100

41.1

100

45.7

43.3

Avg.Trade

623.7

1.9

27.6

0.7

0.7

MaxDD

-55.2

-20.1

-19.1

-15.9

-22.3

Num.Trades

1

146

12

302

254

barplot(turnover, data)

接下来,让咱们把雷同的带状策略利用于TAA模型。 

#加载保留的代理原始数据data <- new.env()getSymbols(tickers, src = 'yahoo')#*****************************************************************#  设置#*****************************************************************universe = prices > 0    models = list()#*****************************************************************# 基准#*****************************************************************weight\[\] = NA#*****************************************************************#The \[战术性资产配置策略的量化办法(QATAA) Mebane T. Faber\](http://mebfaber.com/timing-model/)#\[SSRN \](http://papers.ssrn.com/sol3/papers.cfm?abstract_id=962461)#*****************************************************************weight = iif(prices > sma, 20/100, 0)run(data)#*****************************************************************#  bands代替计划 挪动均匀#*****************************************************************signal = if(cross(prices, sma * 1.05), 1, iif(cross.dn(prices, sma * 0.95), 0, NA))#*****************************************************************# 报告#*****************************************************************#performance(models, T)

SP500

EW

Model

Model.B

Period

Jun1996 - Feb2015

Jun1996 - Feb2015

Jun1996 - Feb2015

Jun1996 - Feb2015

Cagr

8.2

8.6

9.8

10.6

DVR

28.7

64

117.4

127.9

Sharpe

49.2

69.3

120.4

132.7

R2

58.4

92.4

97.5

96.5

Win.Percent

100

59.9

64.4

64.6

Avg.Trade

335.7

0.1

0.2

0.2

MaxDD

-55.2

-47.5

-17.1

-13.1

Num.Trades

1

1113

930

887

layout(1)barplot(sapply(models,turnover)

带状逻辑很容易实现,减少了收益。


最受欢迎的见解

1.在python中应用lstm和pytorch进行工夫序列预测

2.python中利用长短期记忆模型lstm进行工夫序列预测剖析

3.应用r语言进行工夫序列(arima,指数平滑)剖析

4.r语言多元copula-garch-模型工夫序列预测

5.r语言copulas和金融工夫序列案例

6.应用r语言随机稳定模型sv解决工夫序列中的随机稳定

7.r语言工夫序列tar阈值自回归模型

8.r语言k-shape工夫序列聚类办法对股票价格工夫序列聚类

9.python3用arima模型进行工夫序列预测