Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 9-1.指標(biāo)計算_第1頁
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 9-1.指標(biāo)計算_第2頁
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 9-1.指標(biāo)計算_第3頁
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 9-1.指標(biāo)計算_第4頁
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 9-1.指標(biāo)計算_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章

股票價格漲跌趨勢預(yù)測MA、MACD、KDJ、RSI、BIAS、OBV、因變量Y指標(biāo)設(shè)計及計算方法計算舉例移動平均線(MA)第9章

移動平均線(MA)就是將某一定時期的收盤價之和除以該周期,按時間的長短可以分為長期、中期、短期3種。計算公式如下:Ct為t日股票價格,n為天數(shù)。Python計算移動平均的命令為:P.rolling(n).mean()。其中,P為價格序列,n為周期數(shù)。例如,計算5日移動平均為:P.rolling(5).mean()指數(shù)平滑異同平均線(MACD)第9章

指數(shù)平滑異同平均線(MACD)是在移動平均線的基礎(chǔ)上發(fā)展而成的,它利用兩條不同速度(一條變動速率較快的短期移動平均線,一條變動速度較慢的長期移動平均線)的指數(shù)平滑移動平均線來計算二者之間的差別狀況(DIF),作為研判行情的基礎(chǔ),然后再計算出的9日平滑移動平均線。計算公式為:指數(shù)平滑異同平均線(MACD)第9章

Python計算指數(shù)平滑移動平均的命令為:P.ewm(n).mean()其中,P為價格序列值,n為周期數(shù)。例如,計算12日、26日指數(shù)平滑移動平均為:

Z12=P.ewm(12).mean()

Z26=P.ewm(26).mean()則DIF、DEA、MACD計算算法如下:

DIF=Z12-Z26

Ift=1

DEA[t]=DIF[t]

Ift>1

DEA[t]=(2*DIF[t]+8*DEA[t-1])/10

MACD[t]=2*(DIF[t]-DEA[t])隨機指標(biāo)(KDJ)第9章

隨機指標(biāo)(KDJ)一般是用于股票分析的統(tǒng)計體系,根據(jù)統(tǒng)計學(xué)原理,通過一個特定的周期(常為9日、9周等)內(nèi)出現(xiàn)過的最高價、最低價及最后一個計算周期的收盤價及這三者之間的比例關(guān)系,計算最后一個計算周期的未成熟隨機值RSV,然后根據(jù)平滑移動平均線的方法計算K值、D值與J值,并繪成曲線圖研判股票價格走勢。Hn、Ln分別表示n日內(nèi)最高收盤價和最低收盤價,n=9。隨機指標(biāo)(KDJ)第9章

Python計算移動周期內(nèi)的最大最小值命令為:P.rolling(n).max()P.rolling(n).min()其中,P為價格序列,n為周期數(shù)。例如,計算9日移動最大最小值為:Lmin=P.rolling(9).min()Lmax=P.rolling(9).max()RSV=(P-Lmin)/(Lmax-Lmin)則計算KDJ指標(biāo)算法如下:Ift=1K[t]=RSV[t]D[t]=RSV[t]Ift>1K[t]=2/3*K[t-1]+1/3*RSV[t]D[t]=2/3*D[t-1]+1/3*K[t]J[t]=3*D[t]-2*K[t]相對強弱指標(biāo)(RSI)第9章

相對強弱指標(biāo)是利用一定時期內(nèi)平均收盤漲數(shù)與平均收盤跌數(shù)的比值來反映股市走勢的?!耙欢〞r期”的選擇是不同的,一般講,天數(shù)選擇短,易對起伏的股市產(chǎn)生動感,不易平衡長期投資的心理準備,做空做多的短期行為增多。天數(shù)選擇長,對短期的投資機會不易把握。因此RSI一般可選用天數(shù)為6天、12天、24天,計算公式為:公式中,A=n日內(nèi)收盤漲數(shù);B=n日內(nèi)收盤跌數(shù);n=6,12,24相對強弱指標(biāo)(RSI)第9章

相對強弱指標(biāo)RSI計算方法如下:(1)預(yù)定義漲跌標(biāo)識向量z,即z=np.zeros(len(P)-1),其中P為價格序列。(2)漲跌標(biāo)識向量賦值。

z[P(2:end)-P(1:end-1)≥0]=1

#漲

z[P(2:end)-P(1:end-1)<0]=-1

#跌

z1=pd.Series(z==1)#轉(zhuǎn)化為序列

z2=pd.Series(z==-1)

#轉(zhuǎn)化為序列(3)漲跌情況統(tǒng)計。

z1=z1.rolling(N).sum()#N日移動計算漲數(shù)

z2=z2.rolling(N).sum()#N日移動計算跌數(shù)

z1=z1.values

#取values值,轉(zhuǎn)為數(shù)組

z2=z2.values

#取values值,轉(zhuǎn)為數(shù)組(4)RSI指標(biāo)計算。

fort=Ntolen(P)-1

rsi[t]=z1[t]/(z1[t]+z2[t])乖離率指標(biāo)(BIAS)第9章

乖離率指標(biāo)(BIAS)通過計算市場指數(shù)或收盤價與某條移動平均線之間的差距百分比,以反映一定時期內(nèi)價格與其MA偏離程度的指標(biāo),從而得出價格在劇烈波動時因偏離移動平均趨勢而造成回檔或反彈的可能性,以及價格在正常波動范圍內(nèi)移動而形成繼續(xù)原有勢的可信度,計算公式為:算法如下:(1)預(yù)定義乘離率指標(biāo)bias=np.zeros((len(P))),其中P為價格序列。(2)計算n日移動平均價格man=P.rolling(n).mean()。(3)fort=ntolen(P)bias[t]=(P[t]-man[t])/man[t]能量潮指標(biāo)(OBV)第9章

能量潮指標(biāo)(OBV)又稱為能量潮,也叫成交量凈額指標(biāo),是通過累計每日的需求量和供給量并予以數(shù)字化,制成趨勢線,然后配合證券價格趨勢圖,從價格變動與成交量增減的關(guān)系上來推測市場氣氛的一種技術(shù)指標(biāo)。計算公式為:其中,是符號函數(shù),其數(shù)值由下面的式子決定:算法如下:(1)記P、S分別為價格序列和成交量序列,預(yù)定義obv=np.zeros((len(P)))。(2)fort=1tolen(P)ift=1obv[t]=S[t]ift>1ifP[t]>=P[t-1]obv[t]=obv[t-1]+S[t]ifP[t]<P[t-1]:obv[t]=obv[t-1]-S[t]漲跌趨勢指標(biāo)(因變量Y)第9章

下一日收盤價減去當(dāng)日收盤價,若大于0,則下日股價呈現(xiàn)上漲趨勢,記為+1類,反之則股價呈現(xiàn)下跌趨勢,記為?1類。因變量y的計算方法如下:(1)預(yù)定義y=np.zeros(len(P)),其中P為價格序列。(2)預(yù)定義標(biāo)識變量z=np.zeros(len(y)-1)。(3)fort=1tolen(z)

z[P[2:end]-P[1:end-1]>0]=1

#漲

z[P[2:end]-P[1:end-1]==0]=0#平

z[P[2:end]-P[1:end-1]<0]=-1#跌

y[t+1]=z[t]計算舉例第9章

以上汽集團(股票代碼:600104)為例計算其指標(biāo)。其數(shù)據(jù)區(qū)間為:2017年1月3日—2017年12月29日StkcdTrddtClsprcDnshrtrdDnvaltrdOpnprcHiprcLoprc6001042017-01-0323.893685560788258999223.5724.323.576001042017-01-0424.293353199781480331223.9724.523.896001042017-01-0524.052085937550222785724.3824.3823.956001042017-01-0623.912297960155137241724.0424.1623.786001042017-01-0924.162586837062306871523.9324.2223.926001042017-01-1024.011733726841719233624.1524.223.976001042017-01-1123.851833578443911683524.0624.0723.776001042017-01-1223.952384200757323358723.8924.1123.87…………………………………………字段依次為股票代碼、交易日期、收盤價、交易股數(shù)、交易金額、最高價、最低價、開盤價。根據(jù)前面介紹的指標(biāo)定義、計算公式及實現(xiàn)算法,這里將各類指標(biāo)的計算采用函數(shù)形式進行定義。程序見Ind.py,下面僅給出函數(shù)的定義結(jié)構(gòu)。計算舉例第9章

Ind.py文件中的指標(biāo)計算函數(shù)的定義結(jié)構(gòu)。defMA(data,N1,N2,N3):

……return(MAN1,MAN2,MAN3)defMACD(data):……

returnMACDdefKDJ(data,N):……return(K,D,J)defRSI(data,N):

……returnrsidefBIAS(data,N):

……returnbiasdefOBV(data):

……returnobvdefcla(data):

……returny計算舉例第9章

importIndimportpandasaspddata=pd.read_excel('data.xlsx')MA=Ind.MA(data,5,10,20)macd=Ind.MACD(data)kdj=Ind.KDJ(data,9)rsi6=Ind.RSI(data,6)rsi12=Ind.RSI(data,12)rsi24=Ind.RSI(data,24)bias5=Ind.BIAS(data,5)bias10=Ind.BIAS(data,10)bias20=Ind.BIAS(data,20)obv=Ind.OBV(data)y=Ind.cla(data)pm={'交易日期':data['Trddt'].values}PM=pd.DataFrame(pm)DF={'MA5':MA[0],'MA10':MA[1],'MA20':MA[2],

'MACD':macd,

'K':kdj[0],'D':kdj[1],'J':kdj[2],

'RSI6':rs

溫馨提示

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

評論

0/150

提交評論