拓端tecdat|R语言回测交易:根据历史信号/交易创建股票收益曲线
原文链接:http://tecdat.cn/?p=23808
原文出处:拓端数据部落公众号
本文介绍如何根据历史信号/交易制作股票曲线。
让我们以MARKET TIMING与DECISION MOOSE的历史信号为例,为该策略创建股票曲线。
- 
#*****************************************************************
 - 
# 加载信号
 - 
#*****************************************************************
 - 
 - 
 - 
# 提取交易历史
 - 
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')
 - 
 - 
#*****************************************************************
 - 
# 加载历史数据
 - 
#*****************************************************************
 - 
tickers = unique(info$tickers)
 - 
 - 
# 加载保存的代理原始数据
 - 
load('data/data.proxy.raw.Rdata')
 - 
 - 
# 定义现金
 - 
tickers = gsub('3MOT','3MOT=BIL+TB3M', tickers)
 - 
 - 
#飞毛腿新亚洲基金(SAF),并入DWS新兴市场股票基金
 - 
tickers = gsub('SAF','SAF=SEKCX', tickers)
 - 
 - 
 - 
#添加虚拟股票,以保持交易日期,如果它们与数据不一致的话
 - 
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捕获的分叉点
 - 
#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
 - 
 - 
 - 
 - 
 - 
#*****************************************************************
 - 
# 设置
 - 
#*****************************************************************
 - 
prices = data$prices
 - 
 - 
models = list()
 - 
 - 
#*****************************************************************
 - 
#代码策略,SPY - 买入和持有
 - 
#*****************************************************************
 - 
data$weight[] = NA
 - 
data$weight$SPY = 1
 - 
models$SPY = bt.run.share(data, clean.signal=T, silent=T)
 - 
 - 
#*****************************************************************
 - 
# 创建权重
 - 
#*****************************************************************
 - 
weight = NA * prices
 - 
 - 
for(t in 1:nrow(info)) {
 - 
weight[info$date[t],] = 0
 - 
weight[info$date[t], info$ticker[t]] = 1
 - 
}
 - 
 - 
 - 
 - 
 - 
#*****************************************************************
 - 
#创建报告
 - 
#******************************************************************
 - 
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股票指数进行ARIMA + GARCH交易策略
2.R语言改进的股票配对交易策略分析SPY—TLT组合和中国股市投资组合
3.R语言时间序列:ARIMA GARCH模型的交易策略在外汇市场预测应用
    ▍关注我们
【大数据部落】第三方数据服务提供商,提供全面的统计分析与数据挖掘咨询服务,为客户定制个性化的数据解决方案与行业报告等。
▍咨询链接:http://y0.cn/teradat 
▍联系邮箱:3025393450@qq.com
                    
                
                
            
        
浙公网安备 33010602011771号