Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-3.量化投資策略設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-3.量化投資策略設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-3.量化投資策略設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-3.量化投資策略設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
Python金融數(shù)據(jù)分析與挖掘(微課版) 課件 10-3.量化投資策略設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第10章

股票價(jià)格形態(tài)聚類(lèi)與收益分析函數(shù)定義及使用方法訓(xùn)練樣本與預(yù)測(cè)樣本的構(gòu)建量化投資策略設(shè)計(jì)函數(shù)定義及使用方法第10章

將以上介紹的股票價(jià)格形態(tài)特征提取定義為函數(shù)FR1defFR1(DA,t_trd1,t_trd2,num):

#輸入:

#DA--2017年股票交易數(shù)據(jù)

#t_trd1--聚類(lèi)數(shù)據(jù)區(qū)間開(kāi)始日期

#t_trd2--聚類(lèi)數(shù)據(jù)區(qū)間結(jié)束日期

#num--基于總體規(guī)模與投資效率指標(biāo)的綜合評(píng)價(jià)方法提取樣本個(gè)數(shù)

#輸出:

#Data--形態(tài)特征數(shù)據(jù)

#KeyData--關(guān)鍵價(jià)格點(diǎn)數(shù)據(jù)

#KeyData_index--關(guān)鍵價(jià)格點(diǎn)對(duì)應(yīng)序號(hào)函數(shù)定義及使用方法第10章

將以上介紹的形態(tài)特征聚類(lèi)與收益率計(jì)算定義為函數(shù)FR2defFR2(DA,Data,KeyData,KeyData_index,s_trd1,s_trd2,class_num):

#輸入:

#DA--2017年股票交易數(shù)據(jù)

#Data--形態(tài)特征數(shù)據(jù)

#KeyData--關(guān)鍵價(jià)格點(diǎn)數(shù)據(jù)

#KeyData_index--關(guān)鍵價(jià)格點(diǎn)對(duì)應(yīng)序號(hào)

#s_trd1--收益率計(jì)算持有期開(kāi)始日期

#s_trd2--收益率計(jì)算持有期結(jié)束日期

#class_num--聚類(lèi)個(gè)數(shù)

#輸出:

#Data_c--形態(tài)特征數(shù)據(jù)+聚類(lèi)結(jié)果列

#KeyData_c--關(guān)鍵價(jià)格點(diǎn)數(shù)據(jù)+聚類(lèi)結(jié)果列

#KeyData_index_c--關(guān)鍵價(jià)格點(diǎn)對(duì)應(yīng)序號(hào)+聚類(lèi)結(jié)果列

#D--每只股票代碼、所屬聚類(lèi)類(lèi)別、收益率組成的數(shù)據(jù)框

#list_cr--每類(lèi)股票的總收益訓(xùn)練樣本與預(yù)測(cè)樣本的構(gòu)建第10章

選用2017年5月1日—2017年7月31日和2017年6月1日—2017年8月31日兩個(gè)計(jì)算周期的交易數(shù)據(jù)提取股票價(jià)格形態(tài)特征進(jìn)行聚類(lèi),并分別以2017年8月1日—2017年8月31日和2017年9月1日—2017年9月30日兩個(gè)持有期計(jì)算每個(gè)類(lèi)別的平均收益率,如果類(lèi)平均收益率排名前5,則該類(lèi)中所有股票記為+1類(lèi),否則記為?1類(lèi),并以此構(gòu)建訓(xùn)練樣本。importpandasaspdDA=pd.read_excel('DA.xlsx')R1=FR1(DA,'2017-05-01','2017-07-31',400)R2=FR2(DA,R1[0],R1[1],R1[2],'2017-08-01','2017-08-31',20)dt1=R2[0]

#2017年5月1日至2017年7月31日的股票價(jià)格形態(tài)特征數(shù)據(jù)+聚類(lèi)結(jié)果列cr1=pd.Series(R2[4])#對(duì)應(yīng)每類(lèi)的平均收益率crr=cr1.sort_values(ascending=False)#對(duì)類(lèi)平均收益率序列cr1按降序排序cr=list(crr.index)

#取對(duì)應(yīng)的類(lèi)編號(hào)(排序后的數(shù)據(jù))foriinrange(len(crr)):

#類(lèi)平均收益率排名前5的類(lèi)中所有股票標(biāo)記為1

ifi<5:

dt1[dt1[:,len(dt1[0,:])-1]==cr[i],len(dt1[0,:])-1]=1

#(聚類(lèi)結(jié)果列變?yōu)橐蜃兞?1)dt1[dt1[:,len(dt1[0,:])-1]!=1,len(dt1[0,:])-1]=-1

#(聚類(lèi)結(jié)果列變?yōu)橐蜃兞?1)訓(xùn)練樣本與預(yù)測(cè)樣本的構(gòu)建第10章

R1=FR1(DA,'2017-06-01','2017-08-31',400)R2=FR2(DA,R1[0],R1[1],R1[2],'2017-09-01','2017-09-30',20)dt2=R2[0]

#2017年6月1日至2017年8月31日的股票價(jià)格形態(tài)特征數(shù)據(jù)+聚類(lèi)結(jié)果列cr2=pd.Series(R2[4])crr=cr2.sort_values(ascending=False)cr=list(crr.index)foriinrange(len(crr)):ifi<5:dt2[dt2[:,len(dt2[0,:])-1]==cr[i],len(dt2[0,:])-1]=1

#(聚類(lèi)結(jié)果列變?yōu)橐蜃兞?1)dt2[dt2[:,len(dt2[0,:])-1]!=1,len(dt2[0,:])-1]=-1

#(聚類(lèi)結(jié)果列變?yōu)橐蜃兞?1)#構(gòu)造訓(xùn)練樣本importnumpyasnpdt=np.vstack((dt2,dt1))x=dt[:,1:-1]#訓(xùn)練樣本的Xy=dt[:,len(dt[0,:])-1]#訓(xùn)練樣本的Y訓(xùn)練樣本與預(yù)測(cè)樣本的構(gòu)建第10章

對(duì)于預(yù)測(cè)樣本,選用的是2017年7月1日—2017年9月30日的交易數(shù)據(jù)計(jì)算形態(tài)特征,這里調(diào)用前面定義的FR1函數(shù)來(lái)實(shí)現(xiàn)。#預(yù)測(cè)樣本的構(gòu)建R1=FR1(DA,'2017-07-01','2017-09-30',400)dt3=R1[0]x1=dt3[:,1:]#交易數(shù)據(jù)為2017年7月1日~2017年9月30日的股票價(jià)格形態(tài)特征數(shù)據(jù)量化投資策略設(shè)計(jì)第10章

根據(jù)前面構(gòu)建的訓(xùn)練樣本和預(yù)測(cè)樣本,利用支持向量機(jī)模型進(jìn)行訓(xùn)練和預(yù)測(cè),如果預(yù)測(cè)結(jié)果為+1,表示該只股票在未來(lái)一個(gè)月內(nèi)可能獲得比較好的收益,對(duì)該只股票以持有期為2017年10月1日—2017年10月31日進(jìn)行計(jì)算投資收益率(期初收盤(pán)價(jià)買(mǎi)入,期末收盤(pán)價(jià)賣(mài)出),最終將所有預(yù)測(cè)結(jié)果為+1的股票收益率求和,即得到投資策略的總收益率,并以同期的滬深300指數(shù)收益率作為基準(zhǔn)進(jìn)行比較。fromsklearnimportsvmclf=svm.SVC()clf.fit(x,y)res=clf.predict(x1)#支持向量機(jī)預(yù)測(cè)結(jié)果code=dt3[res==1,0]list_r=[]#預(yù)定義列表,用于存放預(yù)測(cè)結(jié)果為+1的股票收益率list_code=[]#預(yù)定義列表,用于存放預(yù)測(cè)結(jié)果為+1的股票代碼foriinrange(len(code)):

I1=DA['Trddt'].values>='2017-10-01'

I2=DA['Trddt'].values<='2017-10-31'

I3=DA['Stkcd'].values==code[i]

I=I1&I2&I3

dta=DA.iloc[I,[2]]['Clsprc'].values

iflen(dta)>1:

r=(dta[len(dta)-1]-dta[0])/dta[0]

list_r.append(r)

list_code.append(code[i])result={'code':list_code,'r':list_r}result=pd.DataFrame(result)#結(jié)果整理total_r=sum(list_r)

#總收益率####滬深300指數(shù)同期收益率的計(jì)算indx300=pd.read_excel('index300.xlsx')I1=indx300['Idxtrd01'].values>='2017-10-01'I2=indx300['Idxtrd01'].values<='2017-10-31'In=I1&I2da=indx300.loc[In,'Idxtrd05'].valuesindex300_r=(da[len(da)-1]-da[0])/da[0]量化投資策略設(shè)計(jì)第10章

其中dt3為待預(yù)測(cè)的形態(tài)特征數(shù)據(jù)集,res為支持向量機(jī)的預(yù)測(cè)結(jié)果。例如,行序號(hào)為10、13的股票代碼000333和002517的股票預(yù)測(cè)結(jié)果為+1,表示未來(lái)持有期為1個(gè)月可能獲得較好的收益。事實(shí)result已

溫馨提示

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

評(píng)論

0/150

提交評(píng)論