Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 9-5.量化投資模型與實現(xiàn)_第1頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 9-5.量化投資模型與實現(xiàn)_第2頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 9-5.量化投資模型與實現(xiàn)_第3頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 9-5.量化投資模型與實現(xiàn)_第4頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 9-5.量化投資模型與實現(xiàn)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章

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

根據(jù)排名結(jié)果提取排名20只股票代碼構(gòu)建投資組合,并批量獲取投資組合中每只股票代碼的交易數(shù)據(jù),同時導(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)基于邏輯回歸的量化投資策略實現(xiàn)第9章

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

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

(2)技術(shù)指標(biāo)的計算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)、漲跌趨勢指標(biāo)合并為一個數(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={'漲跌趨勢':y}Y=pd.DataFrame(Y)Data=tempdata.join(Y)Data=Data.dropna()#去掉空值Data=Data[Data.iloc[:,6].values!=0]#去掉第6列為0的數(shù)據(jù)基于邏輯回歸的量化投資策略實現(xiàn)第9章

(3)邏輯回歸漲跌預(yù)測模型#訓(xùn)練和預(yù)測數(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ù)測結(jié)果sc=clf.score(x_train,y_train.values.ravel())#模型準(zhǔn)確率

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

(4)計算投資組合的收益率ifsc>0.7:r_list=[]fortinrange(len(result1)-1):ifresult1['預(yù)測結(jié)果'].values[t]==1:p2=data.loc[data['trade_date'].values==result1['交易日期'].values[t+1],'close'].valuesp1=data.loc[data['trade_date'].values==result1['交易日期'].values[t+1],'open'].valuesr=(p2-p1)/p1r_list.append(r)r_stk=sum(r_list)r_total=r_total+r_stkprint(code,':',r_stk)print('投資組合收益率:',r_total)hs300=pd.read_excel('hs300.xlsx')x1=hs300['trade_date'].values>=20171101x2=hs300['trade_date'].values<=20171231index=x1&x2p=hs300.iloc[index,2].valuesr_hs300=(p[len(p)-1]-p[0])/p[0]print('滬深300同期收益率:',r_hs300)(5)計算滬深同期收益率量化投資策略設(shè)計第9章

投資組合中符合策略執(zhí)行條件的各股票收益率,最后兩項為投資組合收益率和滬深300同期收益率。執(zhí)行結(jié)果如下所示:600016.SH:[0.10771528]601988.SH:[0.02845355]601939.SH:[0.12821477]601857.SH:[0.03613338]601628.SH:[0.01785019]601328.SH:[0.05009831]601318

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論