用R语言玩玩茅台股票

本人不炒股,只是对R语言的分析一直感兴趣,加上偶尔会看看茅台酒的一些情况。最近,刚好看了一本用R语言量化投资的书,于是借用此书程序代码,玩玩茅台股票。仅供娱乐使用!切勿当真!

(1)使用R语言获取茅台股票数据

使用R包 quantmod获取茅台2018年至今的股票数据:

// 获取茅台股票数据,2018年至今
library(quantmod)
setSymbolLookup(MT=list(name='600519.ss',src='yahoo'))
getSymbols("MT",from="2018-01-01")  

(1.1) 查看茅台股票数据

// 查看茅台股票数据
> dim(MT)
[1] 358   6
> head(MT)
           600519.SS.Open 600519.SS.High 600519.SS.Low 600519.SS.Close 600519.SS.Volume 600519.SS.Adjusted
2018-01-02         700.00         710.16        689.89          703.85          4961248           683.8751
2018-01-03         701.50         721.40        699.74          715.86          5201941           695.5443
2018-01-04         721.40         743.50        719.33          737.07          7220508           716.1524
2018-01-05         741.00         746.03        728.22          738.36          3998907           717.4058
2018-01-08         735.02         756.50        735.02          752.13          5220456           730.7850
2018-01-09         752.21         783.00        752.21          782.52          6459195           760.3126 
> tail(MT)
           600519.SS.Open 600519.SS.High 600519.SS.Low 600519.SS.Close 600519.SS.Volume 600519.SS.Adjusted
2019-06-24         978.30         999.69        975.00          987.10          4577920           972.6959
2019-06-25         992.00         999.00        967.00          982.98          5129595           968.6360
2019-06-26         985.00         985.00        971.22          979.86          2958818           965.5616
2019-06-27         985.00        1001.00        981.12          996.35          4797845           981.8110
2019-06-28         985.99         988.88        971.33          984.00          3108840           984.0000
2019-07-01        1004.52        1035.60       1000.22         1031.86          5233723          1031.8600

(1.2) 获取茅台股票收市价

// 获取茅台股票数据,2018年至今
cdata<-MT$`600519.SS.Close`
vdata<-MT$`600519.SS.Volume`

names(cdata)<-'Value'   # 收市价
names(vdata)<-'Volume'  # 交易量

可以画出图,查看它们的趋势:
下图是收市价趋势,股价从今年2月份起,基本呈一路飙升趋势。
在这里插入图片描述
交易量的趋势如下图,可见大部分时间茅台的交易还是比较稳定的。
在这里插入图片描述

(2)收市价的具体分析

首先加上近期内最高价和最低价,图形如下,红线最低价,蓝线最高价:
在这里插入图片描述

(3) 分别计算购入点和出售点

 // The function of buy signal
 buyPoint<-function(ldata){
   idx<-which(ldata$Value == ldata$max)
   return(ldata[idx,])
 }
 //Calculate the sell signals
 stopPoint<-function(ldata,buydata){
   ldata<-na.omit(ldata)
   idx<-which(ldata$Value == ldata$min)
   idx<-idx[which(c(0,diff(idx))!=1)] # Represent the first point with 0
   
   selldata<-ldata[idx,] # All points below the lowest value
   
   idx2<-sapply(index(buydata),function(e){ 
     # Sell signal points after buying
     head(which(index(selldata)>e),1)
    }
   )
   idx2b<-unlist(idx2)
   
   return(selldata[unique(idx2b),])
 }

对计算结果画成图,橙色点代表购入点,紫色点代表出售点:
在这里插入图片描述

(4) 加入止亏点

实际上,书的作者只是优化了出售点函数,作为止亏点。现在就有了购入点、出售点和止亏点,统一到图里,有图可知,出售点(蓝点)都在止亏点(紫点)上,从这个图上看,是不亏本的。但这是事后分析,是马后炮。
在这里插入图片描述
此外,有趣的是,从分析结果看,基本是股价上升时购买,下跌时出售。这不是典型的房价规则吗?房价越高,人们买房子的热情越高。
当然,我一位同学是炒股高手,他告诫,炒股莫炒国内股。还是老话,股市有风险,入市须谨慎!

发布了15 篇原创文章 · 获赞 3 · 访问量 1815

猜你喜欢

转载自blog.csdn.net/yzhlinscau/article/details/94444992