本帖最后由 ytjoh 于 2014-1-9 16:34 编辑 - setSymbolLookup(SZ000001=list(src="csv",format="%Y/%m/%d"))
- stock <- getSymbols("SZ000001",auto.assign=FALSE)
- barChart(stock)
复制代码 本次作业将主要参考《数据挖掘与R语言》第三章的代码,并进行实用性扩展终于能在R中读取到除权后的股票数据了,不过可以看到由于早期的交易规则与目前不尽相同,并且历史的行情数据也不尽规范,因此决定清洗掉部分历史数据。仅保留近5年的数据作为研究。本次作业以研究R的quantmod等为主,实用性目前暂不考虑,因此是否能取得正收益不在本次作业考虑范围之内(测试股票为平安银行)
- stock <- last(stock,'60 months')
- head(stock)
复制代码 SZ000001.Open SZ000001.High SZ000001.Low SZ000001.Close SZ000001.Volume SZ000001.Adjusted
2008-12-01 5.38 5.56 5.38 5.53 1.14 5.53
2008-12-02 5.39 5.57 5.33 5.53 1.22 5.53
2008-12-03 5.63 5.87 5.61 5.86 3.10 5.86
2008-12-04 6.07 6.36 6.02 6.08 4.22 6.08
2008-12-05 6.06 6.31 6.05 6.28 2.41 6.28
2008-12-08 6.46 6.69 6.40 6.61 3.14 6.61
首先定义指标变量T,找出k天内,日平均价格明显高于目标变化的那些日期之和。正T值意味着有几天的日平均报价高于今天收盘的p%。这里k值以10天为例
- T.ind <- function(quotes,tgt.margin=0.025,n.days=10) {
- v <- apply(HLC(quotes),1,mean)
-
- r <- matrix(NA,ncol=n.days,nrow=NROW(quotes))
- ## The following statment is wrong in the book (page 109)!
- for(x in 1:n.days) r[,x] <- Next(Delt(Cl(quotes),v,k=x),x)
-
- x <- apply(r,1,function(x) sum(x[x > tgt.margin | x < -tgt.margin]))
- if (is.xts(quotes)) xts(x,time(quotes)) else x
- }
- candleChart(last(stock,'6 months'),theme='white',TA=NULL)
- avgPrice <- function(p) apply(HLC(p),1,mean)
- addAvgPrice <- newTA(FUN=avgPrice,col=1,legend='AvgPrice')
- addT.ind <- newTA(FUN=T.ind,col='red',legend='回报')
- addAvgPrice(on=1)
- addT.ind()
复制代码指标T在较高的正值时,表明有潜在的机会发出买入指令;反之则为卖出指令 ;等于0时价格可能表现为涨跌互现
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。