版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、如何運(yùn)用QIA開發(fā)量化投資策略局部 Hurst 指數(shù)在行業(yè)輪動(dòng)中的應(yīng)用國泰安信息技術(shù)有限公司 研究與創(chuàng)新中心“寬系列”產(chǎn)品之QIA目 錄策略背景13績效分析4策略開發(fā)2第 1 頁量化投資策略開發(fā)實(shí)例歷史回驗(yàn)策略背景策略原理基于重標(biāo)極差(R/S)分析方法基礎(chǔ)上的赫斯特指數(shù)(H)的研究是由英國水文專家HEHurst(19001978)在研究尼羅河水庫水流量和貯存能力的關(guān)系時(shí),發(fā)現(xiàn)用有偏的隨機(jī)游走(分形布朗運(yùn)動(dòng))能夠更好地描述水庫的長期存貯能力,并在此基礎(chǔ)上提出了用重標(biāo)極差(R/S)分析方法來建立赫斯特指數(shù)(H)。作為判斷時(shí)間序列數(shù)據(jù)遵從隨機(jī)游走還是有偏的隨機(jī)游走過程的指標(biāo)本策略首先提取行業(yè)指數(shù)及成
2、分股數(shù)據(jù);其次,計(jì)算行業(yè)指數(shù)的hurst指數(shù);最后,當(dāng)行業(yè)指數(shù)的hurst斜率由負(fù)變?yōu)檎?且hurst比均值低時(shí),且行業(yè)指數(shù)處于近期高位,則做空成分股;若行業(yè)指數(shù)處于低位,則做多成分股。第 3 頁量化投資策略開發(fā)實(shí)例策略背景策略流程第 4 頁量化投資策略開發(fā)實(shí)例數(shù)據(jù)提取提取行業(yè)指數(shù)及成分股數(shù)據(jù);初始化及交易規(guī)則設(shè)置計(jì)算行業(yè)指數(shù)的hurst指數(shù);交易規(guī)則設(shè)置當(dāng)行業(yè)指數(shù)的hurst斜率由負(fù)變?yōu)檎?且hurst比均值低時(shí),且行業(yè)指數(shù)處于近期高位,則做空成分股;若行業(yè)指數(shù)處于低位,則做多成分股。策略開發(fā)策略配置StrategyCfg.xml Stkcd.xml編寫主程序hurst.m回驗(yàn)配置BackT
3、estCfg.xml績效分析對策略函數(shù)的名稱、參數(shù)、時(shí)間、交易標(biāo)的及所需數(shù)據(jù)的配置策略流程的實(shí)現(xiàn)對策略回驗(yàn)參數(shù)、交易品種交易費(fèi)用、績效指標(biāo)的數(shù)據(jù)參數(shù)的配置第5頁量化投資策略開發(fā)實(shí)例命令窗口運(yùn)行界面工具運(yùn)行Stkcd.xml配置 . 每個(gè)code標(biāo)簽下,ContractMultiplier、Currency、MarginLevel、MaxShare、為實(shí)時(shí)交易部分配置,歷史回驗(yàn)設(shè)置無效。ContractMultiplier:合約乘數(shù)Currency:貨幣種類MarginLevel:交易保證金比例MaxShare:當(dāng)前合約的最大持倉量exchangeType 表示市場類型枚舉id:交易標(biāo)的代碼第
4、頁市場類型枚舉SZSE深圳證券交易所SSE上海證券交易所HKEX香港聯(lián)合交易所CFFEX 中國金融期貨交易所ZCE鄭州期貨交易所DCE 大連期貨交易所SHFE上海期貨交易所策略開發(fā)交易標(biāo)的配置%Stkcd.xml名字可更換StrategyCfg.xml配置 第 頁策略開發(fā)策略運(yùn)行配置全景展示策略開發(fā)函數(shù)名稱及調(diào)倉配置StrategyCfg.xml配置 標(biāo)簽strategyFunction(用途:用戶編寫的策略函數(shù)名稱):name填入策略函數(shù)名。標(biāo)簽strategyArguments(用途:策略的參數(shù)配置):rebalanceCycle:重平衡周期,策略回驗(yàn)時(shí),每過rebalanceCycle根
5、bar將進(jìn)行一次投資決策,計(jì)算目標(biāo)持倉。Bar的大小取決于returnCalFrequency;returnCalFrequency:計(jì)算收益率的頻率第 6 頁量化投資策略開發(fā)實(shí)例%StrategyCfg.xml名字可更換策略開發(fā)策略數(shù)據(jù)及緩存配置StrategyCfg.xml配置標(biāo)簽FactorDataCfg(用途:策略的時(shí)間及標(biāo)的配置)dateListType:表示日期類型:Trading,交易日;Working,工作日;localPath:本地Mat緩存文件的存儲路徑(絕對路徑),Matlab中,pwd表示當(dāng)前的工作空間路徑;periodType:交易時(shí)間配置信息;tickerList:
6、表示讀取的證券代碼列表,可以是定義交易標(biāo)的的xml文件路徑名稱,也可以是板塊,支持的板塊列表有:(AllAStock,SHA,SZA,AllBStock,SHB,SZB,HS300)第 6 頁量化投資策略開發(fā)實(shí)例%StrategyCfg.xml名字可更換標(biāo)簽data(用途:策略決策所需數(shù)據(jù)配置)策略決策時(shí)每需要一種數(shù)據(jù),則需要配置一個(gè)data標(biāo)簽decisionDataLength:每次策略函數(shù)計(jì)算目標(biāo)持倉權(quán)重時(shí)所需的改數(shù)據(jù)長度,必須為大于等于1的整數(shù);fieldname:數(shù)據(jù)的字段名;frequency:數(shù)據(jù)的頻率,有SEC01(1秒),SEC05(5秒),SEC15(15秒),SEC30(
7、30秒),MIN01(1分),MIN05(5分),MIN15(15分),DAY01(1天);第 頁策略開發(fā)策略數(shù)據(jù)配置StrategyCfg.xml配置 第 頁策略開發(fā)策略運(yùn)行配置全景展示策略開發(fā)主程序第 7 頁function portfolio, newStateMatirx = hurst( decisionData, stateMatirx )輸入: 1、decisionData: 結(jié)構(gòu)體,存儲策略決策所需數(shù)據(jù); (1) decisionData.time: 策略決策的時(shí)間 (2) decisionData.varList: 策略決策所需數(shù)據(jù)的名稱列表; (3) decisionDat
8、a.factorN_frequency:策略決策所需數(shù)據(jù)結(jié)構(gòu)體 (4) decisionData.factorN_frequency.data: 策略決策所需數(shù)據(jù)矩陣; (5) decisionData.factorN_frequency.timeList:矩陣的列索引,表示矩陣中每列代表的時(shí)間點(diǎn); (6) decisionData.factorN_frequency.tickerList:矩陣的行索引,表示矩陣中每列代表的交易標(biāo)的; 2、 stateMatrix: 策略函數(shù)上次存儲的狀態(tài)信息;輸出: 1、 portfolio: 策略函數(shù)經(jīng)過運(yùn)算后得到的,目標(biāo)投資組合資金權(quán)重序列,維度必須和訂
9、閱的交易標(biāo)的數(shù)目相同;量化投資策略開發(fā)實(shí)例策略開發(fā)數(shù)據(jù)提取% 變量賦值for i = 1:10 eval(sci_Cp(,int2str(i),1:size(decisionData.CP_DAY01.data,2) = decisionData.CP_DAY01.data(decisionData.tickerList = 10100003,int2str(i-1),:););endsci_lnRtn = log(sci_Cp(:,2:end)./sci_Cp(:,1:end-1);len = size(sci_lnRtn,2);portfolio = zeros(length(decisi
10、onData.tickerList),1);% 初始化if isempty(stateMatrix) , , alldata = xlsread(hurst.xlsx,2); orgidList = zeros(10,50); for i = 1:10 eval(SZ_0000,int2str(30+i+1), = cellstr(int2str(cell2mat(alldata(:,int2str(2*i),);); eval(SZ_0000,int2str(30+i+1),(:,2) = ExchangeType.SSE;); eval(orgidList_0000,int2str(30+
11、i+1),=getOrgidByTradingCode(SZ_0000,int2str(30+i+1),2013-09-04,2013-09-04);); eval(orgidList(,int2str(i),1:length(orgidList_0000,int2str(30+i+1),) = orgidList_0000,int2str(30+i+1),;); end for i = len-239:len for j = 1:10 temp = sci_lnRtn(j,i-240:i-1); hurst(j,i -240) = pute(temp); end endelse hurst
12、= stateMatrix.hurst(:,2:end); orgidList = idList; for i = 1:10 hurst(i,240) = pute(sci_lnRtn(i,end-239:end); end end第 8 頁量化投資策略開發(fā)實(shí)例策略開發(fā)交易規(guī)則準(zhǔn)備、設(shè)置% 交易規(guī)則設(shè)置準(zhǔn)備hurst_Rtn = diff(hurst,2);sci_Cp_sort = sort(sci_Cp(:,end-20:end),2);% 交易規(guī)則設(shè)置sell = (hurst_Rtn(:,end-1).*hurst_Rtn(:,end) 0 & hurst(:,end) sci_Cp_
13、sort(:,15);buy = (hurst_Rtn(:,end-1).*hurst_Rtn(:,end) 0 & hurst(:,end) mean(hurst,2) & sci_Cp(:,end) 0) 0 & sum(portfolio0 portfolio(dirFactorIndex0) = portfolio(dirFactorIndex0)/sum(dirFactorIndex0)*0.5; portfolio(dirFactorIndex0) = portfolio(dirFactorIndex0)/sum(dirFactorIndex0) = portfolio(dirFa
14、ctorIndex0)/sum(dirFactorIndex0); portfolio(dirFactorIndex0) = portfolio(dirFactorIndex0)/sum(dirFactorIndex0);end% 狀態(tài)變量賦值newStateMatrix.hurst = hurst; idList = orgidList;第 9 頁量化投資策略開發(fā)實(shí)例策略開發(fā)交易規(guī)則設(shè)置function FactorMatrix,FactorNum=HurstFactorization(x) %hurstFactorization N=floor(x/4); FactorNum=0; for
15、 i=4:N if mod(x,i)=0 FactorNum=FactorNum+1; FactorMatrix(FactorNum,:)=i,x/i; end endend function pute(Xtimes) pute %example pute(rand(1,240) LengthX=length(Xtimes); FactorMatrix,FactorNum=HurstFactorization(LengthX); LogRS=zeros(FactorNum,1); LogN=zeros(FactorNum,1); for i=1:FactorNum dataM=reshape(
16、Xtimes,FactorMatrix(i,:); MeanM=mean(dataM); SubM =dataM - repmat( MeanM,FactorMatrix(i,1),1) ; RVector=zeros(FactorMatrix(i,2),1); SVector=zeros(FactorMatrix(i,2),1); for j=1:FactorMatrix(i,2) %SubVector=zeros(FactorMatrix(i,1),1); SubVector=cumsum( SubM(:,j); RVector(j)=max(SubVector)-min(SubVecto
17、r); SVector(j)=std( dataM(:,j) ); end LogRS(i)=log( sum( RVector./SVector)/ FactorMatrix(i,2) ); LogN(i)=log( FactorMatrix(i,1) ); end HurstExponent=polyfit(LogN,LogRS,1); HurstExponent = HurstExponent(1);end第 10 頁量化投資策略開發(fā)實(shí)例策略開發(fā)全部程序展示function portfolio, newStateMatrix = hurst( decisionData, stateMat
18、rix )% 局部 Hurst 指數(shù)在行業(yè)輪動(dòng)中的應(yīng)用 % 變量賦值for i = 1:10 eval(sci_Cp(,int2str(i),1:size(decisionData.CP_DAY01.data,2) = decisionData.CP_DAY01.data(decisionData.tickerList = 10100003,int2str(i-1),:););endsci_lnRtn = log(sci_Cp(:,2:end)./sci_Cp(:,1:end-1);len = size(sci_lnRtn,2);portfolio = zeros(length(decisio
19、nData.tickerList),1);% 初始化if isempty(stateMatrix) , , alldata = xlsread(hurst.xlsx,2); orgidList = zeros(10,50); for i = 1:10 eval(SZ_0000,int2str(30+i+1), = cellstr(int2str(cell2mat(alldata(:,int2str(2*i),);); eval(SZ_0000,int2str(30+i+1),(:,2) = ExchangeType.SSE;); eval(orgidList_0000,int2str(30+i
20、+1),=getOrgidByTradingCode(SZ_0000,int2str(30+i+1),2013-09-04,2013-09-04);); eval(orgidList(,int2str(i),1:length(orgidList_0000,int2str(30+i+1),) = orgidList_0000,int2str(30+i+1),;); end for i = len-239:len for j = 1:10 temp = sci_lnRtn(j,i-240:i-1); hurst(j,i -240) = pute(temp); end endelse hurst =
21、 stateMatrix.hurst(:,2:end); orgidList = idList; for i = 1:10 hurst(i,240) = pute(sci_lnRtn(i,end-239:end); end end% 交易規(guī)則設(shè)置準(zhǔn)備hurst_Rtn = diff(hurst,2);sci_Cp_sort = sort(sci_Cp(:,end-20:end),2); % 交易規(guī)則設(shè)置sell = (hurst_Rtn(:,end-1).*hurst_Rtn(:,end) 0 & hurst(:,end) sci_Cp_sort(:,15);buy = (hurst_Rtn(
22、:,end-1).*hurst_Rtn(:,end) 0 & hurst(:,end) mean(hurst,2) & sci_Cp(:,end) 0) 0 & sum(portfolio0 portfolio(dirFactorIndex0) = portfolio(dirFactorIndex0)/sum(dirFactorIndex0)*0.5; portfolio(dirFactorIndex0) = portfolio(dirFactorIndex0)/sum(dirFactorIndex0) = portfolio(dirFactorIndex0)/sum(dirFactorInd
23、ex0); portfolio(dirFactorIndex0) = portfolio(dirFactorIndex0)/sum(dirFactorIndex0);end第11頁量化投資策略開發(fā)實(shí)例策略開發(fā)全部程序展示% 狀態(tài)變量賦值newStateMatrix.hurst = hurst; idList = orgidList; endfunction FactorMatrix,FactorNum=HurstFactorization(x) %hurstFactorization %code by %2008-10-07 N=floor(x/4); FactorNum=0; for i=4
24、:N if mod(x,i)=0 FactorNum=FactorNum+1; FactorMatrix(FactorNum,:)=i,x/i; end endend function pute(Xtimes) pute %code by %2008-10-07 %example pute(rand(1,240) LengthX=length(Xtimes); FactorMatrix,FactorNum=HurstFactorization(LengthX); LogRS=zeros(FactorNum,1); LogN=zeros(FactorNum,1); for i=1:FactorN
25、um dataM=reshape(Xtimes,FactorMatrix(i,:); MeanM=mean(dataM); SubM =dataM - repmat( MeanM,FactorMatrix(i,1),1) ; RVector=zeros(FactorMatrix(i,2),1); SVector=zeros(FactorMatrix(i,2),1); for j=1:FactorMatrix(i,2) %SubVector=zeros(FactorMatrix(i,1),1); SubVector=cumsum( SubM(:,j); RVector(j)=max(SubVec
26、tor)-min(SubVector); SVector(j)=std( dataM(:,j) ); end LogRS(i)=log( sum( RVector./SVector)/ FactorMatrix(i,2) ); LogN(i)=log( FactorMatrix(i,1) ); end HurstExponent=polyfit(LogN,LogRS,1); HurstExponent = HurstExponent(1);end第11頁量化投資策略開發(fā)實(shí)例策略開發(fā)回驗(yàn)配置全景展示BackTestCfg.xml配置 第 頁策略開發(fā)回驗(yàn)配置BackTestCfg.xml配置 標(biāo)簽
27、backtestArguments(用途:策略回驗(yàn)的參數(shù)配置)actionDelay:交易延遲,策略從投資決策到通過交易生成持倉的延遲。必須為非負(fù)整數(shù)。比如actionDelay為2,returnCalFrequency為1,returnCalFrequency為 TimeIntervals.SEC05,將會(huì)以決策時(shí)點(diǎn)2*5 = 10秒后的價(jià)格成交;orgidMode:由交易代碼轉(zhuǎn)為orgid的模式。(注意:對于股票而言,同一交易代碼可能由于借殼上市等原因,隨著時(shí)間區(qū)間不同,其意義會(huì)發(fā)生變化,系統(tǒng)后臺會(huì)將交易代碼轉(zhuǎn)為orgid對股票而言,以公司作為證券關(guān)聯(lián)對象的唯一碼。)對股票而言,如果用戶輸
28、入all,系統(tǒng)將會(huì)訂閱回驗(yàn)區(qū)間內(nèi)使用過該交易代碼的所有行情,通過orgid進(jìn)行區(qū)分,同樣,通過orgid區(qū)分策略函數(shù)返回的持倉權(quán)重序列;如果用戶輸入latest,則系統(tǒng)會(huì)訂閱最新使用該交易代碼的行情,同樣通過orgid區(qū)分。如果交易代碼列表中不存在股票標(biāo)的,則不用考慮該屬性;第 12 頁量化投資策略開發(fā)實(shí)例策略開發(fā)回驗(yàn)配置 標(biāo)簽backtestArguments(用途:策略回驗(yàn)的參數(shù)配置)repoFrequency:債券的回購頻率。支持DAY01(每日回購)和DAY07(每七日回購)兩個(gè)枚舉。系統(tǒng)將會(huì)據(jù)此獲取債券的杠桿費(fèi)用。注意:當(dāng)交易代碼列表不存在債券標(biāo)的時(shí),則不用考慮該屬性;reportD
29、isplay:excel績效報(bào)表展示開關(guān),當(dāng)設(shè)為On的時(shí)候,策略回驗(yàn)結(jié)束后會(huì)顯示策略績效的excel績效報(bào)告;設(shè)為其他值時(shí)則不會(huì)打??;resultSave:excel績效報(bào)表保存開關(guān),當(dāng)設(shè)為On的時(shí)候,策略回驗(yàn)結(jié)束后會(huì)被保存;設(shè)為其他值時(shí)則不會(huì)打?。坏?12 頁量化投資策略開發(fā)實(shí)例 第 頁品種的枚舉類型securityTypeStockA A股StockBB股Index指數(shù)Fund基金B(yǎng)ond債券CommodityFuture商品期貨IndexFuture 指數(shù)期貨標(biāo)簽transactionCost(用途:按品種配置交易費(fèi)用) 每配置一個(gè)品種需要增加一個(gè)標(biāo)簽,需要按買入和賣出分別配置交易費(fèi)用。buy:該品種買入的交易費(fèi)用比例;securityType:品種的枚舉類型;sell:該品種賣出的交易費(fèi)用比例;策略開發(fā)回驗(yàn)配置 第 頁標(biāo)簽performanceAnalysisData(用途:策略績效指標(biāo)的數(shù)據(jù)參數(shù)配置) 計(jì)算績效指標(biāo)所需數(shù)據(jù)目前只支持指數(shù)收益率,且策略的簡單收益率序列不需要配置,系統(tǒng)會(huì)自動(dòng)傳入到每個(gè)績效評價(jià)函數(shù)中。code:如果評價(jià)指標(biāo)計(jì)算需要指數(shù)收益率,屬性值為指數(shù)代碼,比如計(jì)算特雷諾指數(shù)需要滬深300收益率,則填寫000300;如果填,認(rèn)為該標(biāo)簽描述的是評價(jià)指標(biāo)的參數(shù),value的值不能為空;funName:計(jì)算績效指標(biāo)的函數(shù)名稱,必須和per
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)塔吊司機(jī)合同范例
- 招聘剪輯合同范例
- 房租租住合同范例
- 公司簽訂國際合同范例
- 家電銷售供貨合同范例
- 橋梁設(shè)計(jì)施工合同范例
- 手機(jī)租賃糾紛合同范例
- 企業(yè)店過戶合同范例
- 委托肉類加工合同范例
- 包水果合同范例
- TFSRS 2.4-2019“撫松人參”加工技術(shù)規(guī)程 第4部分:生曬參片
- GB/T 32218-2015真空技術(shù)真空系統(tǒng)漏率測試方法
- GB/T 18742.2-2017冷熱水用聚丙烯管道系統(tǒng)第2部分:管材
- GB 22128-2019報(bào)廢機(jī)動(dòng)車回收拆解企業(yè)技術(shù)規(guī)范
- DB32-T 4416-2022《高延性纖維增強(qiáng)水泥基復(fù)合材料加固砌體結(jié)構(gòu)應(yīng)用技術(shù)規(guī)程》
- 復(fù)讀生勵(lì)志主題班會(huì)
- 2023年復(fù)旦大學(xué)博士研究生科研計(jì)劃書-模板
- 膠囊內(nèi)鏡的臨床與應(yīng)用
- 《不刷牙的小巨人》演講比賽PPT
- 2020版《辦公建筑設(shè)計(jì)標(biāo)準(zhǔn)》
- 兒科醫(yī)生二次分配(兒科醫(yī)生二次分配方案)
評論
0/150
提交評論