基于K-均值聚类的股票价格形态识别与收益分析
2019-12-25周彩节黄恒秋
周彩节,黄恒秋
(广西民族师范学院,广西 崇左 532200)
1 引 言
随着人们生活水平的不断提高,其理财观点也在发生着变化。基金、股票、理财保险、债券等各式各样的理财产品的出现以及 CPI 的持续增长,人们不再认为银行是唯一可选择的理财方式,究竟什么更适合中国人的理财习惯? 现代人的思维中已将收益高 、见效快、风险小的现代理财模式投放在自己的理财计划中,这一理财模式也是现代社会投资理财的主要发展目标。人们通过长时间的观察发现,股票投资是可以实现人们收益高、见效快目标的理财途径之一。
证券业作为金融行业三大支柱之一,其发展成熟程度介于银行与保险业之间,它相较银行业 、保险业有资金流动量大、高风险等不同特点。在金融危机席卷世界各地的环境下,证券业如何起到稳定金融市场的作用 ,规避股票投资风险意义重大。目前,借助互联网各种工具,股民与证券公司已能够获得相关实时信息,并通过机器学习分析信息对股市趋势所造成的影响。现代科学技术目前已涉足金融领域 ,但网络金融依然是我国金融行业的新鲜事物,它的大力发展会为金融行业注入新的血液,金融行业也将会受益于此而获得质的飞跃。
股票投资其实是一种基本买卖的行为,即低价买进,高价卖出,从中赚取差价。如何判断价格的最低点与最高点成为实现股市交易理想状态的关键所在。目前股票分析方法主要分为两种:基本分析与技术分析。前者研究的方向在于股票自身的内在价值,影响股票内在价值的因素来自股票市场以外,包括国家所处的经济环境与相关经济政策、行业的发展状况和企业自身的经营状况等。而后者的研究更侧重于对股票市场内部进行研究,注重对市场本身行为的影响。在股票形态分析的相关活动中,基本分析与技术分析通常组合起来使用,二者形成分析技术的优势互补 。
本文不打算预先定义某类形态,而是基于真实的交易数据,利用数据挖掘算法,自动进行价格形态聚类,并计算每类股票的收益情况,从而找出其对投资者有参考意义的形态,基本思路如下:
第一,以上证A股2017年9月4日至2017年11月13日的交易数据为聚类样本数据,并利用关键点提取算法,提取能反映价格走势的关键价格点,基于关键价格点进行K-均值聚类分析,这类K取8,即对价格走势形态聚为8个类。
第二,对每一类股票,以2017年11月14日买入,2017年11月15日卖出,计算其总收益。
第三,与同期的上证指数收益进行对比,找出对投资者有参考意义的形态,以便为投资者有针对性地对出现这些形态的股票进行更为深入的指标技术分析和基本面分析, 从而提供更为完备、更为准确的投资策略。
2 基于K-均值聚类的股票价格形态聚类模型
2.1 数据获取
数据来源于国泰安数据库,取上证A股2017年9月4日至2017年11月15日的交易数据为分析样本,指标选取日收盘价。以2017年9月4日至2017年11月13日的交易数据为聚类样本数据,并利用关键点提取算法,提取能反映价格走势的关键价格点,以关键价格点数据作为聚类分析数据。以2017年11月14日至15日交易数据作为收益率计算数据。
2.2 股票价格关键点提取
由于股票价格作为聚类特征,其维度较大。通过分析发现,股票价格走势主要由一些关键价格点构成,因此选择其关键的价格点作为聚类特征即可。由文献[1],Xi-1,Xi,Xi+1构成的序列模式,|Xi-(Xi-1+Xi+1)/2|越大,Xi成为关键点的可能性就越大。在此给出关键价格特征点的提取算法:
算法:关键价格点特征提取算法
输入:样本数据Pdatan×m
输出:关键价格点数据Keydata
步骤1: 预定义Keydata=zeros(n,q),dat=zeros(n,m)全0矩阵。其中,n为样本数量,m为原始数据的特征向量元素个数,q为提取的关键价格点个数。
步骤2: 计算d(i,j),结果存放在dat中,考虑矩阵计算方法。
for j=2∶64
dat(:,j)==abs(pdata(:,j)-(pdata(:,j-1)+pdata(:,j+1))/2);
end
步骤3: 对dat中的每一行,获取前q-2个最大值的位置index。
for i=1:n
index=zeros(1,q)
index(1)=1;
index(1)=m;
for j=2:q-1
[~,I]=max(dat(i,:));
index(j)=I;
dat(i,I)=0;
end
对index从小到大排序
Keydata(i,:)=pdata(i,index);
end
步骤4: 输出Keydata。
对某个股票价格走势图关键特征提取如图1所示:(其中蓝色线为原始数据走势曲线图,星号红色点为关键价格点,虚线部分为关键价格曲线图)。
图1 关键价格点拟合情况
从图1可以看出,关键价格点基本能拟合原来的价格趋势,同时维度降低了。
2.3 基于K-均值聚类的股票价格形态聚类与收益分析
2.3.1 K-均值聚类算法
步骤1:随机初始化K个聚类中心,即K个类中心向量;
步骤2:对每个样本,计算其与各个类中心向量的距离,并将该样本指派给距离最小的类;
步骤3:更新每个类的中心向量,更新的方法为取该类所有样本的特征向量均值;
步骤4:直到各个类的中心向量不再发生变化为止,这里采用0.01的误差,作为退出条件。
2.3.2 收益分析
为了更好地观察股票价格形态的收益情况,选择到更有价值的形态,我们希望是聚出更多的类。因此,K-均值聚类算法中,笔者选择K=8,即聚8个类,并观察收益情况。如图2所示。
图2 8类关键价格曲线以及相关收益率
图2的8类关键价格曲线中,只有1种形态获得了正收益,其他形态均为负收益。获得正收益的第1种形态,收益率为4.8605%。同期的上证指数2017年11月14日和15日跌幅分别为-0.86%和-0.8%。由此可以得出这种形态的收益率是非常客观的。
3 总 结
本文基于真实的交易数据,利用数据挖掘算法,自动进行价格形态聚类,并计算每类股票的收益情况,从而找出其对投资者有参考意义的形态,以便为投资者有针对性地对出现这些形态的股票进行更为深入的指标技术分析和基本面分析,提供更为完备、更为准确的投资策略(聚类越多,供投资者参考的就越全面)。