股票k线图相似性分析算法及设计

一、设计背景

随着越来越多的人投资于股市,股票价格预测已经成为一个研究热点。关于股票价格预测的技术分析方法有很多,其中应用最为广泛的是K线技术分析法。如果将每天的K线按时间顺序排列在一起,就组成了反映股票价格历史变化情况的数列称为K线序列。它能够全面透彻地观察到市场的真正变化,看到股价的趋势、了解到每日市况的波动情形。

经过研究发现,时间序列具有两个重要特征:一是“历史信息会影响未来走势”,即时间序列的过去值会影响到将来;二是“历史经常会重现”即一些特殊的时间序列在整个时间序列中会反复出现。这些特征使得时间序列相似性搜索预测成为可能,从历史数据中寻找与指定股票近期走势相似的数据段,以期通过相似数据段的未来走势来预测指定股票的未来走势。由于K线序列也是一种时间序列,因此用股票K线图相似性来预测便成为股票预测首选方法。

二、系统架构

假定K线走势相近的股票,未来也可能会发生近似的走势。因此根据标的股票当前走势与沪深市场所有股票的历史K线形态进行匹配,并且加入成交量趋势分析找出相似特征的股票,统计这些样本后续的走势供投资者分析参考。


三、算法说明

在统计学中皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数,是用于度量两个变量X和Y之间的线性相关,我们可以利用numpy.corrcoef()函数,来计算两个矩阵之间的相关性。

选择出相似数据段的算法主要分为两步:

第一步:根据限制条件(具体包括股票范围、时间),划分出用于搜索的历史数据范围;第二步:在划分出的历史数据范围中,通过相似性算法,获得相似数据段及对应相似度。

1)划分历史数据范围

a.根据输入参数时间,在时间序列上切割历史数据;

b.根据输入参数范围,在横截面上切割历史数据,其中市值档位分为大市值、中市值、小市值。在每个截面上市值前1/3大的个股为大市值,在每个截面上市值前1/3小的个股为小市值,剩余为中市值。股票的行业属性较为稳定,而市值属性可能不稳定。如现在小市值的某股票,历史某短时间可能为中市值。对于市值属性的处理方案,以现在的市值档位来筛选股票。

注意:

为了保证可以根据历史数据预测未来,历史数据从20日前开始计算,即保留20日作为收益统计。

2)相似性算法

从用户的使用体验考虑,价量的形似是最关键的相似性度量指标, 利用价格相似度和成交量相似度以不同权重来进行计算。三维股池添加的趋势层面、四维股池添加的趋势层面与主力资金层面的匹配,应是在价量形似的基础上的次级匹配目标。且这样设计可以大幅降低计算成本。

四、预测方法

从用户的使用体验考虑,价量的形似是最关键的相似性度量指标。三维股池添加的趋势层面、四维股池添加的趋势层面与主力资金层面的匹配,在价量形似的基础上进行次级匹配这样设计可以大幅降低计算成本。

每天收盘后对于每支股票在划分的历史数据范围中计算每个数据段的价量相似度,排序得到最匹配的N个数据段(如N=500)及其对应的股票、起止时间。若用户输入参数模型为二维股池,则按预定展示数(如10)直接展示前几名。若用户输入参数模型为三维股池、四维股池,则仅在此N个数据段中进一步进行筛选,并展示筛选后数据段的前M名。

1)价量

a.价格相似度计算:

记close_01为指定股票的近期前复权收盘价序列,close_02为当前对比相似度的数据段的前复权收盘价序列,close_01与close_02长度相等。

第一步对c1、c2进行归一化,得到c1_s, c2_s。

c1_s = [(x-min(c1))/(max(c1)-min(c1)) for x in c1]

c2_s = [(x-min(c2))/(max(c2)-min(c2)) for x in c2]

第二步计算欧式距离。

similarity_close = sqrt(sum([x ** 2 for x in (c1_s - c2_s)]))

公式:

b.成交量相似度计算与价格相似度计算步骤类似。

c.价量相似度=0.7价格相似度计算+ 0.3成交量相似度。

价量相似度越小表示两个序列越相关,升序排序保存前M名继续进行下面模型筛选。如果用户选择二维模型,则直接输出前M名,但如果结果出现一只股票有多段数据相似,只保留排名靠前的一段数据,增加候选数据段保证总的输出有M段相似数据 ,即输出的相似数据段来自M只不同股票的历史数据。

2)三维股池

使用多参数动量来刻画趋势。动量即为平均收益率(收盘价斜率)。记m_n为n日动量,即往前数n个交易日收益率的均值。考虑使用3种参数的动量,分别对应总趋势、近1/2周期趋势、近1/4周期趋势。

趋势相似度越小越相似,升序排列保存前M名继续进行下面模型筛选,若用户输入参数模型为三维股池,取前M名作为输出。

3)四维股池

使用大单净流入额日频指标衡量主力资金动向。记指定股票的大单净流入额序列为BI1,对比数据段的大单净流入额序列为BI2。计算correlation(BI1,BI2),对主力相似度降序排列保存前M名,若用户输入参数模型为四维股池,输出前M名。

五、评价标准

使用预测准确率和预测误差来评价股票的预测效果。取标的股票每天收益率(默认最近20个交易日)作为一组时间序列,与所有股票的历史数据(从2011年1月1日至今)任意长度为20的连续时间序列计算相似系数,相似系数越高表示K线越相似,从而根据相似股票的后期走势进行统计分析。

采用多次预测求平均值的方法来计算最终的预测准确率和误差。具体步骤如下 :

1)构建预测样本。首先随机选择一个时间段,接着从预测样本数据源中选择每只股票在该时间段内的K线序列作为一个预测序列,最后将这些预测序列组合在一起便可以构成一组预测样本。基于这种方法最终按照时间顺序随机构建15组预测样本进行实验。

2)使用普通序列预测法或模式序列预测法对所有的预测样本进行预测并计算每个预测样本的预测准确率和误差。

3)对所有预测样本的预测准确率和误差进行平均就可以得到该预测方法最终的预测准确率和误差。

六、总结

技术分析者认为K线包容了一切市场行为,价格将以趋势方式演变,相似K线是验证“历史总会重演”的一个经典产品。投资者可以根据相似K线展示的结果来观察个股可能的未来走势,从而对投资起到一定的指导作用。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容