Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-1.股票價(jià)格形態(tài)特征提取_第1頁
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-1.股票價(jià)格形態(tài)特征提取_第2頁
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-1.股票價(jià)格形態(tài)特征提取_第3頁
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-1.股票價(jià)格形態(tài)特征提取_第4頁
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-1.股票價(jià)格形態(tài)特征提取_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第10章

股票價(jià)格形態(tài)聚類與收益分析關(guān)鍵價(jià)格點(diǎn)概念及提取算法基于關(guān)鍵價(jià)格點(diǎn)的形態(tài)特征表示基于關(guān)鍵價(jià)格點(diǎn)的形態(tài)特征提取關(guān)鍵價(jià)格點(diǎn)概念及提取算法第10章

股票價(jià)格走勢(shì)主要由一些關(guān)鍵價(jià)格點(diǎn)構(gòu)成,因此我們選擇其關(guān)鍵的價(jià)格點(diǎn)作為聚類特征即可。構(gòu)成的序列模式,值越大,xi成為關(guān)鍵點(diǎn)的可能性就越大。關(guān)鍵價(jià)格點(diǎn)提取算法如下:輸入:原始價(jià)格序列x=(x1,x2,……,xp),提取關(guān)鍵點(diǎn)個(gè)數(shù)num。輸出:關(guān)鍵價(jià)格點(diǎn)序列、對(duì)應(yīng)下標(biāo)序列。step1:對(duì)x2,…,x(p-1)按公式計(jì)算其與相鄰兩個(gè)價(jià)格點(diǎn)均值的絕對(duì)值大小,并按從大到小

進(jìn)行排序,取排名前num-2對(duì)應(yīng)的價(jià)格點(diǎn),記為L1,對(duì)應(yīng)的下標(biāo)序列記為S1。step2:x1,xp對(duì)應(yīng)的價(jià)格點(diǎn)記為L2,對(duì)應(yīng)的下標(biāo)序列記為S2。step3:記L=L1∪L2,S=S1∪S2,并按S從小到大進(jìn)行排序,則L即為關(guān)鍵價(jià)格點(diǎn)序列,

S即為對(duì)應(yīng)的下標(biāo)序列。關(guān)鍵價(jià)格點(diǎn)概念及提取算法第10章

defget_keydata(x,num):

importpandasaspd

importnumpyasnp

#計(jì)算x2,…,x(p-1)各點(diǎn)減去相鄰兩點(diǎn)平均值的絕對(duì)值

d=abs(x[1:len(x)-1].values-(x[0:len(x)-2].values+x[2:len(x)].values)/2)

#以d為值,對(duì)應(yīng)的下標(biāo)為index,構(gòu)建序列,并按降序排序

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函數(shù)輸入?yún)?shù)為價(jià)格數(shù)組X、提取的關(guān)鍵點(diǎn)個(gè)數(shù)num,返回值為關(guān)鍵點(diǎn)序列(index為下標(biāo),value為對(duì)應(yīng)的關(guān)鍵價(jià)格點(diǎn))關(guān)鍵點(diǎn)提取算法函數(shù)如下(函數(shù)定義在df.py文件中)關(guān)鍵價(jià)格點(diǎn)概念及提取算法第10章

股票代碼為600000的股票2017年6月1日—2017年8月31日的收盤價(jià)數(shù)據(jù),提取10個(gè)關(guān)鍵點(diǎn),并在同一坐標(biāo)軸上繪制原始價(jià)格點(diǎn)與關(guān)鍵價(jià)格點(diǎn)擬合圖,importpandasaspdimportdfimportmatplotlib.pyplotaspltdata=pd.read_excel('DA.xlsx')I1=data['Trddt'].values>='2017-06-01'I2=data['Trddt'].values=<'2017-08-31'I=I1&I2data1=data.iloc[I,:]#提取代碼600000的收盤價(jià)dt=data1.loc[data1['Stkcd']==600000,['Clsprc']]['Clsprc']#收盤價(jià)序列的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*--')關(guān)鍵價(jià)格點(diǎn)(keydata.values)為:[12.9212.5312.8613.7613.5513.4513.6713.4412.4712.71]對(duì)應(yīng)的下標(biāo)(keydata.index)為:[0,27,29,32,33,36,37,44,60,65]基于關(guān)鍵價(jià)格點(diǎn)的形態(tài)特征表示第10章

關(guān)鍵價(jià)格點(diǎn)的提取降低了維度,但是直接用價(jià)格點(diǎn)進(jìn)行聚類還是存在較大的誤差,因此我們需要對(duì)關(guān)鍵價(jià)格點(diǎn)的走勢(shì)情況進(jìn)行特征化表示,采用兩個(gè)關(guān)鍵價(jià)格點(diǎn)之間連線的斜率確定其漲跌情況,即特征化表示為兩個(gè)關(guān)鍵點(diǎn)連線之間的夾角

的tan值:其中p1和p2分別表示前后兩個(gè)關(guān)鍵點(diǎn),x1和x2分別為關(guān)鍵點(diǎn)對(duì)應(yīng)的下標(biāo)。漲跌幅的劃分標(biāo)準(zhǔn)如下:上漲幅度大:

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分別記為:7、6、5、4、3、2、1基于關(guān)鍵價(jià)格點(diǎn)的形態(tài)特征表示第10章

特征化表示函數(shù)如下(函數(shù)也定義在df.py文件中)defget_tz(keydata):

importnumpyasnp

y1=keydata.values[1:]

y2=keydata.values[0:-1]

x1=keydata.index[1:]

x2=keydata.index[0:-1]

#計(jì)算tan值

tan=list((y2-y1)/(x2-x1))

T=np.array(tan)

I7=T>0.5

i1=T>0.2

i2=T<=0.5

I6=i1&i2

i1=T>0.1

i2=T<=0.2

I5=i1&i2

i1=T>-0.1

i2=T<=0.1

I4=i1&i2i1=T>-0.2i2=T<=-0.1I3=i1&i2i1=T>=-0.5i2=T<=-0.2I2=i1&i2I1=T<-0.5T[I1]=1T[I2]=2T[I3]=3T[I4]=4T[I5]=5T[I6]=6T[I7]=7returnT函數(shù)輸入?yún)?shù)為關(guān)鍵點(diǎn)序列,返回結(jié)果為特征化數(shù)組:T=df.get_tz(keydata)print(T)可以看到,前面所示關(guān)鍵點(diǎn)價(jià)格走勢(shì)圖其特征化表示為:[4.5.6.2.4.6.4.4.4.]基于關(guān)鍵價(jià)格點(diǎn)的形態(tài)特征提取第10章

根據(jù)第8章中基于總體規(guī)模與投資效率指標(biāo)的綜合評(píng)價(jià)方法,獲取2016年排名前400的股票作為研究樣本,并提取其交易數(shù)據(jù)區(qū)間在2017年5月1日—2017年7月31日的股票關(guān)鍵價(jià)格點(diǎn)和形態(tài)特征。首先基于總體規(guī)模與投資效率指標(biāo)的綜合評(píng)價(jià)方法,獲取2016年排名前400的股票,包括其股票代碼和股票簡稱。importpandasaspdimportfundta=pd.read_excel('ddata.xlsx')r=fun.Fr(dta,'2016')c=r[0][0:400]cn=r[1][0:400]code=list(c.index)#將股票代碼轉(zhuǎn)化為列表的形式基于關(guān)鍵價(jià)格點(diǎn)的形態(tài)特征提取第10章

其次確定在2017年5月1日—2017年7月31日之間的交易所實(shí)際交易天數(shù)Mtd=pd.read_excel('交易日歷數(shù)據(jù)表.xlsx')I1=td['Clddt'].values>='2017-05-01'I2=td['Clddt'].values<='2017-07-31'I=I1&I2ddt=td.loc[I,['Clddt']]M=len(ddt)基于關(guān)鍵價(jià)格點(diǎn)的形態(tài)特征提取第10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論