拓端tecdat|R語言回測交易:根據(jù)歷史信號/交易創(chuàng)建股票收益曲線
原文鏈接:http://tecdat.cn/?p=23808
原文出處:拓端數(shù)據(jù)部落公眾號?
本文介紹如何根據(jù)歷史信號/交易制作股票曲線。
讓我們以MARKET TIMING與DECISION MOOSE的歷史信號為例,為該策略創(chuàng)建股票曲線。?
#*****************************************************************
# 加載信號
#*****************************************************************
# 提取交易歷史
temp = extract.table.from.webpage(txt, 'Transaction History', has.header = F)
temp = trim(temp[-1,2:5])
colnames(temp) = spl('id,date,name,equity')
tickers = toupper(trim(gsub('\\)','', sapply(temp[,'name'], spl, '\\('))))[2,]
load(file=filename)
#plota(make.xts(info$equity, info$date), type='l')
#*****************************************************************
# 加載歷史數(shù)據(jù)
#*****************************************************************
tickers = unique(info$tickers)
# 加載保存的代理原始數(shù)據(jù)
load('data/data.proxy.raw.Rdata')
# ?定義現(xiàn)金
tickers = gsub('3MOT','3MOT=BIL+TB3M', tickers)
#飛毛腿新亞洲基金(SAF),并入DWS新興市場股票基金
tickers = gsub('SAF','SAF=SEKCX', tickers)
#添加虛擬股票,以保持交易日期,如果它們與數(shù)據(jù)不一致的話
dummy = make.stock.xts(make.xts(info$equity, info$date))
getSymbols.extra(tickers, src = 'yahoo', from = '1970-01-01', env = data, raw.data = data.proxy.raw, auto.assign = T)
# 可選擇未被Adjusted捕獲的分叉點(diǎn)
#data.clean(data, min.ratio=3)
for(i in ls(data)) data[[i]] = adjustOHLC(data[[i]], use.Adjusted=T)
#print(bt.start.dates(data))
data$dummy = dummy
#*****************************************************************
# 設(shè)置
#*****************************************************************
prices = data$prices
models = list()
#*****************************************************************
#代碼策略,SPY - 買入和持有
#*****************************************************************
data$weight[] = NA
data$weight$SPY = 1
models$SPY = bt.run.share(data, clean.signal=T, silent=T)
#*****************************************************************
# 創(chuàng)建權(quán)重
#*****************************************************************
weight = NA * prices
for(t in 1:nrow(info)) {
weight[info$date[t],] = 0
weight[info$date[t], info$ticker[t]] = 1
}
#*****************************************************************
#創(chuàng)建報告
#******************************************************************
plota.matplot(scale.one(data$prices),main='Asset Perfromance')

plot(models, plotX = T)

print(plotbt))
?

m = 'decisionmoose'
plotbmap(models[[m]]$weight, name=m)


最受歡迎的見解
1.R語言對S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略
2.R語言改進(jìn)的股票配對交易策略分析SPY—TLT組合和中國股市投資組合
3.R語言時間序列:ARIMA GARCH模型的交易策略在外匯市場預(yù)測應(yīng)用
4.TMA三均線期指高頻交易策略的R語言實(shí)現(xiàn)
5.r語言多均線量化策略回測比較
6.用R語言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實(shí)例
7.r語言預(yù)測波動率的實(shí)現(xiàn):ARCH模型與HAR-RV模型
8.R語言如何做馬爾科夫轉(zhuǎn)換模型markov switching model
9.matlab使用Copula仿真優(yōu)化市場風(fēng)險