好久以來的第一根長紅到底能不能追?

By | 2016-09-02

這幾個月來,景氣循環股因著不同的原因,相繼展開反彈,在線型上出現好久以來的第一根長紅,我試著想從過去三年的數據分析中,來測試看看這種好久以來的第一根長紅,如果進場追買的話,賺錢的機率高不高? 要漲多少%才算是長紅? 要多久沒有拉過長紅才算是好久以來? 這樣的交易策略是不是適用在所有的股票上?

為了作這個測試,我先寫了一個腳本如下:

input:ratio(6,"長紅的漲幅下限");
input:period(40,"計算區間");
if close>=close[1]*(1+ratio/100)
and 
countif(close[1]>=close[2]*(1+ratio/100),period)=0
then ret=1;

其中設了兩個參數,一個是上漲的幅度,一個是計算的天期

我先用上漲6%算長紅,計算區間設40天,用所有的上市櫃公司,我假設是長紅後的隔天開盤進場,然後持有兩天,先跑最近半年,回測結果如下

090101

結果交易的次數很多,半年就有超過言1000次的機會,但勝率不高,只有42.2%,不過總報酬很不錯,這代表輸的時候輸的不多,但贏的時候可以贏不少。不過從淨值的波動圖來看,跟大盤似乎息息相關,代表這樣的交易策略跟大盤多空有很大的關係。

所以我把回測的時間拉長到三年,回測的結果如下:

090102

結果發現勝率提高到接近五成,然後比較好玩的數字是,如果在多頭市場時,這個策略還真的可以一試

於是我在原來的腳本加上只在大盤多頭時進場

 input:ratio(6,"長紅的漲幅下限");
input:period(40,"計算區間");
if GetSymbolField("tse.tw","收盤價")
>average(GetSymbolField("tse.tw","收盤價"),10)
then begin
if close>=close[1]*(1+ratio/100)
and 
countif(close[1]>=close[2]*(1+ratio/100),period)=0
then ret=1;
end;

這樣的腳本去跑三年的回測,結果如下:

090103

勝率超過五成,比較大的意義是最大區間虧損雖然還是大的嚇人,但至少有明顯的降低

接下來我試著把沒有長紅的區間拉長,把長紅的定義放的更寬一點來測看看,效果沒有比較好,我只拿景氣循環股及高ROE的股票下去跑,勝率也沒有比較好,但如果是拿有量的中小型股下去跑,則結果會很不錯

090104

 

所以關於長期以來的第一根長紅這個 交易策略,我的數據分析結論如下

在大盤多頭走勢時,如果那些有量的中小型股,出現過去四十天以來的第一根上漲超過6%的長紅棒,那麼隔天開盤進場追,持有兩天,是一個可以進一步Follow的交易策略。