Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第9章 基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析_第1頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第9章 基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析_第2頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第9章 基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析_第3頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第9章 基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析_第4頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第9章 基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第9章

基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析案例背景案例目標(biāo)和實(shí)現(xiàn)思路案例背景第9章

傳統(tǒng)的基本面分析方法有很大的局限性:一方面,在如此龐大的上市公司數(shù)據(jù)面前,我們無法及時(shí)完成分析,也更難找出優(yōu)質(zhì)的上市公司;另一方面,在信息高度發(fā)達(dá)的大數(shù)據(jù)時(shí)代,信息更新得非常快,我們更難以應(yīng)接?;跀?shù)量化的投資分析方法,即量化投資應(yīng)運(yùn)而生。所謂量化投資,就是采用計(jì)算機(jī)技術(shù)及數(shù)據(jù)挖掘模型,實(shí)現(xiàn)自己的投資理念或投資方法的一種過程,能夠幫助我們快速分析并挖掘數(shù)據(jù),從而找到我們需要的信息,這已經(jīng)成為投資界人士所推崇的方法。案例目標(biāo)及實(shí)現(xiàn)思路第9章

本章案例主要目標(biāo)是基于年度財(cái)務(wù)數(shù)據(jù)及其指標(biāo),對(duì)上市公司進(jìn)行綜合評(píng)價(jià),找出較為優(yōu)質(zhì)的上市公司。通過計(jì)算上市公司的股票交易的技術(shù)分析指標(biāo),利用數(shù)據(jù)挖掘模型預(yù)測(cè)下一個(gè)交易日上市公司的股票收盤價(jià)較開盤價(jià)漲跌方向,并基于預(yù)測(cè)的結(jié)果設(shè)計(jì)量化投資策略及實(shí)證檢驗(yàn)。第9章

基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析指標(biāo)選擇數(shù)據(jù)獲取數(shù)據(jù)處理和分析綜合排名指標(biāo)選擇第9章

優(yōu)質(zhì)上市公司的刻畫指標(biāo)有很多,該案例選擇反映公司總體規(guī)模和投資效率方面的財(cái)務(wù)數(shù)據(jù)和財(cái)務(wù)指標(biāo)。字段名稱字段中文名稱字段說明revenue營(yíng)業(yè)收入企業(yè)經(jīng)營(yíng)過程中確認(rèn)的營(yíng)業(yè)收入operate_profit營(yíng)業(yè)利潤(rùn)與經(jīng)營(yíng)業(yè)務(wù)有關(guān)的利潤(rùn)total_profit利潤(rùn)總額公司實(shí)現(xiàn)的利潤(rùn)總額n_income_attr_p凈利潤(rùn)公司實(shí)現(xiàn)的凈利潤(rùn)total_assets資產(chǎn)總計(jì)資產(chǎn)各項(xiàng)目之總計(jì)fix_assets固定資產(chǎn)凈額固定資產(chǎn)原價(jià)roe凈資產(chǎn)收益率凈利潤(rùn)/股東權(quán)益余額bps每股凈資產(chǎn)所有者權(quán)益合計(jì)期末值/實(shí)收資本期末值capital_rese_ps每股資本公積資本公積期末值/實(shí)收資本期末值eps每股收益凈利潤(rùn)本期值/實(shí)收資本期末值數(shù)據(jù)獲取第9章

本案例基于Tushare金融大數(shù)據(jù)社區(qū)提供的PythonAPI,獲取所需的數(shù)據(jù)。Tushare金融大數(shù)據(jù)社區(qū)提供免費(fèi)、開源的各類金融數(shù)據(jù)獲取API,通過注冊(cè)社區(qū)會(huì)員、獲得積分即可提取數(shù)據(jù),提取權(quán)限與積分有關(guān),獲得積分及相關(guān)事項(xiàng)可與積分管理員聯(lián)系。本案例基于教師權(quán)限(積分值大于5000)獲取2016年度數(shù)據(jù)。下面給出獲取方法:Tushare安裝數(shù)據(jù)獲取第9章

獲取的數(shù)據(jù)包括股票基本信息,并從利潤(rùn)表、資產(chǎn)負(fù)債表和財(cái)務(wù)指標(biāo)表中獲取以上指標(biāo)數(shù)據(jù)。示例代碼如下:importtushareastsimportpandasaspd#tushareAPI初始化ts.set_token('youtoken')#tushare官網(wǎng)的個(gè)人tokenpro=_api()#獲取股票基本信息,并保存為Excel文件stkcode=pro.stock_basic(exchange='',list_status='L',fields='ts_code,symbol,name,area,industry')stkcode.to_excel('stkcode.xlsx')#從利潤(rùn)表中獲取營(yíng)業(yè)收入、營(yíng)業(yè)利潤(rùn)、利潤(rùn)總額、凈利潤(rùn)等指標(biāo)數(shù)據(jù)income=pro.income_vip(period='20161231',fields='ts_code,revenue,operate_profit,total_profit,n_income_attr_p')income=income.drop_duplicates(subset=['ts_code'])#從資產(chǎn)負(fù)債表中獲取資產(chǎn)總計(jì)、固定資產(chǎn)凈額等指標(biāo)數(shù)據(jù)balance=pro.balancesheet_vip(period='20161231',fields='ts_code,total_assets,fix_assets')balance=balance.drop_duplicates(subset=['ts_code'])數(shù)據(jù)獲取第9章

#從財(cái)務(wù)指標(biāo)表中獲取凈資產(chǎn)收益率、每股凈資產(chǎn)、每股資本公積、每股收益等指標(biāo)數(shù)據(jù)indicator=pro.fina_indicator_vip(period='20161231',fields='ts_code,roe,bps,capital_rese_ps,eps')indicator=indicator.drop_duplicates(subset=['ts_code'])#數(shù)據(jù)集成,以代碼為鍵,內(nèi)連接,并把集成后的數(shù)據(jù)導(dǎo)出Excel文件tempdata=pd.merge(income,balance,how='inner',on='ts_code')Data=pd.merge(tempdata,indicator,how='inner',on='ts_code')Data.to_excel('Data.xlsx')數(shù)據(jù)處理與分析第9章

數(shù)據(jù)處理主要有:篩選指標(biāo)值大于0的數(shù)據(jù);去掉空值;數(shù)據(jù)標(biāo)準(zhǔn)化對(duì)標(biāo)準(zhǔn)化之后的指標(biāo)數(shù)據(jù)X做主成分分析,提取其主成分,要求累計(jì)貢獻(xiàn)率在0.95以上。示例代碼如下:fromsklearn.decompositionimportPCApca=PCA(n_components=0.95)#累計(jì)貢獻(xiàn)率為0.95Y=pca.fit_transform(X)#滿足累計(jì)貢獻(xiàn)率為0.95的主成分?jǐn)?shù)據(jù)gxl=pca.explained_variance_ratio_#貢獻(xiàn)率綜合排名第9章

綜合得分等于提取的各個(gè)主成分與其貢獻(xiàn)率的加權(quán)求和,示例代碼如下:importnumpyasnpF=np.zeros((len(Y)))#預(yù)定義綜合得分?jǐn)?shù)組Fforiinrange(len(gxl)):f=Y[:,i]*gxl[i]#第i個(gè)主成分與第i個(gè)主成分貢獻(xiàn)率的乘積F=F+f#數(shù)組累積求和排名結(jié)果,采用序列作為排名結(jié)果存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)。主要介紹兩種索引方式:fs1=pd.Series(F,index=data['ts_code'].values)#構(gòu)建序列,值為綜合得分F,索引為股票代碼Fscore1=fs1.sort_values(ascending=False)#結(jié)果排名,降序stk1=pd.DataFrame({'ts_code':data.iloc[:,0].values,'F':F})stk=pd.read_excel('stkcode.xlsx')stk=pd.merge(stk1,stk,how='inner',on=['ts_code'])#主成分?jǐn)?shù)據(jù)與股票基本信息表關(guān)聯(lián)fs2=pd.Series(stk['F'].values,index=stk['name'])Fscore2=fs2.sort_values(ascending=False)第9章

基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析MA、MACD、KDJ、RSI、BIAS、OBV、因變量Y指標(biāo)設(shè)計(jì)及計(jì)算方法計(jì)算舉例移動(dòng)平均線(MA)第9章

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

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

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

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

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

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])隨機(jī)指標(biāo)(KDJ)第9章

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

Python計(jì)算移動(dòng)周期內(nèi)的最大最小值命令為:P.rolling(n).max()P.rolling(n).min()其中,P為價(jià)格序列,n為周期數(shù)。例如,計(jì)算9日移動(dòng)最大最小值為:Lmin=P.rolling(9).min()Lmax=P.rolling(9).max()RSV=(P-Lmin)/(Lmax-Lmin)則計(jì)算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]相對(duì)強(qiáng)弱指標(biāo)(RSI)第9章

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

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

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)計(jì)。

z1=z1.rolling(N).sum()#N日移動(dòng)計(jì)算漲數(shù)

z2=z2.rolling(N).sum()#N日移動(dòng)計(jì)算跌數(shù)

z1=z1.values

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

z2=z2.values

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

fort=Ntolen(P)-1

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

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

能量潮指標(biāo)(OBV)又稱為能量潮,也叫成交量?jī)纛~指標(biāo),是通過累計(jì)每日的需求量和供給量并予以數(shù)字化,制成趨勢(shì)線,然后配合證券價(jià)格趨勢(shì)圖,從價(jià)格變動(dòng)與成交量增減的關(guān)系上來推測(cè)市場(chǎng)氣氛的一種技術(shù)指標(biāo)。計(jì)算公式為:其中,是符號(hào)函數(shù),其數(shù)值由下面的式子決定:算法如下:(1)記P、S分別為價(jià)格序列和成交量序列,預(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]漲跌趨勢(shì)指標(biāo)(因變量Y)第9章

下一日收盤價(jià)減去當(dāng)日收盤價(jià),若大于0,則下日股價(jià)呈現(xiàn)上漲趨勢(shì),記為+1類,反之則股價(jià)呈現(xiàn)下跌趨勢(shì),記為?1類。因變量y的計(jì)算方法如下:(1)預(yù)定義y=np.zeros(len(P)),其中P為價(jià)格序列。(2)預(yù)定義標(biāo)識(shí)變量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]計(jì)算舉例第9章

以上汽集團(tuán)(股票代碼:600104)為例計(jì)算其指標(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…………………………………………字段依次為股票代碼、交易日期、收盤價(jià)、交易股數(shù)、交易金額、最高價(jià)、最低價(jià)、開盤價(jià)。根據(jù)前面介紹的指標(biāo)定義、計(jì)算公式及實(shí)現(xiàn)算法,這里將各類指標(biāo)的計(jì)算采用函數(shù)形式進(jìn)行定義。程序見Ind.py,下面僅給出函數(shù)的定義結(jié)構(gòu)。計(jì)算舉例第9章

Ind.py文件中的指標(biāo)計(jì)算函數(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計(jì)算舉例第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':rsi6,'RSI12':rsi12,'RSI24':rsi24,

'BIAS5':bias5,'BIAS10':bias10,'BIAS20':bias20,

'OBV':obv}DF=pd.DataFrame(DF)s1=PM.join(DF)y1={'漲跌趨勢(shì)':y}ZZ=pd.DataFrame(y1)s2=s1.join(ZZ)ss=s2.dropna()Data=ss[ss.iloc[:,6].values!=0]計(jì)算舉例第9章

第9章

基于財(cái)務(wù)與交易數(shù)據(jù)的量化投資分析構(gòu)建投資組合基于邏輯回歸的量化投資策略實(shí)現(xiàn)構(gòu)建投資組合第9章

根據(jù)排名結(jié)果提取排名20只股票代碼構(gòu)建投資組合,并批量獲取投資組合中每只股票代碼的交易數(shù)據(jù),同時(shí)導(dǎo)出到Excel表格中。代碼示例如下:importtushareaststs.set_token('youtoken')pro=_api()stkdata=pro.daily(ts_code=codelist_str,start_date='20170101',end_date='20171231')stkdata=stkdata.sort_values(['ts_code','trade_date'])stkdata.index=range(len(stkdata))#重新設(shè)置index屬性stkdata.to_excel('stkdata.xlsx',index=False)基于邏輯回歸的量化投資策略實(shí)現(xiàn)第9章

基本思路:①劃分?jǐn)?shù)據(jù)集:投資組合中每一只股票以2017年1月—2017年10月之間的交易數(shù)據(jù)為訓(xùn)練數(shù)據(jù),2017年11月—2017年12月的數(shù)據(jù)為預(yù)測(cè)數(shù)據(jù)。②建立邏輯回歸預(yù)測(cè)模型:如果預(yù)測(cè)結(jié)果為+1,表示下一個(gè)交易日為上漲,則以當(dāng)天收盤價(jià)買入,下一個(gè)交易日收盤價(jià)賣出,計(jì)算該股票的投資收益率。③獲得投資組合的收益率,其中投資組合的收益率為組合中所有股票收益率之和,再繼續(xù)后續(xù)的分析。StkcdTrddtClsprcDnshrtrdDnvaltrdOpnprcHiprcLoprc0000012017-01-039.16459840494205951769.119.189.090000012017-01-049.16449329534115034449.159.189.140000012017-01-059.17344372913157696949.179.189.150000012017-01-069.13358154203271764349.179.179.110000012017-01-099.15361081573299946049.139.179.110000012017-01-109.15241053952205751329.159.169.14…………………………………………2017年交易數(shù)據(jù)基于邏輯回歸的量化投資策略實(shí)現(xiàn)第9章

預(yù)測(cè)模型計(jì)算方法:(1)獲取投資組合中的股票交易數(shù)據(jù)importIndimportpandasaspd#獲取投資組合所有股票交易數(shù)據(jù)stkdata=pd.read_excel('stkdata.xlsx')#獲取投資組合所有股票代碼列表codelist=stkdata.iloc[:,0].value_counts()codelist=list(codelist.index)基于邏輯回歸的量化投資策略實(shí)現(xiàn)第9章

(2)技術(shù)指標(biāo)的計(jì)算forcodeincodelist:data=stkdata.iloc[stkdata.iloc[:,0].values==code,:]iflen(data)>100:data.index=range(len(data))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)#交易日期、技術(shù)指標(biāo)、漲跌趨勢(shì)指標(biāo)合并為一個(gè)數(shù)據(jù)Datatdate={'交易日期':data['trade_date'].values}tdate=pd.DataFrame(tdate)Indicator={'MA5':MA[0],'MA10':MA[1],'MA20':MA[2],'MACD':macd,'K':kdj[0],'D':kdj[1],'J':kdj[2],'RSI6':rsi6,'RSI12':rsi12,'RSI24':rsi24,'BIAS5':bias5,'BIAS10':bias10,'BIAS20':bias20,'OBV':obv}Indicator=pd.DataFrame(Indicator)tempdata=tdate.join(Indicator)Y={'漲跌趨勢(shì)':y}Y=pd.DataFrame(Y)Data=tempdata.join(Y)Data=Data.dropna()#去掉空值Data=Data[Data.iloc[:,6].values!=0]#去掉第6列為0的數(shù)據(jù)基于邏輯回歸的量化投資策略實(shí)現(xiàn)第9章

(3)邏輯回歸漲跌預(yù)測(cè)模型#訓(xùn)練和預(yù)測(cè)數(shù)據(jù)劃分x1=Data['交易日期'].values>=20171101x2=Data['交易日期'].values<=20171031index=x1&x2x_train=Data.iloc[index,1:15]y_train=Data.iloc[index,[15]]x_test=Data.iloc[~index,1:15]y_test=Data.iloc[~index,[15]]#數(shù)據(jù)標(biāo)準(zhǔn)化后邏輯回歸模型fromsklearn.linear_modelimportLogisticRegressionasLRclf=LR()clf.fit(x_train,y_train.values.ravel())result=clf.predict(x_test)#預(yù)測(cè)結(jié)果sc=clf.score(x_train,y_train.values.ravel())#模型準(zhǔn)確率

#預(yù)測(cè)準(zhǔn)確率result=pd.DataFrame(result)#預(yù)測(cè)結(jié)果轉(zhuǎn)換為數(shù)據(jù)框ff=Data.iloc[~index,0]#提取預(yù)測(cè)樣本的交易日期#將預(yù)測(cè)結(jié)果與實(shí)際結(jié)果整合在一起,進(jìn)行比較pm1={'交易日期':ff.values,'預(yù)測(cè)結(jié)果':result.iloc[:,0].values,'實(shí)際結(jié)果':y_test.iloc[:,0].values}result1=pd.DataFrame(pm1)z=result1['預(yù)測(cè)結(jié)果'].values-result1['實(shí)際結(jié)果'].valuesR=len(z[z==0])/len(z)#預(yù)測(cè)準(zhǔn)確率#print(code,':',sc,R)基于邏輯回歸的量化投資策略實(shí)現(xiàn)第9章

(4)計(jì)算投資組合的

溫馨提示

  • 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)論