台灣股市有所謂「五窮六絕七上吊」,此句話的意思是:一年十二月份中,資訊硬體的產製、代工訂單營收等方面,在五月、六月時會達最低迷,連帶影響股市跌多漲少。舉凡元月效應、聖誕節旺季、開紅盤行情、中秋節變盤等等,都是市場或商品的一種季節性分析與描述。利用季節性特性來設計濾網的原理即是:在偏漲的日子盡可能做多,在偏跌的日子則盡可能作空,在有波動的日子放大部位,在清淡的日子盡量做壁上觀。
季節性分析與指數
有些季節性講法純屬江湖傳說,媒體充版面用,季節性分析的基礎在於統計以及數字背後可以解釋的成因,「史瓦格期貨基本分析」一書中有專章介紹如何統計與編制商品季節性指數,可參考本篇:期貨交易與季節性分析運用。
此外,MultiCharts的績效報表也提供週期性分析,如下圖所示,我們就可以歸納出策略的績效在進入第三季末至第四季開始變差,我們就可以加一道濾網,在這個期間減少操作,或是把進場的條件調更嚴格。
可惜MultiCharts的周期性分析沒有星期一~星期五的分析(也就是策略績效在禮拜一至禮拜五各自的績效表現),股市有所謂的「黑色星期一」,是否禮拜一的波動往往比較大(理應如此,因為要反應周末可能的突發事件),又,禮拜幾波動最小?其實不用臆測,用MultiCharts就可以跑出統計(請參考本篇:台指期波動研究:星期幾波動最大?),結果如下圖所示:
星期/ATR相較於近30日ATR表現
|
2013~2017年
|
星期一
|
115.26
|
星期二
|
92.91
|
星期三
|
105.45
|
星期四
|
109.08
|
星期五
|
98.17
|
應用上,當沖策略就可以考慮在波動大的日子(星期一跟四)放大部位,波動小的日子減少操作。
濾網範例:星期一~星期五,把績效不好的那天濾掉
另外來有一個作法是直接個別看禮拜一~禮拜五各自的績效表現(較適用當沖策略),從結果去回推,形成濾網,也就是例如統計顯示禮拜一的績效相對不好,就針對禮拜一設濾網減少操作,依此類推。以下是程式碼(備註1),範例是一個缺口填補當沖策略,加上一個參數(DaytoTest)讓使用者可以自行輸入1~5,各自限制策略只在禮拜一~禮拜五執行,就可以個別看績效:
===========================================
Inputs:
DayToTest(0),
TrendFilterPeriod(60),
StpLs (6000),
PrfTg (4000);
Variables:
vDayOfWeek(0),
Bullmarket(false),
BearMarket(false),
ShortSetup(false),
LongSetup(false),
RangeCheck(false),
ValidGapDay(false),
NewDay(false);
If ( Date <> Date[1] ) Then
Begin
vDayOfWeek = DayOfWeek( Date );
ValidGapDay = false;
If ( vDayOfWeek = Monday ) and ( DayToTest = 1 ) Then ValidGapDay = true
Else If ( vDayOfWeek = Tuesday ) and ( DayToTest = 2 ) Then ValidGapDay = true
Else If ( vDayOfWeek = Wednesday ) and ( DayToTest = 3 ) Then ValidGapDay = true
Else If ( vDayOfWeek = Thursday ) and ( DayToTest = 4 ) Then ValidGapDay = true
Else If ( vDayOfWeek = Friday ) and ( DayToTest = 5 ) Then ValidGapDay = true;
Bullmarket = Close > Average( Close data2, TrendFilterPeriod );
BearMarket = Not Bullmarket;
ShortSetup = Open > Close[1];
LongSetup = Open < Close[1];
RangeCheck = Open < HighD(1) and Open > LowD(1);
{ Shorting Setup - Gap above yesterday's close }
If ( ShortSetup and RangeCheck and BearMarket and ValidGapDay) Then
sell short ("Gapfill I SE") next bar at market;
{ Long Setup - Gap below yesterday's close }
If ( LongSetup and RangeCheck and BullMarket and ValidGapDay)
Then buy ("GapFill I LE") next bar at market;
End;
Setstoploss (StpLs);
Setprofittarget (PrfTg);
Setexitonclose;
===========================================
假設你得到一個禮拜五績效特爛的結果(可回頭觀察每個禮拜五的日內走勢,並能找出背後成因),那麼你再重新去調整程式碼,限制只在一~四進場,如此就可以優化績效。這也是一個利用季節性特行所設計出的濾網。
結論
一般交易策略的開發,參考的往往不脫價跟量,季節性特性如果呈現統計上的顯著結果,又能解釋背後成因,它會成為超越價跟量之外的濾網,對交易績效可能大有幫助,絕對值得投資人去好好觀察跟專研。
※範例程式pla檔下載。
[備註]:
1. 程式碼與策略參考:http://systemtradersuccess.com/improve-simple-gap-strategy/。這個網站的討論相當完整與專業,推薦給讀者。
沒有留言:
張貼留言
歡迎留言討論!