您當前的位置:首頁 > 書法

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

作者:由 DigQuant點寬 發表于 書法時間:2017-10-17

本系列由

點寬DigQuant量化人才俱樂部

獨家釋出

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

原文傳送門:

國泰君安191短週期因子之一——因子體系介紹

前言

本次報告將開啟對國泰君安金工劉富兵團隊報告《基於短週期價量特徵的多因子選股體系——數量化專題之九十三》的單因子回測。該報告集中測試了股票市場191個短週期的alpha因子,與此前市面上WorldQuant101和廣發證券“技術因子海量挖掘”等報告一樣,是一篇值得去實踐的研報。目前中低頻的alpha因子衰退嚴重,變成了一場追逐風格變換的遊戲,而短週期因子的alpha仍有很大機會,因為其容量不大,沒有大資金介入。本系列報告將遵循以下模板,每次彙報3個因子。

方法概述

1、股票池選擇:

中證500(目前無中證500歷史成分,因此暫用當前500成分)。中證500是滬深300之後市值最大的500只股票,具備良好的定投特性:

中證500的成分構造比滬深300更合理,投資滬深300等於投資了大部分的銀行、保險等權重股,而對中證500的影響較小。

滬深300市值過大,中證500市值較為適合,而同時又避免了投資更小市值股票的風險。

滬深300是高估的中證500。

2、換倉:

因為是短週期因子,其有效IC大部分處於1-5天,因此每5日換倉一次較為合理。

回測換倉邏輯與程式碼

% 股票交易

targetList

=

traderGetTargetList

();

% 獲取標的資訊。

TLen

=

length

targetList

);

% 資產數量,不對沖

dSignal

=

traderGetRegUserIndi

g_idxSignal

2

);

% 獲取交易訊號

map

~

~

]=

traderGetAccountPositionV2

1

1

TLen

);

% 股票頭寸

~

MarketCap

~

~

~

=

traderGetAccountInfoV2

1

);

% 現在賬戶持有的現金和股票市值

capitalPerShare

=

MarketCap

/

assetNum

% 每隻股票買的錢數,不對沖

stockList

=

1

assetNum

% 可買股票池

% ——————————————————調倉———————————————————

for

i

=

1

TLen

dataDay

=

traderGetRegKData

g_idxKDay

i

,:),

1

false

);

% 取當日資料

if

isnan

dataDay

dataDay

=[];

end

% 資料長度足夠;資料非空;當日的成交量不為0;當日高收不同——去除停牌,漲跌停情況

if

isempty

dataDay

||

dataDay

6

end

==

0

||

dataDay

3

end

-

dataDay

4

end

))

==

0

continue

end

if

map

i

~=

0

&&

~

ismember

dSignal

i

end

),

stockList

))

% 上期持有,這期不持有

traderPositionToV2

1

i

0

0

‘market’

‘close’

);

elseif

ismember

dSignal

i

end

),

stockList

% 這期持有的,這期調倉

stockNum

=

100

*

floor

capitalPerShare

/

dataDay

5

end

/

100

);

% 每隻股票買的股數

traderPositionToV2

1

i

stockNum

0

‘market’

‘close’

);

end

end

3、持倉數:

每期持倉中證500的10%,大約50只。

4、分時間段測試:

不同因子需要得到其在不同市場狀況的表現,因此我們將市場分為4段:

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

熊市-市場陰跌:2011-01-01至2013-07-31

牛市-市場急漲:2013-08-01至2015-04-30

熊市-市場急跌:2015-05-01至2016-06-30

牛市-市場慢牛:2016-07-01至2017-09-30

因子彙總

下述為本期3個短週期alpha表現結果(20160701_20170930最近慢牛區間表現)。3顆星表明因子表現較好,2顆星表明因子具備一定價值,1顆星表明因子不具備操作可行性。

因子間比較

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

下表為3個市場下因子的分別表現情況。

各區間因子收益特徵

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

➢ 回測軟體:Auto-Trader Pro

(AT 量能策略研究終端 以 MATLAB 研究平臺為依託,甚至可以把交易思路延生到機器學習,神經網路,輿情分析等更復雜的領域。依託 Matlab 強大的數理研究及強大的金融工具箱,策略師不再需要依賴程式設計師的程式設計能力,而將研究成果直接轉化為程式化策略。)

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

編號:Alpha001

因子公式

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

因子含義

刻畫成交量變化排名與日內收益率排名的偏離程度,表現為成交量變化排名上升,日內收益率排名下降;成交量變化排名下降,日內收益率排名上升。

分時段因子表現

根據由左至右由上至下的為1-4種市場情況因子表現。

alpha001各市場表現

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

因子程式碼

function

value

=

getSignal

cellPar,bpPFCell

%% 引數宣告

idxK

=

cellPar

{

1

};

% 橫軸為日期,縱軸為資產數量

%% 因子計算

tradeNum

~

]=

size

idxK

);

% 資產數量

regKMatrix

=

traderGetRegKData

idxK

7

false

bpPFCell

);

% -1 * CORR(RANK(DELTA(LOG(VOLUME), 1)), RANK((CLOSE - OPEN) / OPEN), 6)

volume

=

regKMatrix

6

8

tradeNum

*

8

,:);

mid1

=

log

volume

);

mid2

=

diff

mid1

1

2

);

mid3

=

my_sort

mid2

);

close

=

regKMatrix

5

8

tradeNum

*

8

,:);

open

=

regKMatrix

2

8

tradeNum

*

8

,:);

mid4

=

close

-

open

。/

open

mid5

=

my_sort

mid4

);

value1

=

diag

corr

mid3

(:,:)

mid5

(:,

2

7

));

value

=

my_sort

value1

);

nan_idx

=

sum

isnan

volume

),

2

);

% 存在停牌以及該K線停牌的股票

value

find

nan_idx

~=

0

))

=

nan

% 該股票因子值為nan

end

策略連結

【國泰君安】191短週期因子系列——alpha001

編號:Alpha002

因子公式

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

因子含義

刻畫多空失衡變動情況,用(CLOSE - LOW) - (HIGH - CLOSE)) / (HIGH - LOW)表示多空力量不平衡度。

分時段因子表現

根據由左至右由上至下的為1-4種市場情況因子表現。

alpha002各市場表現

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

因子程式碼

function

value

=

getSignal

cellPar,bpPFCell

%% 引數宣告

idxK

=

cellPar

{

1

};

% 橫軸為日期,縱軸為資產數量

%% 因子計算

tradeNum

~

]=

size

idxK

);

% 資產數量

regKMatrix

=

traderGetRegKData

idxK

2

false

bpPFCell

);

% (-1 * DELTA((((CLOSE - LOW) - (HIGH - CLOSE)) / (HIGH - LOW)), 1))

close

=

regKMatrix

5

8

tradeNum

*

8

,:);

low

=

regKMatrix

4

8

tradeNum

*

8

,:);

high

=

regKMatrix

3

8

tradeNum

*

8

,:);

mid1

=

diff

(((

close

-

low

-

high

-

close

))

。/

high

-

low

),

1

2

);

value

=

my_sort

mid1

);

nan_idx

=

sum

isnan

close

),

2

);

% 存在停牌以及該K線停牌的股票

value

find

nan_idx

~=

0

))

=

nan

% 該股票因子值為nan

end

策略連結

【國泰君安】191短週期因子系列——alpha002

編號:Alpha003

因子公式

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

因子含義

刻畫多空失衡變動情況,用(CLOSE - LOW) - (HIGH - CLOSE)) / (HIGH - LOW)表示多空力量不平衡度。

分時段因子表現

根據由左至右由上至下的為1-4種市場情況因子表現。

alpha003各市場表現

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

因子程式碼

function

value

=

getSignal

cellPar,bpPFCell

%% 引數宣告

idxK

=

cellPar

{

1

};

% 橫軸為日期,縱軸為資產數量

%% 因子計算

tradeNum

~

]=

size

idxK

);

% 資產數量

regKMatrix

=

traderGetRegKData

idxK

7

false

bpPFCell

);

% SUM((CLOSE=DELAY(CLOSE,1)?0:CLOSE-(CLOSE>DELAY(CLOSE,1)?MIN(LOW,DELAY(CLOSE,1)):MAX(HIGH,DELAY(CLOSE,1)))),6)

close

=

regKMatrix

5

8

tradeNum

*

8

,:);

mid1

=

close

(:,

2

7

==

close

(:,

1

6

);

mid2

=

close

(:,

2

7

);

mid2

mid1

=

0

mid3

=

close

(:,

2

7

>

close

(:,

1

6

);

mid4

=

close

(:,

2

7

<

=

close

(:,

1

6

);

low

=

regKMatrix

4

8

tradeNum

*

8

,:);

high

=

regKMatrix

3

8

tradeNum

*

8

,:);

mid5

=

mid3

。*

low

(:,

2

7

+

mid4

。*

high

(:,

2

7

);

mid6

=

sum

mid2

-

mid5

2

);

value

=

my_sort

mid6

);

nan_idx

=

sum

isnan

close

),

2

);

% 存在停牌以及該K線停牌的股票

value

find

nan_idx

~=

0

))

=

nan

% 該股票因子值為nan

end

策略連結

【國泰君安】191短週期因子系列——alpha003

原文傳送門:

國泰君安191短週期因子之一——因子體系介紹

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

【研報復現】國泰君安——191個短週期量價特徵因子選股系列一

標簽: 因子  close  tradeNum  regKMatrix