價值衡量九式之九

By | 2017-07-06

衡量股票估值的方法,之前介紹了一些,最後一節就來介紹把這些方法全部放在一起衡量的選股腳本要怎麼寫。

周星馳有部電影叫武狀元蘇乞兒,最後他跟大魔頭決戰時,悟出了把降龍十八掌的前十七式合在一起打就是第十八式

2017070602

我用同樣的想法,把先前曾介紹過的價值型估值方法全部整合在一個腳本上,挑出符合最多價值衡量條件的股票。

腳本的寫法如下:

input:m1("不符合"),m2("符合");
var:s1(""),s2(""),s3(""),s4(""),s5("");
var:count(0);
condition1=false;
condition2=false;
condition3=false;
condition4=false;
condition5=false;
count=0;

//用最近三個月營收推估的獲利殖利率高於一定水準
value1=GetField("營業利益","Q");//單位:百萬
value2=GetField("月營收","M");//單位:億
value3=GetField("營業利益率","Q");
value4=GETFIELD("月營收","M")
+GETFIELD("月營收","M")[1]
+GETFIELD("月營收","M")[2];
//近三個月營收
value5=value4*value3/100;
//用最近一期營益率去估算的最近一季營業利益
value6=GetField("營業利益","Q")
+GetField("營業利益","Q")[1]
+GetField("營業利益","Q")[2]+value5*100;
//前三季營業利益加上最近一季預估營業利益
value8=GetField("最新股本");//單位億
value9=value6/(value8*100)*10;
//估算出來的EPS
value10=value9/close*100;
//eps/股價*100: 預估殖利率
input:r1(7,"殖利率下限");
if value10>r1 and value3>0 and close>10
then begin
condition1=true ;
s1=m2;
count=count+1;
end 
else
s1=m1;
 
//本業推估本益比低於N

input:epsl(15,"預估本益比上限");

value11= GetField("營業利益","Q")
+GetField("營業利益","Q")[1]
+GetField("營業利益","Q")[2]
+GetField("營業利益","Q")[3];
value12= GetField("最新股本");//單位億;
value13= value11/(value12*10);//每股預估EPS
if close/value13<=epsl
then begin
condition2=true ;
s2=m2;
count=count+1;
end 
else
s2=m1;

//流動資產減負債超過市值N成
input:ratio(80,"佔總市值百分比%");
if (GetField("流動資產","Q")-GetField("負債總額","Q"))/100>GetField("總市值","D")*ratio/100
then begin
condition3=true ;
s3=m2;
count=count+1;
end 
else
s3=m1;

//股價低於N年平均股利的N倍

input:N1(16,"股利的倍數");
 
value15=(GetField("股利合計","Y")
+GetField("股利合計","Y")[1]
+GetField("股利合計","Y")[2]
+GetField("股利合計","Y")[3]
+GetField("股利合計","Y")[4])/5;
if close<value15*N1
then begin
condition4=true ;
s4=m2;
count=count+1;
end 
else
s4=m1;
 
//高自由現金流總市值比
input:ratio1(10,"近四季自由現金流總合佔總市值最低比率單位:%");
if (GetField("來自營運之現金流量","Q")+GetField("來自營運之現金流量","Q")[1]+
GetField("來自營運之現金流量","Q")[2]+GetField("來自營運之現金流量","Q")[3]-
GetField("資本支出金額","Q")-GetField("資本支出金額","Q")[1]
-GetField("資本支出金額","Q")[2]-GetField("資本支出金額","Q")[3])
>GetField("總市值","D")*100*ratio1/100
then begin
condition5=true ;
s5=m2;
count=count+1;
end 
else
s5=m1;


if count>1
then ret=1;
outputfield(1,count,0,"符合條件數");
outputfield(2,value9,1,"預估EPS");
outputfield(3,s1,0,"高預估殖利率股");
outputfield(4,s2,0,"本業推估本益比低");
outputfield(5,s3,0,"流動性淨資產接近市值");
outputfield(6,s4,0,"以歷年平均股利計算之高殖利率股");
outputfield(7,s5,0,"高自由現金流總市值比");

衡量的標準都設成參數,大家可以依自己的標準重設,我把條件設的更嚴之後,挑出來符合較多條件的股票如下:

2017070601

價值型投資的介紹至此告一段落,正所謂戲法人人會變,巧妙各自不同,這些腳本的介紹,重點在讓大家了解有那些派別的不同思維,有那些可以拿來運算的欄位,以及有那些腳本撰寫時可以使用的寫法,真正要如何在 xs上實行您的價值型投資準則,還有賴各位捲起袖子來把這些參考的腳本改成您個人的獨特見解。