創高動能選股策略

創高動能選股策略

以藏敖策略進行延深探討,主條件為股價創新高的股票,

配合營收的打底作為濾網,撰寫動能選股策略。

藏敖策略初步評估就是不可行,最終選股訊號使用vol_ma*buy.smallest,

且vol只限制200張,就可以知道這個策略胃納量太低,流動性非常差,

很容易被使用策略的人買進/賣出大滑價,甚至鎖住漲跌停。

所以從頭開始討論這個策略怎麼調整。


一、主條件撰寫

           1.主條件篩選突破幾日高的個股(close == close.rolling(X).max()),

            但基本的條件必須要有,不想買到雞蛋水餃股:    

            (1)成交量MA10 > 500張,至少有基本的成交量。

            (2)Close > 10,避開雞蛋水餃股,易大起大落被炒作。

            (3)ROE > 0,簡單的濾掉超級爛公司。                    

        回測結果這個主條件績效正向往上,證實是有效果的。初步結果為突破的天數越多越佳, 

        後續應該會控制在200~300進行評估,不然符合條件的個股數量可能會太少。

二、其他條件探討
        條件2:排除營收yoy連3月衰退10%以上 ,導入後daily mean 沒明顯提升,MDD有降一點。 

        條件3:排除月營收成長趨勢過高(yoy>40%),近12個月發生8次,怕動能已經多次發動而失效,

        導入這個條件幾乎是反效果。

        條件4:近一年營收最低/本月營收 <0.8,持續3個月,想像為圓弧底,目前營收在右上,

        導入這個條件有效提升daily mean,而且有稍為降低MDD。

        條件5:營收mom連續3個月不衰退20% (條件5),導入也是降低MDD。

        小結:條件4是比較有效的條件、條件2&5只是限制營收不能太爛,從初步optimize分析
        條件1&2&4也是return的第一名,但因為optimize不能限制買smallest的標的,我還是多條   
        件5往下延伸探討。
三、主條件+c2+c4+c5,先回測評估績效(每月換股,停損先抓10%),daily mean 42.5、sharpe ratio 1.3、

        MDD -28.6%、win ratio 50.4%,算是不錯的績效,後續先從降低MDD的方向調整。


四、細部調整
        1.此策略使用很多營收條件,原本寫resample:'M'是不恰當,這樣是月底換調整為營收公布後
           換股reindex(rev.index_str_to_date().index, method='ffill'整體回測數據都改善,
           sharpe ratio 提升到1.7。

        2.評估加入多頭排列才買進,導入後雖然有效降低MDD,但daily mean降低20%無法採用,
           多頭排列濾網看起來比較適合持有短天數策略。

        3.評估加入總經指標(score>=4)才買進,回測結果可以keep住daily mean,並非常有效的降
           MDD,總經指標使用在月週期以上的策略很有效。
            備註:發現細部問題,因為score是從2014所以加入後會因為2020 2021績效太好,提高return。

        4.使用二次創高寫法,避免被騙進場close.rolling(x).max()).sustain(5,2),結果出乎意料的不
            好,daily mean下降,MDD也沒下降,不導入此條件。 

        5.將原條件再進行細部回測評估:

        (1) 回測突破天數x,分別回測200~320,以daily mean來探討天數越高越好,但其實差距很小

            (<5%),以MDD來探討天數<240比較好(差距也<5%),採用240天做為最終條件。

         (2)近一年營收最低/本月營收 <x,分別回測0.4~0.9,結果以0.85最佳,這個結果可以發現
              0.8和0.9的績效次之,表示有個高原平台,不是單一點好績效。

五、調整持股比例、停損、停利 

        1.從report.display()觀察,除了總經分數<4以外,大多都持有3-5檔股票, 

        所以沒有選股數量問題,避免一檔重壓設定position_limit=1/2(雖然不限制結果最佳)。
        
        2.從display_mae_mfe_analysis觀察:
        (1)持有天數return高點剛好在20天,完全符合我們的週期。

        (2)較佳的停損範圍在3.4-13.4%,回測6-12%,結果>8%差異都不大,雖然不停損績效好一點點,

         但實際上線心理層面應該不容易過,最終選用停損10%。

        (3)分別測試20~50%停利,看起來這種動能選股,子彈飛起來就會飛超遠,不停利結果最佳。

 六、結論

        1.創高動能選股策略daily mean 76.6、sharpe ratio 2.1、MDD -17.9%、win ratio 62.3%,
            算是績效非常好,追蹤一段時間應該就可以上線測試。
        2.2021的年績效太好,大多頭年短期很難再發生一次,不過至少其他年分績效也很不錯。
        3.從月報酬觀察,一年當中少數幾個月績效很好(>20%),但其他的月份就小打小鬧,
            甚至負的機會比較大,上線後心理層面會是一種考量。(可能上線5個月都小虧小賺,
            這筆錢卡著沒績效就先放掉去別的策略,然後就噴了) 。
        4.流動性測試沒問題。







備註:目前這隻策略寫法,必須要公布營收完才會選股,如果像本月禮拜五是12/9,
12/10是假日他會遞延變成要到12/12號晚上才選股,看起來會稍為慢了一拍,
我手動在12/10選符合需求的股票,今日12/12表現如下 (加權指數下跌92點)

index_str_to_date() 卻沒辦法配合公佈營收就選股,反而變成deadline的效果,
但如果用resample='M+10',回測跑起來也怪怪的








張貼留言

0 留言