Author Archives: 發財橘子

基本面創佳績的公司放量起漲

如果最近這一季財報本業創下近幾年的最好水準,但大盤不好,股價之前沒有什麼表現,一旦大盤好轉,這些股票開始放量起漲,這樣的公司,會不會是值得留意的標的呢? 今天就來跟大家介紹這樣生不逢時但苦盡甘來的選股法。

根據上面的邏輯,我設的選股法如下

2018120406

這個選股法的前三項代表本業的營運創下很久以來的最佳成績,最後一項的腳本如下

if TrueAll( GetField("營業利益率","Q")>0,4) and
 TrueAll(GetField("稅後淨利率","Q")>0,4) and 
 average(volume,5) > 200 and
 C> 10 and
 volume > average(V[1],20) *3 and
 GetField("法人持股","D")- GetField("法人持股","D")[5] >GetField("最新股本")*10
 then ret=1;

符合這個腳本的股票,本業及稅前都是賺錢的,有一定的成交量,而且成交量是過去二十日均量的三倍,然後最近這幾天法人買超佔股本一定的比例。

我把這個選股策略拿去回測過去兩年,回測報告如下

2018120402

勝率一般,報酬率不差,而且很顯然的,是屬於空頭市場沒有表現,但多頭市場表現會打敗大盤的選股策略。

之前比較典型的例子如下

2018120405

前陣子觸發的股票則有以下兩檔

2018120404 2018120403

這個腳本,在昨天大漲之後,出現的訊號如下

2018120407

 

 

有價值型投資概念的成長股投資法

價值型投資與成長型投資,原來是截然不同的概念,但如果我們去尋找那些低本益比,低PB的股票,然後如果這些股票的殖利率與累計營收成長率都在所有股票中的前300名,而且開始呈現出量起漲的走勢,那麼這種具有價值型概念的成長股,從回測的數字上看,波段持有,有頗高的勝率,是一個值得深入研究的選股策略。

要符合上述的要求,我訂的選股條件如下

2018120303

其中用到的兩個腳本分別如下

本業推估本益比低於N

input:peuplimit(12,"預估本益比上限");
value3= summation(GetField("營業利益","Q"),4); //單位百萬;
value4= GetField("最新股本");//單位億;
value5= value3/(value4*10);//每股預估EPS
if value5>0 and close/value5<=peuplimit
then ret=1;

暴量剛起漲

Input: day(10,"日期區間");
 Input: ratioLimit(5, "區間最大漲幅%");
 
 Condition1 = C=highest(C,day);
 //今日最高創區間最高價
 
 Condition2 = V=highest(v,day);
 //今日成交量創區間最大量
 
 Condition3 = highest(H,day) < lowest(L,day)*(1 + ratioLimit*0.01);
 //今日最高價距離區間最低價漲幅尚不大
 
 Ret = Condition1 And Condition2 And Condition3;

用上述的選股策略去回測過去三年及過去十年所有的普通股,60天後出場,回測報告分別如下

2018120301

 

2018120304

交易次數不多,但勝率及報酬率都頗高。

以下就是這個選股策略挑到的其中一檔

2018120302

這種營收成長排在前1/5且低本益比,低PB,高殖利率的股票,當量能開始成長時,往往是不錯的波段進場時機。

 

籌碼集中度大增的股票

關於勝率一般般,但常能找到飆股的選股策略裡,籌碼集中度大增算是蠻具代表性的一個。

這個選股法的概念是,找過去十天主力買超張數佔成交量超過四分之一的股票,然後這些股票還要符合股本不大,非雞蛋水餃股及五日均量超過五百張等條件,我列的選股條件如下

2018113001

其中籌碼集中度篩選的腳本如下

input:day(10,"天數");
input:ratio(20,"最低百分比");

settotalbar(day);
value1=GetField("主力買賣超張數","D");
if volume<>0 then 
 value2=summation(value1,day)/summation(volume,day)*100
else
 value2=0;
if value2>=ratio then ret=1;
outputfield(1,value2,2,"籌碼集中度");

用這個選股策略去回測,出場設十個交易日後,回測報告如下

2018113003

如果把籌碼集中度的比例拉高到25%,把持有天數改成二十天,回測報告如下

2018113002

交易次數少,勝率過六成,且平均報酬率高。 因為這麼嚴格的篩選之下,能夠挑出來的,常常都是短線的飆股,例如以下幾檔

2018113007 2018113006 2018113005 2018113004

這個策略平均一年只出10多個訊號,但符合條件的,有六成的機會漲勢會比較兇猛,供大家參考。

殖利率高且法人大買的股票

我們在投資價值型股票時,最常見的困擾是,明明這檔股票殖利率很高,但不知道什麼原因,股價就是不會動。由於殖利率是拿過去的配息數據當基準,所以最有可能的就是這家公司未來的獲利能利可能會不若以往,所以股價在反映未來獲利的衰退。又或者是大環境或該產業的特定情況,讓市場充滿悲觀的氣息。

為了在高殖利率的股票中,過濾出這些市場已經不再樂觀看待的股票,我想以法人為師,加上一個三大法人開始進場的過濾條件。 我假設高殖利率的股票,如果法人連日大買,代表法人也認同這檔股票目前的股價是值得進場的。

根據上述的思考邏輯,我設了以下的選股條件

2018112902

我想挑出殖利率大於10%而且近五天裡三大法人合計買超大於5000張的股票,我認為這是夠便宜且市場認同的標的

我把這個選股策略拿去回測所有股票,設二十個交易日後出場,過去三年的回測報告如下

2018112901

從報酬率的走勢圖來看,在空頭轉多頭時,這個選股法可以狠狠的打敗大盤。

不過由於這個選股法的勝率不算高,所以我特別檢查所有回測裡虧錢的交易,發現虧錢的交易裡,有不少是景氣循環的權值股,是外資常交易的,這種可能要過濾掉,另外就是出訊號前如果價位短線大漲過的,法人大買反而會套牢。

比較典型的,是像下面這檔旺宏這種出訊號前漲幅不大且標的本身不算法人常用來跟指數連動的權值股

2018112903

 

 

十年寒窗股的一朝成名日

如果一家公司每年營業額有超過8%以上是投入研究發展當中,而且這家公司本業是賺錢的,營收年增率也呈現正成長,那就代表這家公司正處於一個良性循環的發展方向中,這時候如果成交量從原本不受青睞的極少量,開始漸漸被市場所重視,那麼這樣的公司是不是有可能就是所謂十年寒窗無人問,一朝成名天下知的潛在飆股?

我試著設定一個這樣的選股策略,回測的結果發現,符合這樣條件的公司,只有一半的機率股價會上揚,但這一半的公司裡, 確實有不少飆股,這是一個勝率不高,但總投資報酬率很高的選股策略

根據上面的描述,我寫的選股策略如下

2018112808

其中無量變有量這個腳本如下

 
input:v1(1000,"前一根bar成交量");
input:v2(1500,"這根bar成交量");
if trueall(volume[1]<=v1,10) and volume>v2 
then ret=1;

這個腳本是去找出過去10天成交量都不到1000張而今天成交量超過1500張的股票

用上述條綜合而成的選股策略,回測過去三年裡二十個交易日後出場及四十個交易日出場,回測報告分別如下

2018112802 2018112801

我們從報告中可以發現,這是一個勝率一般,但報酬率很高的策略,特別是在大多頭市場,確實可以找到一些所謂的飆股。下面就是這個選股策略在過去三年裡曾經挑中的一些股票

2018112807 2018112806 2018112805 2018112804 2018112803

這些公司最大的特色就是研發費用佔公司營收很高的比例,這種的概念就是持續不斷地在尋找公司的下一個成長動能,一旦找到了,而且真的可以帶來新的成長動力,然後市場也認同,覺得有無限想像空間,那麼股價就有可能出現大幅度的上漲。

 

 

整理夠久的股票開始上揚

如果一檔股票,持續很長的時間裡,單日上下震幅都不到3%,而且期間內的最高點與最低點差不到5%,代表這檔股票處於乏人問津的冬眠狀態,如果這樣的公司,近幾日都出現主力買超,且最近一天上漲超過2.5%,那就代表冬眠的股票好像快要甦醒了。

例如下面這張圖,就是很典型的這種股票

2018112703

我把上述的想法寫成以下的腳本

if close<>0 then 
value1=truerange/close*100;

if trueall(volume[1]<1000,50)
and trueall(value1[1]<3,50)
and close>close[1]*1.025
then ret=1;

然後再加上主力連續三天買超的選股條件,合起來變成一個選股策略,這個策略如果回測過去三年,停損停利都設10%,回測報告如下

2018112701

下面的個股是其中一檔符合條件的股票

2018112702

好股票平台整理後突破

平台整理後突破,意味著原本多空的均勢出現了決定性的變化,多頭終於突破了僵持不下的格局。

2018112601

以上圖為例,南帝原本在24.7到25.7之間盤整了超過30個交易日,終於有一天站上了26元,代表著僵持不下的僵局已經被打破。

我們可以用以下的腳本來代表來挑出平台整理後突破的股票

input:Period(20, "平台區間");
input:ratio(7, "整理幅度(%)");
input:ratio1(3,"各高點(低點)間的差異幅度");

variable:h1(0),h2(0),L1(0),L2(0);

h1=nthhighest(1,high[1],period);
h2=nthhighest(4,high[1],period);
l1=nthlowest(1,low[1],period);
l2=nthlowest(4,low[1],period);

if (h1-l1)/l1<=ratio/100
 and (h1-h2)/h2<=ratio1/100
 and (l2-l1)/l1<=ratio1/100
 and close crosses over h1
 and close[period+30]*1.1<h1
 and volume> average(volume,period)
then ret=1;

outputfield(1, h1, 2, "區間高點", order := -1);

這個腳本的概念是過去一段時間,最高點跟最低點之間差不到7%,第一高點跟第四高點之間差不到3%,第一低點與第四低點之間差不到3%。

單純符合這樣條件的股票很多,但只有在多空雙方的僵持是貨真價實的,是眾多勢力參與的,那麼突破才有意義。所以我再另外加上兩個選股條件

2018112602

如此一來,就可以挑出市值前800大,且ROE表現不錯,然後最近多空僵持的格局出現改變的股票。

我拿這樣的選股策略去回測過去三年,出場點設在20天之後,回測報告如下

2018112603

 

M頭的腳本怎麼寫?

M頭的腳本怎麼寫?

我自己的寫法如下:

value1=swinghigh(high,30,10,10,1);
//這段時間的第一轉折最高點
value2=swinghigh(high,30,10,10,2);
//這段時間的第二轉折高點
value3=swinglow(low,30,10,10,1);
//這段時間的第一轉折低點
value4=swinghighbar(high,30,10,10,1);
//第一轉折高點距離現在幾根BAR
value5=swinghighbar(high,30,10,10,2);
//第二轉折高點距離現在幾根BAR
value6=swinghighbar(low,30,10,10,1);
//轉折低點距離現在幾根BAR
if absvalue(value1-value2)/value1*100<3
//兩個高點差小於3%
and value6>value4 and value6<value5
//兩個高點中間有一個這段時間的低點
and value2=highest(high,100)
//第一個高點是長期以來的最高點
and close crosses under value3
//收盤價跌破這段計算時間的低點
then ret=1;

這個腳本是 假設整個M頭的形成需要30個交易日,用這個腳本是會挑到一些有M頭的股票,甚至是到頸線又反彈後再破頸線的股票,例如下圖

2018112301

拿這腳本去回測,基本是可以找出M頭的股票,至於能找出多少個,就看其中幾個參數怎麼設,這點請參考Swinghigh及swinglow函數的用法。

估值高折價股盤整後出量

我是一個很保守的人,對於一家公司的目標價,我頂多只願意出到每股淨值加上未來五來營業利益的折現值。假設有一檔股票每年本業都賺一塊錢,每股淨值10元,不考量折現率,這檔股票我認為合理的價位就是10+1*5=15元。所以像這樣的股票,如果跌到12元,那麼我就預期它的合理上漲空間是(15-12)/12=25%。它的折價率是(15-12)/15=20%。

所以在挑股票的時候,我當然是挑那些折價率愈高的股票,那就代表上漲的空間愈大,另一方面也代表下跌的風險應該比較有限。

基於這樣的原理,我寫了以下的腳本,來挑出在這種簡單的估值下,折價高的股票

input:ratio(30,"折價比例%");
value1=GetField("營業利益","Y");//百萬
value2=GetField("每股淨值(元)","Y");
value3=GetField("普通股股本","Y");//單位:億
value4=value1*5/100/value3*10;
//用最近一年營業利益乘以五當未來五年的獲利
//算出未來五年的每股淨值增加值]
value5=value2+value4;
//以目前的每股淨值加上上述數字即是公司內含價值
//(不考慮折舊的issue)
if close*(1+ratio/100)<value5
then ret=1;
outputfield(1,value5,1,"內含價值");
outputfield(2,close,2,"目前股價");
outputfield(3,1-close/value5,"折溢價情況");

這樣挑出來的股票,都是折價率高的,但為了怕挑出那些沒啥獲利的股票,這樣加上五年的每股營業利益也沒有啥意義,所以我就加上了EPS要超過0.5元這樣的選股條件。

 

但這樣挑出來的股票,還不見得要馬上進場,最好是等到這檔股票落底之後才進場,所以我就用以下的腳本來挑出那些估值高折價且過去一段時間處於盤整階段,然後現在開始出量上揚的標的。

Input: day(10,"日期區間");
 Input: ratioLimit(5, "區間最大漲幅%");
 
 Condition1 = C=highest(C,day);
 //今日最高創區間最高價
 
 Condition2 = V=highest(v,day);
 //今日成交量創區間最大量
 
 Condition3 = highest(H,day) < lowest(L,day)*(1 + ratioLimit*0.01);
 //今日最高價距離區間最低價漲幅尚不大
 
 Ret = Condition1 And Condition2 And Condition3;

結合了這兩個腳本再加上EPS超過0.5的條件,就形成了一個估值高折價且股價盤整後上漲的選股策略,我拿這樣的策略去跑回測,持有期間是40天,停利是20%,停損是10%,其結果如下

2018112201

看得出來,這個策略在空頭市場還是不靈,多頭市場則還算穩定,總的來說,勝率還有六成。

這個策略還有一些調整的空間,例如得考慮未來五年獲利變化的方向,所以如果拿來用在裕融,中保等獲利穩定的公司,可能比較合適,但這樣的公司,估值的折價不會像上述腳本中折價70%這麼高,具體要作麼做,我也還在嚐試,有比較具體的結果,再來跟大家報告。

 

夠便宜且整理結束

這個策略是是融合價值型,基本面與技術面的選股法。

我的選股法裡包含了兩個腳本

一個是關於估值及營收成長的,我寫的腳本如下

input:lowbond(0,"eps下限");
input:lowbond1(10,"累計營收yoy下限");
input:lowbond2(8,"本業本益比上限");


if getField("每股營業利益(元)", "Q")>=lowbond
and getField("累計營收年增率", "M")>=lowbond1
and close/(getfield("每股營業利益(元)", "Q")*4)<=lowbond2
then ret=1;
outputfield(1,getfield("每股營業利益(元)", "Q"),2,"本業eps ");
outputfield(2,close/(getfield("每股營業利益(元)", "Q")*4),1,"本業本益比");
outputfield(3,getField("累計營收年增率", "M"),1,"累計營收年增率");
outputfield(4,getfielddate("每股稅後淨利(元)", "Q"),0,"財報日期");

 

 

透過這個腳本,我們挑那些用最近一季營業利益去估算的本益比低於8,且累計營收年增率大於10的標的。

在技術面則是關於整理後帶量突破的腳本

Input: day(20,"日期區間");
 Input: ratioLimit(7, "區間最大漲幅%");
 
 Condition1 = C=highest(C,day);
 //今日最高創區間最高價
 
 Condition2 = V=highest(v,day);
 //今日成交量創區間最大量
 
 Condition3 = highest(H,day) < lowest(L,day)*(1 + ratioLimit*0.01);
 //今日最高價距離區間最低價漲幅尚不大
 
 Ret = Condition1 And Condition2 And Condition3;

透過這個腳本,我們挑過去20天裡,震盪幅度小於7%,然後今天價量都創20日以來的最高點。

把這兩個腳本用and結合成一個選股策略

這個策略回測過去7年, 停損停利都設為7%,回測報告如下

 

勝率七成,MDD只有-14%,總報酬長期打敗大盤,缺點是像2020年疫情期間可能有很長時間,大部份股票都是大跌後再大漲,就挑不到橫向整理的股票。

但長期來看,這種用本益獲利去作估值,用技術面挑進場時機的選股策略,還是可以打敗大盤,很值得大家深入研究,