如何縮小範圍,找出有機會拉出較大漲幅的個股

By | 2018-02-26

推荐朋友們看”散戶的50道難題”這本書,這本書把我們一般投資人會面對的困難與挑戰都列了出來,也提出對應的解決之道。

散戶的五十道難題

看完書之後,我想狗尾續貂一下,針對每道難題,提出我的解題方法,今天先跟大家報告第一道難題,也是大家最想解的一題: 如何縮小範圍,找出有機會拉出較大漲幅的個股。

我每年都會找出當年度漲幅最大的前50檔股票,然後研究他們的共同特性。

普遍的共同特色是: 低價,股本不大,產業具獨特地位,月營收創近幾年來高點,最後一項也是書上有寫的,那就是在上漲後,開始有法人著墨。

例如最近很紅的兩檔股票

2018022603 2018022604

在起漲前都符合低股本,低價,過去EPS曾超過三元及營收創新高等四大條件。

基於上述的觀察,我寫了一個選股的腳本,這個腳本一共有三個條件

1.最本小於50億元

2.收盤價小於80 元

3.過去幾年有一年EPS超過三元

前兩個條件在XS上用現成的選股條件可以加進去,第三項我寫了一個腳本如下

value1=GetField("每股稅後淨利(元)","Y");
if trueany(value1>=3,8)
then ret=1;

加上第三個選股條件的原因是,我發現這些股票如果過往曾經有過不錯的獲利能力,比較容易再重返榮耀。

用這三個條件一共挑出了511檔股票。

接下來我設了三個條件,只要有其中一個符合,就視為潛力股候選人,開始針對個股用力作功課,這三個條件分別是

1.近十日法本比前五十名

2.最近一個月營收創近幾年新高

3.最近一個月營收創近幾年同期新高

上面這個選股條件,對應的腳本分別如下

法本比前五十名,以下是法本比的函數

value1=GetField("最新股本");//單位: 億元
value2=GetField("法人買賣超張數","D");//單位:張數
input:period(numericsimple);
value3=summation(value2,period);
if value1<>0
then value4=value3/(value1*10000)*100;
ret=value4;

最近一個月營收創近幾年新高

input:N(37, "期別"); 
value1=GetField("月營收", "M");
value2=GetField("月營收月增率","M");
value3=GetField("月營收年增率","M");
value4=GetFieldDate("月營收","M");
if value1=Highest(value1,N)
//月營收創37期新高
and trueall(value2>0,2)
//月營收月增率近兩個月都>0
and trueall(value3>0,2)
//月營收年增率近兩個月都>0
then ret=1; 
outputfield(1,value4,0,"最新月份");

最近一個月營收創近幾年同期新高

array: numarray[5](0);
variable:x(0);
for x=1 to 5
numarray[x]=GetField("月營收","M")[(x-1)*12];
if trueall(numarray[1]=highestarray(numarray[1],5),2) then
ret=1;

合計的選股條件如下圖

2018022601

 

以上是我每天尋找長線潛力股的自動化流程,我的條件有些寬鬆,所以挑出來的股票較多,各位可以再加上其他篩選條件來過濾。

用這個腳本去回測,持有20天,停損是5%,回測報告如下

2018091905

顯示用這樣的標準挑出來的股票,如果把它變成一個投資組合,確實是可以打敗指數。