回歸法多因子策略_第1頁
回歸法多因子策略_第2頁
回歸法多因子策略_第3頁
回歸法多因子策略_第4頁
回歸法多因子策略_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

如何運(yùn)用QIA開發(fā)量化投資策略

——回歸法多因子策略國泰安信息技術(shù)有限公司

研究與創(chuàng)新中心“寬系列”產(chǎn)品之QIA目錄策略背景13績效分析4策略開發(fā)2第1頁量化投資策略開發(fā)實(shí)例歷史回驗(yàn)策略背景——策略原理回歸法多因子策略就是用過去的股票的收益率對多因子進(jìn)行回歸,得到一個(gè)回歸方程,然后把最新的因子值代入回歸方程得到一個(gè)對未來股票收益的預(yù)判,最后以此為依據(jù)進(jìn)行選股?;貧w法的優(yōu)點(diǎn)是能夠比較及時(shí)地調(diào)整股票對各因子的敏感性,而且不同的股票對不同的因子的敏感性也可以不同?;貧w法的缺點(diǎn)是容易受到極端值的影響,在股票對因子敏感度變化較大的市場情況下效果也比較差。本策略的實(shí)證對象為所有滬深300成分股,以2013年2月22日至2013年5月20日為回驗(yàn)周期,利用過去22天內(nèi)所有風(fēng)險(xiǎn)因子和收益率作為決策依據(jù),根據(jù)預(yù)期收益率大小對前50組最大的做多,后50組最小的做空。第2頁量化投資策略開發(fā)實(shí)例策略背景——策略原理

因子回報(bào)計(jì)算采取橫截面回歸(Cross-SectionalRegression)的方法:

y——股票的超額收益率X——回歸系數(shù)

f——因子回報(bào)——?dú)埐钭ⅲ?/p>

1)為了區(qū)別大市值股票和小市值股票,對原來的樣本進(jìn)行加權(quán),權(quán)重由流通市值來決定。2)為了消除異常值的影響,采取穩(wěn)健回歸的方法。第頁多因子模型的優(yōu)點(diǎn)反應(yīng)迅速:多因子模型可以對股票的特征變化快速進(jìn)行反應(yīng)。股票因子取值的變化很快就能反映在其估計(jì)的波動(dòng)率上。模型穩(wěn)健:多因子風(fēng)險(xiǎn)控制模型穩(wěn)健、可解釋性強(qiáng)。因子間的關(guān)系相對于股票間關(guān)系更加穩(wěn)定估計(jì)誤差小:多因子模型通過將股票的收益進(jìn)行分解,減少了參數(shù),估計(jì)相對穩(wěn)定,所需歷史數(shù)據(jù)較短,更能反映投資組合當(dāng)前的風(fēng)險(xiǎn)狀況。如:N只股票k個(gè)因子,僅需估計(jì)k(k+1)/2+N個(gè)參數(shù)。如,500只股票34個(gè)因子,初等模型需估計(jì)125250個(gè)參數(shù),多因子模型僅需估計(jì)1078個(gè)參數(shù)。可擴(kuò)展性強(qiáng):可以推廣至多個(gè)地區(qū)(大陸、美國等)、多個(gè)品種(股票、債券、期貨等)第頁策略背景——策略流程第3頁量化投資策略開發(fā)實(shí)例策略開發(fā)策略配置StrategyCfg.xmlStkcd.xml編寫主程序factors.m回驗(yàn)配置BackTestCfg.xml績效分析對策略函數(shù)的名稱、參數(shù)、時(shí)間、交易標(biāo)的及所需數(shù)據(jù)的配置策略流程的實(shí)現(xiàn)對策略回驗(yàn)參數(shù)、交易品種交易費(fèi)用、績效指標(biāo)的數(shù)據(jù)參數(shù)的配置第4頁量化投資策略開發(fā)實(shí)例命令窗口運(yùn)行界面工具運(yùn)行Stkcd.xml配置<?xmlversion="1.0"encoding="utf-8"?><Strategy><codeContractMultiplier=""Currency="CNY"MarginLevel="1"MaxShare=""exchangeType=""id="HS300"name="滬深300成分股"/></Strategy>

每個(gè)code標(biāo)簽下,ContractMultiplier、Currency、MarginLevel、MaxShare、為實(shí)時(shí)交易部分配置,歷史回驗(yàn)設(shè)置無效。ContractMultiplier:合約乘數(shù)Currency:貨幣種類MarginLevel:交易保證金比例MaxShare:當(dāng)前合約的最大持倉量exchangeType表示市場類型枚舉id:交易標(biāo)的代碼第5頁市場類型枚舉SZSE深圳證券交易所SSE上海證券交易所HKEX香港聯(lián)合交易所CFFEX中國金融期貨交易所ZCE鄭州期貨交易所DCE大連期貨交易所SHFE上海期貨交易所策略開發(fā)——交易標(biāo)的配置%Stkcd.xml名字可更換量化投資策略開發(fā)實(shí)例StrategyCfg.xml配置<?xmlversion="1.0"encoding="utf-8"?><Strategy><strategyFunctionname="Factors"/><strategyArguments

rebalanceCycle="1"returnCalFrequency="TimeIntervals.DAY01"/><FactorDataCfg

dateListType="DateListType.Trading"localPath=“pwd\cacheData"periodType="PeriodType.StockTradingPeriod"tickerList="stkcd.xml"/><data

decisionDataLength="22"fieldname="QF_MonthlyReturnWNCDR"frequency="TimeIntervals.DAY01"/>……

<data

decisionDataLength="22"fieldname="QF_EPSF"frequency="TimeIntervals.DAY01"/><data

decisionDataLength="22"fieldname="Rtn"frequency="TimeIntervals.DAY01"/></Strategy>第6頁策略開發(fā)——策略運(yùn)行配置全景展示量化投資策略開發(fā)實(shí)例策略開發(fā)——函數(shù)名稱及調(diào)倉配置StrategyCfg.xml配置<?xmlversion="1.0"encoding="utf-8"?><Strategy><strategyFunctionname=“factors"/><strategyArguments

rebalanceCycle="1"returnCalFrequency="TimeIntervals.DAY01"/>標(biāo)簽strategyFunction(用途:用戶編寫的策略函數(shù)名稱):name填入策略函數(shù)名。標(biāo)簽strategyArguments(用途:策略的參數(shù)配置):rebalanceCycle:重平衡周期,策略回驗(yàn)時(shí),每過rebalanceCycle根bar將進(jìn)行一次投資決策,計(jì)算目標(biāo)目標(biāo)持倉。Bar的大小取決于returnCalFrequency;returnCalFrequency:計(jì)算收益率的頻率第7頁量化投資策略開發(fā)實(shí)例%StrategyCfg.xml名字可更換策略開發(fā)——策略數(shù)據(jù)及緩存配置StrategyCfg.xml配置<FactorDataCfg

dateListType="DateListType.Trading"localPath=“l(fā)ocalPath"periodType="PeriodType.StockTradingPeriod"tickerList="stkcd.xml"/>標(biāo)簽FactorDataCfg(用途:策略的時(shí)間及標(biāo)的配置)dateListType:表示日期類型:Trading,交易日;Working,工作日;localPath:本地Mat緩存文件的存儲路徑(絕對路徑),Matlab中,pwd表示當(dāng)前的工作空間路徑;periodType:交易時(shí)間配置信息;tickerList:表示讀取的證券代碼列表,可以是定義交易標(biāo)的的xml文件路徑名稱,也可以是板塊,支持的板塊列表有:(’AllAStock,’SHA’,’SZA’,’AllBStock’,’SHB’,’SZB’,’HS300’)第8頁量化投資策略開發(fā)實(shí)例%StrategyCfg.xml名字可更換<data

decisionDataLength="22"fieldname="QF_MonthlyReturnWNCDR"frequency="TimeIntervals.DAY01"/>……<data

decisionDataLength="22"fieldname="QF_EPSF"frequency="TimeIntervals.DAY01"/><data

decisionDataLength="22"fieldname="Rtn"frequency="TimeIntervals.DAY01"/></Strategy>標(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(30秒),MIN01(1分),MIN05(5分),MIN15(15分),DAY01(1天);第9頁策略開發(fā)——策略數(shù)據(jù)配置量化投資策略開發(fā)實(shí)例StrategyCfg.xml配置<?xmlversion="1.0"encoding="utf-8"?><Strategy><strategyFunctionname="Factors"/><strategyArguments

rebalanceCycle="1"returnCalFrequency="TimeIntervals.DAY01"/><FactorDataCfg

dateListType="DateListType.Trading"localPath=“l(fā)ocalPath"periodType="PeriodType.StockTradingPeriod"tickerList="stkcd.xml"/><data

decisionDataLength="22"fieldname="QF_MonthlyReturnWNCDR"frequency="TimeIntervals.DAY01"/>……<data

decisionDataLength="22"fieldname="QF_EPSF"frequency="TimeIntervals.DAY01"/><data

decisionDataLength="22"fieldname="Rtn"frequency="TimeIntervals.DAY01"/></Strategy>第10頁策略開發(fā)——策略運(yùn)行配置全景展示量化投資策略開發(fā)實(shí)例策略開發(fā)——主程序第11頁function[portfolio,newStateMatrix]=factors(tradingData,stateMatrix)輸入:

1、decisionData:結(jié)構(gòu)體,存儲策略決策所需數(shù)據(jù);

(1)decisionData.time:策略決策的時(shí)間(2)decisionData.varList:策略決策所需數(shù)據(jù)的名稱列表;

(3)decisionData.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)重序列,維度必須和訂閱的交易標(biāo)的數(shù)目相同;量化投資策略開發(fā)實(shí)例策略開發(fā)——數(shù)據(jù)提取%變量賦值

fori=1:size(tradingData.varList,1)eval([tradingData.varList{i},'=','tradingData.',tradingData.varList{i},'.data;']);

end

%初始化處理

portfolio=zeros(size(tradingData.(tradingData.varList{1}).data,1),1);

%回歸數(shù)據(jù)處理,Y為滬深300成分股前一天的收益率數(shù)據(jù),X為之前第22天的因子數(shù)據(jù)

%利用上月末的因子與本月末的收益率進(jìn)行橫截面回歸得到因子回報(bào)系數(shù);Y=Rtn_DAY01(:,end-1);

));%300*16矩陣,16個(gè)因子

X=NaN(size(Rtn_DAY01,1),(size(tradingData.varList,1)-2;

i=1;

forj=1:(size(tradingData.varList,1))

ifstrcmp(tradingData.varList{j},'CP_DAY01')~=1&&strcmp(tradingData.varList{j},'Rtn_DAY01')~=1x=eval(tradingData.varList{j});X(:,i)=x(:,1);i=i+1;

end

end第12頁量化投資策略開發(fā)實(shí)例策略開發(fā)——建立開平倉依據(jù)stats=regstats(Y,X);%橫截面回歸,忽略空置b=stats.beta;b=b(2:end);b_order=find(abs(b)<2);%若因子回報(bào)系數(shù)絕對值大于2則認(rèn)為是極端值,剔除該因子;R=X(:,b_order)*b(b_order);%回歸系數(shù)乘月末因子的值得到預(yù)期收益率[~,R_s]=sort(R);portfolio(R_s(end-50+1:end))=1/50;%大的50組做多portfolio(R_s(1:50))=-1/50;%小的50組做空

%狀態(tài)矩陣重新賦值newStateMatrix=stateMatrix;end第13頁量化投資策略開發(fā)實(shí)例策略開發(fā)——主程序整體展示function[portfolio,newStateMatrix]=factors(tradingData,stateMatrix)%%%回歸法多因子策略(實(shí)例3.2.3)%變量賦值

fori=1:size(tradingData.varList,1)eval([tradingData.varList{i},'=','tradingData.',tradingData.varList{i},'.data;']);

end

%初始化處理portfolio=zeros(size(tradingData.(tradingData.varList{1}).data,1),1);

%回歸數(shù)據(jù)處理,Y為滬深300成分股前一天的收益率數(shù)據(jù),X為之前第22天的因子數(shù)據(jù)

%利用上月末的因子與本月末的收益率進(jìn)行橫截面回歸得到因子回報(bào)系數(shù);Y=Rtn_DAY01(:,end-1);X=NaN(size(Rtn_DAY01,1),(size(tradingData.varList,1)-2));%300*16矩陣,16個(gè)因子i=1;

forj=1:(size(tradingData.varList,1))if

strcmp(tradingData.varList{j},'CP_DAY01')~=1&&strcmp(tradingData.varList{j},'Rtn_DAY01')~=1x=eval(tradingData.varList{j});X(:,i)=x(:,1);i=i+1;

end

end

stats=regstats(Y,X);%橫截面回歸,忽略空置b=stats.beta;b=b(2:end);b_order=find(abs(b)<2);%若因子回報(bào)系數(shù)絕對值大于2則認(rèn)為是極端值,剔除該因子;R=X(:,b_order)*b(b_order);%回歸系數(shù)乘月末因子的預(yù)期收益率[~,R_s]=sort(R);portfolio(R_s(end-50+1:end))=1/50;%大的50組做多portfolio(R_s(1:50))=-1/50;%小的50組做空

%狀態(tài)矩陣重新賦值newStateMatrix=stateMatrix;end第14頁量化投資策略開發(fā)實(shí)例策略開發(fā)——回驗(yàn)配置全景展示BackTestCfg.xml配置<?xmlversion="1.0"encoding="utf-8"?><BackTest><backtestArgumentsactionDelay="1"orgidMode="all"repoFrequency="DAY01"reportDisplay="On"resultSave="On"/>

<transactionCostbuy="0.00005"securityType="SecurityType.StockA"sell="0.00005"/><transactionCostbuy="0.00005"securityType="SecurityType.StockB"sell="0.00005"/>……<performanceAnalysisDatacode=""funName="modifiedSharpRatio"name="alpha"value="0.05"/><performanceAnalysisDatacode="000300"funName="CorrWithMarket"name="CSI300Rtn"value=""/><performanceAnalysisFundispName="日平均收益率"funName="averageSimpleRateOfReturn"/><performanceAnalysisFundispName="累積簡單收益率"funName="cumsumSimpleReturn"/>……<performanceAnalysisFundispName="修正的夏普比率"funName="modifiedSharpRatio"/><benchmarkcode="000300"name="benchmark"/></BackTest>第15頁量化投資策略開發(fā)實(shí)例策略開發(fā)——回驗(yàn)配置BackTestCfg.xml配置<?xmlversion="1.0"encoding="utf-8"?><BackTest><backtestArguments

actionDelay="1"orgidMode="all"repoFrequency="DAY01"reportDisplay="On"resultSave="On"/>標(biāo)簽backtestArguments(用途:策略回驗(yàn)的參數(shù)配置)actionDelay:交易延遲,策略從投資決策到通過交易生成持倉的延遲。必須為非負(fù)整數(shù)。比如actionDelay為2,returnCalFrequency為1,returnCalFrequency為TimeIntervals.SEC05,將會以決策時(shí)點(diǎn)2*5=10秒后的價(jià)格成交;orgidMode:由交易代碼轉(zhuǎn)為orgid的模式。(注意:對于股票而言,同一交易代碼可能由于借殼上市等原因,隨著時(shí)間區(qū)間不同,其意義會發(fā)生變化,系統(tǒng)后臺會將交易代碼轉(zhuǎn)為orgid——對股票而言,以公司作為證券關(guān)聯(lián)對象的唯一碼。)對股票而言,如果用戶輸入all,系統(tǒng)將會訂閱回驗(yàn)區(qū)間內(nèi)使用過該交易代碼的所有行情,通過orgid進(jìn)行區(qū)分,同樣,通過orgid區(qū)分策略函數(shù)返回的持倉權(quán)重序列;如果用戶輸入latest,則系統(tǒng)會訂閱最新使用該交易代碼的行情,同樣通過orgid區(qū)分。如果交易代碼列表中不存在股票標(biāo)的,則不用考慮該屬性;第16頁量化投資策略開發(fā)實(shí)例策略開發(fā)——回驗(yàn)配置<?xmlversion="1.0"encoding="utf-8"?><BackTest><backtestArgumentsactionDelay="1"orgidMode="all"repoFrequency="DAY01"reportDisplay="On"resultSave="On"/>標(biāo)簽backtestArguments(用途:策略回驗(yàn)的參數(shù)配置)repoFrequency:債券的回購頻率。支持DAY01(每日回購)和DAY07(每七日回購)兩個(gè)枚舉。系統(tǒng)將會據(jù)此獲取債券的杠桿費(fèi)用。注意:當(dāng)交易代碼列表不存在債券標(biāo)的時(shí),則不用考慮該屬性;reportDisplay:excel績效報(bào)表展示開關(guān),當(dāng)設(shè)為On的時(shí)候,策略回驗(yàn)結(jié)束后會顯示策略績效的excel績效報(bào)告;設(shè)為其他值時(shí)則不會打??;resultSave:excel績效報(bào)表保存開關(guān),當(dāng)設(shè)為On的時(shí)候,策略回驗(yàn)結(jié)束后會被保存;設(shè)為其他值時(shí)則不會打?。坏?7頁量化投資策略開發(fā)實(shí)例

<transactionCost

buy="0.00005"securityType="SecurityType.StockA"sell="0.00005"/><transactionCostbuy="0.00005"securityType="SecurityType.StockB"sell="0.00005"/>第18頁品種的枚舉類型securityTypeStockAA股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)配置量化投資策略開發(fā)實(shí)例

<performanceAnalysisDatacode=""funName="modifiedSharpRatio"name="alpha"value="0.05"/><performanceAnalysisDatacode="000300"funName="CorrWithMarket"name="CSI300Rtn"value=""/>第19頁標(biāo)簽performanceAnalysisData(用途:策略績效指標(biāo)的數(shù)據(jù)參數(shù)配置)

計(jì)算績效指標(biāo)所需數(shù)據(jù)目前只支持指數(shù)收益率,且策略的簡單收益率序列不需要配置,系統(tǒng)會自動(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ù)名稱,必須和performanceAnalysisFun標(biāo)簽中的函數(shù)名相對應(yīng);name:指標(biāo)名稱,績效評價(jià)函數(shù)以此作為域名解析數(shù)據(jù);value:如果該標(biāo)簽描述的是績效函數(shù)的參數(shù),則code為’’,而value不能為空。策略開發(fā)——回驗(yàn)配置量化投資策略開發(fā)實(shí)例

<performanceAnalysisFundispName="日平均收益率"funName="averageSimpleRateOfReturn"/><performanceAnalysisFundispName="累積簡單收益率"funName="cumsumSimpleReturn"/>……<performanceAnalysisFundispName="修正的夏普比率"funName="modifiedSharpRatio"/><benchmarkcode="000300"name="benchmark"/></BackTest>標(biāo)簽performanceAnalysisFun(用途:策略績效指標(biāo))dispName:策略績效函數(shù)顯示在excel績效報(bào)告中的名稱;funName:策略績效函數(shù)名稱,系統(tǒng)將會尋找同名的函數(shù)計(jì)算策略績效并生成報(bào)表。標(biāo)簽benchmark(用途:excel報(bào)表中的基準(zhǔn)收益率)code:指數(shù)的代碼。第20頁策略開發(fā)——回驗(yàn)配置量化投資策略開發(fā)實(shí)例策略開發(fā)——回驗(yàn)配置全景展示BackTestCfg.xml配置<?xmlversion="1.0"encoding="utf-8"?><BackTest><backtestArgumentsactionDelay="1"orgidMode="all"repoFrequency="DAY01"reportDisplay="On"resultSave="On"/>

<transactionCostbuy="0.00005"securityType="SecurityType.StockA"sell="0.00005"/><transactionCostbuy="0.00005"securityType="SecurityType.StockB"sell="0.00005"/>……<performanceAnalysisDatacode=""

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論