数据挖掘算法及其在股市技术分析中的应用
- 格式:pdf
- 大小:202.85 KB
- 文档页数:4
收稿日期:2004-04-09;修订日期:2004-06-15
作者简介:万国华(1966-),男,江西南昌人,副教授,博士,主要研究方向:信息系统与运筹学; 陈宇晓(1980-),男,广东深圳人,工程师,
主要研究方向:信息系统和企业信息化.
文章编号:1001-9081(2004)11-0104-03
数据挖掘算法及其在股市技术分析中的应用
万国华,陈宇晓
(深圳大学管理学院,广东深圳518060)
(gh_wan@)
摘 要:提出了一种基于动态规划和动态时间弯折函数的数据挖掘算法,并应用该算法对股市进行技术分析。基于某股市实际数据的实验结果表明该算法是有效的。
关键词:数据挖掘;股市指数;动态规划;动态时间弯折函数中图分类号:TP311.13 文献标识码:A
Data mining algorithm and its applications in technical analysis of stock market
W AN Guo hua,C HE N Yu xiao
(Colle ge of Management,Shenzhen University ,Shen z hen Guan gdong 518060,China)
Abstract:A new data mining algorithm based on dynamic programming and dynamic time warping function was proposed and applied in technical analysis of stock market.The experi ment with the data from a stock ex change showed that the algorith m is effective in technical analysis of the stock index.
Key words:data mining ;stock index;dynamic programmi ng ;dynamic time warpi ng
0 引言
证券市场的技术分析一直是一个热门的研究课题,人们提出了各种不同地方法来预测股市的走势,主要包括基于统计分析(时间序列和回归模型)的预测方法[3,4],基于人工智能(神经网络、遗传算法和模糊逻辑)的预测方法[2]。本文讨论一个基于数据挖掘技术进行证券市场的技术分析的方法。该方法应用动态时间弯折函数以寻找股市的走势模式,从而进行股市指数等有关变量的预测。
首先,证券市场的技术分析常用到一些图形型态,它们是由于股价经过一段时间的盘档后,在图上形成的一种特殊型态,可作为股价走势的基本模式。不同的型态有出不同的意义。图1中给出了技术分析中常用的一些型态(它们对应了各自的模式)。
实际的股市走势曲线中与某个型态相吻合常常蕴含着一定的规律。例如:潜伏顶的出现常与高交易量相关联;头肩顶反映了好淡双方的激烈争夺情况,是一个长期性趋势的转向型态,通常在牛市的尽头出现。事实上,当最近的一个高点的成交量较前一个高点为低时,就暗示头肩顶出现的可能性很大;当第三次回升估价无法升抵上次的高点,而成交继续下降时,有经验的投资者就会把握机会沽出。当头肩顶颈线击破时,就是一个真正的沽出讯号,虽然股价和最高点比较,已回落了相当的幅度,但跌势只是刚刚开始,未出货的投资者继续沽出。股价跌破颈线后会有短时反弹行情,在颈线附近受到压力后转向继续下跌。
在某一段时间内的股市指数走势形成了与其相对应的图表型态,可以分为反转形态、整理形态。股市走势曲线便可视为由一个个不同的形态所组成的。
图1 几种熊市的技术分析型态
由于股市走势图与人类的语音变化图类似,故引入在语音识别中有效的动态时间弯折(Dynamic Time Warping ,DTW)函数来对股市走势图进行模式匹配[1,5],寻找股市变化的内在模式,是一种可行的方法。其思想是:预先存储数个典型的型态模板,应用这些典型的型态模板对走势图进行匹配,使得匹配时的误差达到一个可接受的范围。具体地,可以应用动态规划方法,使得某个模板与实际的走势图的一段与型态模板相匹配,并使匹配误差最小。以下描述这个基于动态规划和动态时间弯折函数的数据挖掘算法,并研究了该算法在某股市指数的技术分析中的应用。
1 一个基于动态规划算法的数据挖掘算法
1.1 普通时间规范化距离和弯折函数
首先,股市指数所形成的曲线(实际走势和型态模板)可以用向量表示如下:
第24卷第11期
2004年11月
计算机应用Computer Applications
Vol.24No.11Nov.2004
曲线(或型态)A 表示为:A =a 1,a 2, ,a i , ,a I 曲线(或型态)B 表示为:B =b 1,b 2, ,b j , ,b J
假设
问题中两个曲线(型态)的时间间隔相同,在一个i -j 坐标
(图2),分别沿i 轴和j 轴画出模式A 和模式B 。因为两个模式的时间间隔相同,故它们之间在同一时点的时间差异可用一序列c(i,j )描述如下:
F =[c(1),c(2), ,c(k ), ,c(K )] 其中c(k )=(i (k ),j (k ))(2)
该序列表示的一个函数F,实现了模式A 到模式B 的映射,称之为弯折函数。
当模式之间没有时间差异的时候,弯折函数与对角线j =i 重合。而时间差异的越大,
则弯折函数越偏离对角线。
图2 一个弯折函数的例子
为叙述方便,引入如下定义:
定义 (1)两个特征向量a i 和b j 的时间差异定义为如下范数:
d(c)=d(i ,j )= a i -b j (2)弯折函数F 的时间差异分量的总和定义为:
E(F )=
!d(c(k ))*
w(k ),其中w(k )是非负权重
(4)
(3)若用最小残留距离表示模式A 和模式B 之间的距离,则模式A 和模式B 之间的时间规范化距离可定义如下:
D (A ,B )=Min F
!K
k =1
d(c(k))*
w (k )
!
K
k =1
w(k)
(5)
1.2 弯折函数中的约束
(2)式定义的弯折函数是一种曲线随时间轴变动的模型,它必须接近实际的曲线随时间轴的变动。换句话说,函数F 被视为模式A 到模式B 之间的映射时,必须保持模式A 在其时间轴中的基本结构,反之亦然。因而,在每次转换时模式必须满足如下条件:即模式在自己的时间轴中,其基本结构是连续和单调的。
1)单调条件:i(k -1) i(k ),且j (k -1) j (k )
2)连续条件:i(k )-i(k -1) 1,且j (k )-j (k -1) 1由1)和2)可得相邻的两个点之间应满足如下关系:
c(k -1)=(i(k ),j (k)-1)
(i(k )-1,j (k )-1)
(i(k )-1,j (k ))
同时,:3)边界条件:i (1)=1,j (1)=1,及i(K )=I ,j (K )=J 4)窗口调整条件:i(k )-j (k ) r (见图2)
其中r 是一个适当的正整数,称为窗宽,该条件基于一个
事实,即大多数时间轴中的波动不会引起太大的时间差异。
5)倾斜约束条件:
对于弯折函数的倾斜度不应该过于陡峭和过于缓和(即变化不应过于大和过于小),否则可能引起非期望的时间轴弯折。太陡峭的倾斜度,会引起一个很短的模式A 段和一个相对长的模式B 段不切实际的匹配。具体地说,如果点c (k)朝i(0,j )轴连续前进m 次,那么c(k )不允许在此方向走得更远,除非它在对角线方向至少走了n 次。这里,其目的是用于限制变化的幅度,让倾斜度固定在一定范围。为了能对倾斜约束的强度进行评价,引入一个量P =n/m 。当P =0时,弯折函数的倾斜度没有限制,而P =∀时(即m =0),弯折函数即对角线j =i 。事实上,如果倾斜约束太严格,则时间规范化将不能有效工作。如倾斜约束太松弛,则模式间的区别将退化。根据文献[5]的实验,P 的值应适中。1.3 关于权重的讨论
由(5)式定义的是一种理想的距离,但它的最优化是一个难于处理的问题。如果(5)式中分母N =
!w (k)与弯折
函数F 无关(称为规范化系数),则(5)式可简化为:
D(A ,B)=1
N M in F [
!K
k =1
d(c(k))*
w (k )]
这个简化的问题可以用动态规划技术有效地求解。以下针对两种典型的权重形式,简化该问题。
1)对称形式:w (k)=[i(k )-i(k -1)]+[j (k )-j (k -1)],则N =I +J ,其中I ,J 分别是模式A 和B 的长度。
2)不对称形式:w(k)=[i (k )-i(k -1)],则N =I 。若假定时间轴i 和j 都是连续的,那么用对称形式,(5)式中的总和意味一个沿着临时定义的轴l(l =i+j )的合成。在不对称形式,(5)式中的总和意味着一个沿着时间轴i 的合成。从而,时间规范化距离是对称的,即D (A ,B )=D (B,A ),如图3所示。
图3 时间规范化距离
在不对称形式中,当弯折函数的点沿j 轴变化,或c(k)=c(k -1)+(0,1),权重w(k )减少到零。这意味着一些特征向量b j 有可能被不对称形式的合成排除在外。相反,在对称形式中,最小的w(k)的值等于1,不会出现排除特征向量的情形。
由于模式中的每一部分都应平等地看待,故任何特征向量被排除都应尽可能地避免,因此采用对称形式能得到比不对称形式更高的正确辨识率。然而,应注意到当弯折函数的点沿j 轴变化时,倾斜约束减少这种情形,这时,对称形式与不对称形式的差别会随倾斜约束的增强而逐渐地消失。
2 算法在某股市指数技术分析中的应用
2.1 实验数据
实验中所用的数据是随机选取的2000年1~3月份某股市指数。为了能比较好地模拟出该指数,选用了周期为60分钟的指数走势(这是目前能得到的最精确的数据),对于每个交易日我们选定了开市(9:30)、10:30、13:00、14:00和收市(15:00)五个时间的指数。这样若有M 个交易日,则数据为5*M 个(数据见附录)。对于每个型态模板,用一个一维数组
105第11期万国华等:数据挖掘算法及其在股市技术分析中的应用