我師父最常掛在嘴邊的一句話就是”反常必有妖”,所以他最愛教我們去研究那些利空不跌的,毛利率暴增的,營收在淡季創高的股票。我自己開始學會用程式語法建構交易策略時,我發現這種”反常態”的哲學,往往能找到不錯的交易策略,今天要跟大家介紹的,就是各項指標脫離一季以來的平均值很遠時,所建構出來的交易策略。
要反常態,第一件事情就是先建立”常態”,我應用法人買張,強弱指標,外盤均量,主動買力及開盤委買張數這五個xs內建的欄位,取66日的移動平均,來代表一檔股票的常態,如果有一天,這五個數據,有超過四個以上比66日移動平均值高出三成以上,那就算是”非常態”,我回測過去兩年有量的中小型股後發現,當”非常態”出現時,如果波段漲幅不大,那後市有短多的空間,特別是在多頭市場,這樣的現象就更明顯。
我把上面的概念寫成以下的腳本
if GetSymbolField("tse.tw","收盤價","D") >average(GetSymbolField("tse.tw","收盤價","D"),10) then begin input:day(66,"移動平均天數"); input:ratio(30,"超出均值比率"); variable:count(0); value1=GetField("法人買張"); value2=average(value1,day); value3=GetField("強弱指標"); value4=average(value3,day); value5=GetField("外盤均量"); value6=average(value5,day); value7=GetField("主動買力"); value8=average(value7,day); value9=GetField("開盤委買"); value10=average(value9,day); count=0; if value1>=value2*(1+ratio/100) then count=count+1; if value3>=value4*(1+ratio/100) then count=count+1; if value5>=value6*(1+ratio/100) then count=count+1; if value7>=value8*(1+ratio/100) then count=count+1; if value9=value10*(1+ratio/100) then count=count+1; if count>=4 and close<lowest(close,day)*1.1 then ret=1; end;
用有量的中小型股去回測過去兩年的數據,停損停利都設5%
回測的結果如下:
在過去兩年裡,143次的交易機會裡,獲利的次數達到95次,虧錢的有48次,差不多是進場三次有兩次賺錢的比例。這樣的比例應該是可以接受的了。
這種先建構常態,再尋找反常態的技巧,是建構交易策略的方法之一,各位不妨以此為例子,設定自己覺得最能代表常態的指標,再來尋找反常態時的股票。