- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第10章股票价格形态聚类与收益分析关键价格点概念及提取算法基于关键价格点的形态特征表示基于关键价格点的形态特征提取
关键价格点概念及提取算法第10章股票价格走势主要由一些关键价格点构成,因此我们选择其关键的价格点作为聚类特征即可。构成的序列模式,值越大,xi成为关键点的可能性就越大。关键价格点提取算法如下:输入:原始价格序列x=(x1,x2,……,xp),提取关键点个数num。输出:关键价格点序列、对应下标序列。step1:对x2,…,x(p-1)按公式计算其与相邻两个价格点均值的绝对值大小,并按从大到小进行排序,取排名前num-2对应的价格点,记为L1,对应的下标序列记为S1。step2:x1,xp对应的价格点记为L2,对应的下标序列记为S2。step3:记L=L1∪L2,S=S1∪S2,并按S从小到大进行排序,则L即为关键价格点序列,S即为对应的下标序列。
关键价格点概念及提取算法第10章defget_keydata(x,num):importpandasaspdimportnumpyasnp#计算x2,…,x(p-1)各点减去相邻两点平均值的绝对值d=abs(x[1:len(x)-1].values-(x[0:len(x)-2].values+x[2:len(x)].values)/2)#以d为值,对应的下标为index,构建序列,并按降序排序Sd=pd.Series(d,index=np.arange(1,len(x)-1)).sort_values(ascending=False)L1=Sd[0:num-2]L2=pd.Series([x[0],x[len(x)-1]],index=[0,len(x)-1])L=L1.append(L2)keydata=x[L.index].sort_index()returnkeydata函数输入参数为价格数组X、提取的关键点个数num,返回值为关键点序列(index为下标,value为对应的关键价格点)关键点提取算法函数如下(函数定义在df.py文件中)
关键价格点概念及提取算法第10章股票代码为600000的股票2017年6月1日—2017年8月31日的收盘价数据,提取10个关键点,并在同一坐标轴上绘制原始价格点与关键价格点拟合图,importpandasaspdimportdfimportmatplotlib.pyplotaspltdata=pd.read_excel(DA.xlsx)I1=data[Trddt].values=2017-06-01I2=data[Trddt].values=2017-08-31I=I1I2data1=data.iloc[I,:]#提取代码600000的收盘价dt=data1.loc[data1[Stkcd]==600000,[Clsprc]][Clsprc]#收盘价序列的index重排,从0开始dt=pd.Series(dt.values,index=range(len(dt)))keydata=df.get_keydata(dt,10)plt.plot(dt.index,dt.values)plt.plot(keydata.index,keydata.values,r*--)关键价格点(keydata.values)为:[12.9212.5312.8613.7613.5513.4513.6713.4412.4712.71]对应的下标(keydata.index)为:[0,27,29,32,33,36,37,44,60,65]
基于关键价格点的形态特征表示第10章关键价格点的提取降低了维度,但是直接用价格点进行聚类还是存在较大的误差,因此我们需要对关键价格点的走势情况进行特征化表示,采用两个关键价格点之间连线的斜率确定其涨跌情况,即特征化表示为两个关键点连线之间的夹角的tan值:其中p1和p2分别表示前后两个关键点,x1和x2分别为关键点对应的下标。涨跌幅的划分标准如下:上涨幅度大:tan值0.5上涨幅度较大:tan值介于0.2~0.5上涨:tan值介于0.1~0.2平缓:tan值介于?0.1~0.1下跌:tan值介于?0.2~?0.1下跌幅度较大:tan值介于?0.5~?0.2下跌幅度大:tan值?0.5分别记为:
您可能关注的文档
- Python金融数据分析与挖掘(微课版) 课件 1-1. Python基本数据类型与基本数据结构.pptx
- Python金融数据分析与挖掘(微课版) 课件 1-2. Python公有方法.pptx
- Python金融数据分析与挖掘(微课版) 课件 1-3. Python基本数据结构方法.pptx
- Python金融数据分析与挖掘(微课版) 课件 2-1. 数组创建与操作.pptx
- Python金融数据分析与挖掘(微课版) 课件 2-2. 矩阵与线性代数运算.pptx
- Python金融数据分析与挖掘(微课版) 课件 3-1.序列.pptx
- Python金融数据分析与挖掘(微课版) 课件 3-2.数据框.pptx
- Python金融数据分析与挖掘(微课版) 课件 3-3.外部文件读取.pptx
- Python金融数据分析与挖掘(微课版) 课件 3-4.常用函数.pptx
- Python金融数据分析与挖掘(微课版) 课件 3-5.常用计算任务.pptx
文档评论(0)