股票K线图概要——R语言

2023-05-09,,

K线图是200多年前日本人发明的,后来传入了美国。K线图本来就是对当前数据的可视化显示而已,但是越来越多的人对K线图做出了痴迷的分析和解读,有众多追随者也根据K线图指导自己的具体行动,因此,K线图在实战中具有不可忽视的重要作用。K线图也越来越成为一种隐形的控制力,追随者越多,其控制力越强。R语言提供了K线图绘制工具,如果想对K线图进行分析,需要首先能够绘制K线图。这里介绍quantmod包画K线图的函数ChartSeries()。

一、k线图综述

K线是记录一段时间内价格变化情况的图表,每一根K线都由开盘价、收盘价、最高价、最低价四个价位组成。开盘价低于收盘价称为阳线,反之则称为阴线。根据周期,K线可以分为日K线、K周线、月K线、年K线,1小时K线,5分钟K线等。根据形态,K线可以分为光头阳(阴)线,光脚阳(阴)线、光头光脚阳(阴)线、十字星、(倒)T字线和一字线六种。“光头”是指完全没有上影的K线,“光脚”是指完全没有下影的K线,而T字线和倒T字线是它们的特殊形式;当开盘价正好与收盘价相等,就会形成十字星;当K线的四个价格都相等,才会形成一字线,它常常出现在股票市场的封涨停和封跌停的情况,或者是在极短期的走势图中完全没有成交量的状态下。而在实际的金价走势中,同时带有上下影的K线才是最常见的。

对于K线的阴阳,阳线表示将继续上涨,阴线表示将继续下跌,这符合技术分析理论中,价格会沿趋势波动的原理,也是技术分析中最核心的思想。对于K线实体的大小,它反映的是行情的内在动力,实体越大,上涨或下跌的趋势越是明显,反之趋势则不明显。对于K线影线长短,所代表的是行情的转折信号,向一个方向的影线越长,越不利于价格向这个方向变动,即上影线越长,越不利于股价上涨,下影线越长,越不利于价格下跌。K线的周期是可以根据使用者的需求自行设定的,最常用的是日线图,其他辅助的还有5分钟K线图,15分钟K线图,30分钟K线图,60分钟K线图,日K线图,周K线图,月K线图等等。

K线分析的三要素:阴线和阳线的数量代表行情的总体趋势;K线实体的大小代表行情的内在动力和趋势的强弱;影线的长短反映行情转折意愿。当然,上述这些只是十分基础的K线知识,在实际看盘和技术分析的过程中,投资者最重要的是能够明白K线组合形态所代表的含义,并且更够根据一些经典的看涨和看跌组合,提前对行情的转折作出预判。

二、数据准备

这里以上证指数为例绘制K线图。

library(pedquant)
library(quantmod)
library(xts)
d163<-md_stock("000001.sh",from='2019-01-01',to='2022-08-01',source="163",adjust=NULL)
data<-d163[[1]]

股票数据结构概览

str(data)
Classes ‘data.table’ and 'data.frame': 869 obs. of 15 variables:
$ symbol : chr "000001.SS" "000001.SS" "000001.SS" "000001.SS" ...
$ name : chr "上证指数" "上证指数" "上证指数" "上证指数" ...
$ date : Date, format: "2019-01-02" "2019-01-03" ...
$ open : num 2498 2462 2446 2529 2530 ...
$ high : num 2500 2488 2515 2537 2531 ...
$ low : num 2456 2456 2441 2516 2520 ...
$ close : num 2465 2464 2515 2533 2526 ...
$ close_prev: num 2494 2465 2464 2515 2533 ...
$ change_pct: num -1.147 -0.0377 2.0494 0.7245 -0.2616 ...
$ volume : num 1.10e+08 1.24e+08 1.69e+08 1.77e+08 1.58e+08 ...
$ amount : num 9.76e+10 1.07e+11 1.39e+11 1.46e+11 1.23e+11 ...
$ turnover : num NA NA NA NA NA NA NA NA NA NA ...
$ cap_market: num NA NA NA NA NA NA NA NA NA NA ...
$ cap_total : num NA NA NA NA NA NA NA NA NA NA ...
$ unit : chr "CNY" "CNY" "CNY" "CNY" ...
- attr(*, "problems")=<externalptr>
- attr(*, ".internal.selfref")=<externalptr>
- attr(*, "sorted")= chr "date"
szzs=data.frame(data[,3:7],data[,10])
date open high low close volume
1 2019-01-02 2497.881 2500.278 2456.423 2465.291 109932013
2 2019-01-03 2461.783 2488.479 2455.926 2464.363 124397497
3 2019-01-04 2446.019 2515.316 2440.907 2514.868 168877667
4 2019-01-07 2528.699 2536.977 2515.508 2533.089 177305010
5 2019-01-08 2530.300 2531.345 2520.165 2526.462 158099181
6 2019-01-09 2536.417 2574.408 2536.157 2544.345 191887930

!!!ChartSeries()必须使用xts数据对象,所以需要将上面数据进行如下的转换,注意他们之间的区别。

SZZS<-xts(szzs[,-1],order.by = as.Date(szzs[,1]))
head(SZZS) #注意和上面行标的区别
open high low close volume
2019-01-02 2497.881 2500.278 2456.423 2465.291 109932013
2019-01-03 2461.783 2488.479 2455.926 2464.363 124397497
2019-01-04 2446.019 2515.316 2440.907 2514.868 168877667
2019-01-07 2528.699 2536.977 2515.508 2533.089 177305010
2019-01-08 2530.300 2531.345 2520.165 2526.462 158099181
2019-01-09 2536.417 2574.408 2536.157 2544.345 191887930

三、绘制K线图

library(quantmod)
chartSeries(SZZS)

library(quantmod)
chartSeries(SZZX, name='K线图', line.type="l", bar.type="ohcl",
theme="white", up.col='red', dn.col='green',
TA="addVo();addSMA(5);addSMA(10);addMACD();")

library(quantmod)
shangzheng<-to.weekly(SZZS)
chartSeries(shangzheng,theme = 'white',name='上证周线图',up.col = 'red',dn.col = 'green')

参考文献

1.(R语言绘制K线图)[https://blog.csdn.net/superdont/article/details/51541014]

2.(R语言 金融数据分析之quantmod)[https://www.cnblogs.com/adam012019/p/14867140.html?ivk_sa=1024320u]

3.(股票入门K线图基础知识:24种K线图图解)[https://zhuanlan.zhihu.com/p/453937837]

股票K线图概要——R语言的相关教程结束。

《股票K线图概要——R语言.doc》

下载本文的Word格式文档,以方便收藏与打印。