Author Archives: 發財橘子

尋找阿爾發之旅系列23

投信買超是大家常常參考的數據,如果買超張數佔成交量一成以上,從回測看,有較高的機率後市看漲,如果結合價值型的一些衡量標準,往往會形成一個有超額報酬的選股策略。

投信一般買一檔股票,不能買超過當天成交量的一成,所以如果有一檔股票,投信買超佔成交量超過一成,意思是很有可能不止一家投信在買。

我利用這樣的概念,去回測過去七年當日買超>10%的股票,停損停利都設為7%,回測的結果如下圖:

這顯示投信買超>10%是有超額報酬。

我這個人生性保守,投信大買的股票,如果從價值投資的標準來計算,股價有被低估,這樣買起來就更安心,所以在設計濾網時,用的是價值型數據。

這裡我用的是企業價值去除以EBITDA,關於這個數據的說明,請參考這個連結

計算的公式及腳本如下:

value1=GetField("總市值","D");//單位億
value2=GetField("負債總額","Q");//單位百萬
value3=GetField("現金及約當現金","Q");//單位百萬
value4=GetField("短期投資","Q");//單位百萬
value5=GetField("稅前息前折舊前淨利","Q");//單位百萬

var: pricingm1(0);
input: bl(4,"上限值");
if value5>0 then begin
pricingm1=(value1*100+value2-value3-value4)/summation(value5,4);

if pricingm1<bl and pricingm1>1
then ret=1;
outputfield(1,pricingm1,1,"EV/EBITDA");
outputfield(2,value1*100+value2-value3-value4,0,"EV");
outputfield(3,value5,0,"EBITDA");
outputfield(4,value1,0,"總市值");
outputfield(5,value2,0,"負債總額");
outputfield(6,value3,0,"現金");
outputfield(7,value4,0,"短期投資");
end;






 

 

這裡我用的標準是企業價值除以EBITDA要<5

另外再加上最近這兩年EPS都>0

這樣的回測報告就會變成如下圖:

從這個收益曲線來看,這個策略在市場還算OK時有超額報酬,但在空頭市場表現就不好,算是一個攻撃型的交易策略。

有興趣的朋友可以再進一步看看如何優化,這種法人大買價值型股的策略,我有好幾個,實戰的結果這樣的概念是OK的,之後再陸續跟大家介紹。

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.psee.io/5gppxe

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

 

尋找阿爾發之旅系列22

昨天提到這系列裡有不少篇,都是用不同的腳本,去尋找整理後剛轉強的股票,今天再以布林指標做例子,跟大家分享用布林指標來尋找整理後轉強的股票。

首先來找在整理中的股票,在布林指標中,是用布林帶寬小於N%來描敘整理格局:

input:length(20,"計算天期");
 input:width(1.5,"帶寬%");
 variable:up1(0),down1(0),mid1(0),bbandwidth(0); 
up1 = bollingerband(Close, Length, 2);
 down1 = bollingerband(Close, Length, -2 ); 
mid1 = (up1 + down1) / 2; bbandwidth = 100 * (up1 - down1) / mid1; 
if bbandwidth <width then ret=1;

其次我們用突破布林線上緣來形容股價轉強:

Input: Length(20), UpperBand(2);

SetInputName(1, "期數");
SetInputName(2, "通道上緣");

settotalbar(3);

Ret = close >= bollingerband(Close, Length, UpperBand);


 

 

 

兩個腳本合在一起,以下是過去七年停損停利都設7%回測的結果:

勝率高達70%,收益曲線算是夠平滑,唯一缺點就是總報酬率沒有非常的突出,我用了一些過濾條件想要找出提昇報酬率的方法,我試過各種方法,有的可以提高勝率,MDD也變小,收益率更平滑了,但因為交易次數變少了,總報酬反而降低了。

像是我加上累計月營收YOY大於5%這個條件,回測報告如下圖:

 

 

如果改成當月營收年增率大於0,回測報告如下:

 

用這個策略再次跟大家說明整理後轉強,真的是一個很值得留意的訊號,不同的腳本,差別在於整理的時間強短,以及轉強的定義差別,但概念的核心是類似的,大家可以根據這樣的思路,去找出您心目中更好的策略,祝大家今天操作順利。

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.psee.io/5gm43n

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

 

 

尋找阿爾發之旅系列21

投信第一天大買這個現象,從回測中發現,原本投信持股不到500張,但最近一個交易日投信買超佔成交量超過兩成,是一個有不錯勝率的條件。今天來跟大家討論這個現象,以及衍生出來的交易策略。

根據上述的條件,我原本寫的腳本如下:

腳本

input: v1(500, "投信估計持股上限(張)");

value1=GetField("投信持股","D");
value2=GetField("投信買賣超","D");

if value1 < v1 and value2 > VOLUME*0.2
then ret=1;

 

過去七年,跑所有普通股,停損停利都設為7%,回測報告如下圖:

如果放寬持股標準到1000張,加上價值型因子BP<1.5,回測報告如下:

這個策略的表現不差,但我一直對MDD有點介意。

所以在腳本上加上一行字,找出大買超是近期第一天的個股:

input: v1(500, "投信估計持股上限(張)");

value1=GetField("投信持股","D");
value2=GetField("投信買賣超","D");

if value1 < v1 
and value2 > VOLUME*0.2
and barslast(value2 > VOLUME*0.2)[1]>100
then ret=1;


用這個腳本去回測,MDD小了一些,勝率也較高,但因為符合條件的股票變少,所以總報酬就變低了。

但這樣的收益曲線,其實是更令人安心。

不過要特別強調,這個腳本抗大跌的能力不高,也就是說,真的踫到市場重挫時,這個策略找到的股票,一樣會跌,要留意執行停損。

這也不難了解,畢竟投信如果可以更低價買到這些股票,是絕對不會追高的。

以上是今天跟大家分享的,我覺得有不斷重覆發生的高勝率現象,祝大家今天操作愉快。

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.psee.io/5gjcus

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

尋找阿爾發之旅系列20

在這個系列的前面幾篇,常用到創期間新高這個條件,特別是整理後創期間新高這樣的現象,一般人都不喜歡追高,但我從回測中發現,整理後創區間新高的回測效果都不錯,我有發現嘉義幫及虎尾幫追漲停的股票,也有一些是屬於這一類的,今天就舉另一個選股策略來跟大家討論這個情況。

先讓大家看一張回測圖:

這是一個很典型的,有超額報酬的選股策略。

其中用到的腳本我列在下面:

input:day(10);
input: FastLength(12, "DIF短期期數"), SlowLength(26, "DIF長期期數"), MACDLength(9, "MACD期數");
variable: difValue(0), macdValue(0), oscValue(0),Kprice(0);

settotalbar(100);
MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);
if absvalue((average(close,20)-close)/close)*100<2
//股價距離月線不到2%
and absvalue((average(close,60)-close)/close)*100<2
//股價距離季線不到2%
and close=highest(close,day)
//股價創10日高點
and macdvalue>macdvalue[1]
and macdvalue>0
and difvalue>0
then ret=1;


 

這個腳本要符合四大條件:

一、股價收十天最高點

二、股價距離月線不到2%

三、股價距離季線不到2%

四、MACD處於多頭架構中

用這個腳本去回測,回測報告如下:

這個策略的勝率達到68%,而且交易次數高達4464次,代表在停損停利都設7%的情況下,過去七年,出現這種股價與月線季線糾結後創十日新高的公司,是具有穩定的高機率上漲的機會。

因為交易次數蠻多,實戰的時候可能會過度交易,所以我設了幾個濾網:

一、收盤價小於50元

二、近一日三大法人合計買超達到成交量兩成以上

三連續兩年EPS都大於0.5元

這樣出來的回測圖就是最上面那一張。

濾網大家都可以自己設,關鍵的核心在於整理後創新高這樣的核心概念。

在這系列先前也有幾個腳本有類似這樣的概念。

像是上一期的CMI加上乖離率限制就有這樣轉強但還不到強弩之末的概念。

這系列最常拿出來搭配其他條件的暴量起漲腳本,三個條件中,也是有距離區間低點不遠且今日收盤創區間收盤最高價這兩個條件。

系列13中介紹的百日來第一次創百日新高,也是類似的概念。

這些腳本都證明了,整理後剛剛轉強,是一個很不錯的策略基礎。

如果再考慮其他條件,往往能形成一個可以實戰的交易策略。

有興趣的朋友,不妨自己嘗試設計看看。

祝大家今天操作順利!

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.psee.io/5gccga

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

 

尋找阿爾發之旅系列十九

用技術指標來追求超額報酬,是一項流傳已久的技術,我有位優秀的同仁用CMI市場波動指標來作這件事,效果蠻好,來跟大家分享他的作法。

先給大家看他寫的策略的回測圖:

接下來跟大家說明他的思路。

所謂的CMI指標,是用一段區間的最高價減最低價作為分母,用區間的收盤價差額當分子,然後再乘以100。

這個數字愈高,代表現在的收盤價離區間高點愈高,反之則是目前的股價愈接近區間的底部區。

其次,他也用到了乖離率這個指標。

所謂的乖離率,是以收盤價減去特定期間的移動平均作為分子,用特定期間的移動平均作為分母,再乘以100。

乖離率代表股價跟移動平均線的距離。

我同事發現,如果CMI近三天都在65以上,且6天的CMI移動平均超過81  但七天的乖離<4。

意思是股價離10天的高點很近,但這陣子都收接近區間高點,但股價還沒有噴發。

這樣的股價表現,作短多的時候會有不差的勝率。

以下是他寫的腳本:

Input:Period(10); 

Var:CMI(0),AvgCMI(0); 

// 計算 
CMI=100*(C-C[Period-1])/(Highest(H,Period)-Lowest(L,Period)); 
AvgCMI=average(CMI,6); 

// CMI趨勢向上 
if trueall(CMI>=65,3) and AvgCMI>=81 and Bias(7)<4

and Average(GetField("成交金額(億)","D"),5)>=0.2

then ret=1;




 

這腳本過去七年停損停利設7%的回測報告如下:

交易次數2200次且勝率有61.7%,代表這樣的作法確實有超過報酬。

接下來我同學加上收盤價小於50元及近一日三大法人買超大於5% 這兩個條件。

他說他覺得50元以下的股票如果法人也進場,在技術面上出現上述的情況,會有較大的機率短線還有續漲高間。

這就是最上方回測圖所有的條件。

要加上什麼條件,每個人的看法未必相同,像我就喜歡挑高毛利且低總市值的股票,所以我設的濾網是毛利率大於30%,且總市值<200億,回測的結果如下圖:

勝率還好,但總報酬很迷人,只是今年下半年績效不大優。

大家不妨試試,自己來設條件,找出您的私房策略。

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.psee.io/5g68ca

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

尋找阿爾發之旅系列十八

觀察市場,尋找各種特定條件,當股票符合這些特定條件,短線會有較高的機率上漲,是小弟我這些年每天的必修課,這系列講的內容,就是這些特定條件。

當初在尋找這些特定條件,有些是在很偶然情況下的意外發現,例如今天要介紹的這個條件: 主力在默默收集籌碼。

一開始我都是用主力買超幾天超過幾張這類的敘述,但效果並不穩定,後來發現:

如果近十天裡,買進家數比賣出家數少很多,且愈少愈多,可能是主力默默在吸納籌碼的徵兆。

於是寫出以下的腳本:

// 作多: 持有期間=10
//
input:period(10,"籌碼計算天期");

Value1=GetField("分公司買進家數","D")[1];
value2=GetField("分公司賣出家數","D")[1];
value3=(value2-value1);
//賣出的家數比買進家數多的部份
value4=average(close,5);
//五日移動平均
if countif(value3>50, period)/period >0.7
and linearregslope(value4,5)>0
then ret=1;

光用這個腳本去跑過去七年的所有普通股,停損停利都設7%,回測報告如下:

收益曲線穩定的領先大盤,勝率接近六成,交易次數超過1500次,完全符合我尋找的特定條件的標準。

接下來就是怎麼把這個條件搭配其他條件後變成一個可以拿來實戰的選股策略。

我對這種主力吸納籌碼的條件,通常都會加上價值型的選股條件,因為股價被低估且主力進場,算是這些年我在操作上常用的選股準則。

這裡介紹兩個不同的價值型條件。

第一個是加入pb<0.8這個條件,

回測報告如下圖:

 

另一個是加入市值營收比<1這個價值型的條件,回測報告如下圖:

這種透過當日買進券商分點數與賣出券商分點數的差異所衍生出來的條件,還有不少值得大家發掘的聖杯,有機會再跟大家作介紹,祝大家操作順利。

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.psee.io/5g3d8j

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

尋找阿爾發之旅系列十七

我們在尋找私房交易策略的過程裡,往往會因為覺得應該會不錯的想法,結果卻不如人意,莫氣餒,莫沮喪,老天爺有時候就是會跟我們開個小玩笑,把先前介紹過的這些因子加上去試試,伊人往往就在燈火闌珊處。今天就來跟大家介紹這樣的例子。

每次財報公佈後,我都會去找那些連續三季毛利率成長的股票,因為這代表公司的產品體質,經營效率,甚或是與上下游的議價能力在好轉中,這樣的好轉應該會最終反映在獲利及股價上。

以第三季的財報為例,就共有163檔股票符合這樣的情況。

但如果拿這個單一條件去回測,勝率才54%,報酬率也不如大盤,冒似是一個有道理的選股條件,但產生不了超額利潤。

我加設了月漲幅大於3.5%但小於10%的條件,找那些還沒在股價上有表現的毛利率成長股。

回測的結果勝率57%,總報酬109%,有比較好一點,但收益曲線無法每年創新高。

當我試了各種方法無效之後,我觀察到,這樣的公司之前股價沒有太亮眼的表現,可能要到法人或市場人士因著毛利率連三季回升而去研究這檔股票,然後才會出現暴量創波段新高的情況,接著才會有短多行情。

於是我就使用先前常用的暴量起漲腳本。

暴量剛起漲

腳本

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;

光是暴量起漲腳本的回測報告如下圖

交易次數非常多,小藍點也很密。

加上連續3季毛利率成長,回測報告如下圖:

勝率接近72%,收益曲線更平滑,已經是一個可以實戰的選股策略了。

單一因子,績效未必會好,但有意義的數據,往往需要搭配在特定的情勢下效果會更好,因子之間要怎麼搭,有時候是憑著對市場的觀察,之後有機會,再跟大家分享類似的例子,也祝大家找到自己超強的私房策略。

祝大家今天操作順利!

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.pse.is/5fyehg

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

尋找阿爾發之旅系列十六

在尋找可以打敗大盤的因子過程中,我也會從學術界的文章裡偷概念,今天介紹的GVI指數就是一個例子。GVI是成長價值指數(GVI, Growth Value Index)的縮寫,是淡江大學土木工程系葉怡成教授的發明,他原本是用來挑長線股票,我發現如果這個指數是由低往上走,是一個蠻不錯的短多訊號。

關於葉教授及GVI指數,我是看這篇文章認識的。

當時我有照這個想法寫了一個腳本及介紹文章

後來我無意中發現,好像GVI指數如果由底部往上走,往往會是短多的機會,於是我寫了以下的腳本:

value1=GetField("股價淨值比","D");
value2=GetField("股東權益報酬率","Q");
var:GVI(0);
GVI=1/value1*(1+value2)*(1+value2)*(1+value2)*(1+value2)*(1+value2);
if gvi cross over 1.2 
then ret=1;

一樣回測過去七年,停損停利設為7%,報告如下:

這樣的收益曲線及交易次數,顯示這個因子的確是可以打敗大盤,缺點是交易次數太多,MDD太大。

所以我用了其他因子當濾網。

加上總市值小於300億元,以及連續五年EPS大於0這兩個條件。

回測報告如下圖:

 

這樣勝率會提高到七成以上,缺點是總報酬率變低了。

我試著用另一個先前提過的因子: 大股東站買方。

回測報告如下:

勝率69% ,但總報酬高非常多。

在介紹了16個我認為可以打敗大盤的因子之後,這種多因子一起搭配運用的選股策略,是我在開發策略時常用的作法,朋友有興趣的話,也不妨試看看,不過千萬記得因子跟因子之間最好是完全沒有任何相關性。

我之後也會再不斷嘗試學界提出來的因子,若有不錯效果的,會再跟大家做介紹, 祝大家今天操作順利。

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.pse.is/5f3e3x

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

尋找阿爾發之旅系列十五

一般來說,營業利益率不差的公司,市值會比營收高一些,因為這樣的公司,同業如果想併它,往往會算說一年可以帶來多少業績,通常會抓個三年左右作為其合理的估值,也就是說,市值營收比的比值大約在3左右。

如果一家營業利益率不差的公司,市值營收比接近一比一,通常是因為公司的業績在衰退。

反之,如果公司累積營收在成長,且營業利益率蠻穩定,但市值營收比卻接近1:1 ,那可能就是短線上的一個機會。

根據這樣的概念,我訂了一個選股策略如下:

一、總市值營收比小於1.2

二、營業利益率大於5%

三、累計營收年增率大於5%

其中市值營收比小於N這個腳本如下:

value1=getField("總市值(億)", "D");
value2=getField("營業收入淨額", "Y");//單位:百萬
value3=(value1*100)/value2;// 總市值營收比
input:ratio(1,"總市值營收比");
if value3<ratio then ret=1;

 

這個選股策略過去七年,停損停利設為7%,回測報告如下圖:

這是一個長期可以打敗大盤且交易次數多達9800多次的選股法。

在這一系列中,我想找的數據都是單一或簡單搭配的條件就能打敗大盤,有穩定的收益曲線及夠多的交易次數,這個選股法是符合這個標準的。

代表符合這樣條件的股票,長期來看,短多是有一定的優勢的。

接下來從這些股票中,尋找最佳進場點。

這裡我用的是暴量起漲這個先前介紹過很有用的腳本:

 

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;

 

另外我把市值營收比的條件設的更嚴  ,必須<1。

回測的結果如下圖:

勝率達到68.5% 且交易次數289次。

這一系列我會持續尋找這類概念單純的選股條件及進場時機,大家可以使用這些概念作為基底,再根據個人的經驗加上各種濾網,尋找最合適您自己的交易策略。

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.pse.is/5fv4wy

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)

尋找阿爾發之旅系列十四

有些因子長期表現非常穩定的領先大盤,回測起來,收益曲線穩定的成長,有些則是多頭市場表現會非常突出,平常勝率一般般,今天要跟大家介紹的散戶持股比例急遽降低就是屬於這一種。

所謂散戶持股比例急遽降低,我的定義是用集保每週六一早公佈的數據,去計算出上週五個交易日,持股佔10張以下的股東總持股,佔股本比例在一週之間降低超過20%。

這樣的條件,比較適用在那些總市值較低的個股。

所以加上總市值低於200億元的條件。

下面這張圖是過去七年,如果停損停利都設為7%,用上述的條件去回測的結果:

大家會發現,勝率其實不算高,但報酬率蠻好的。

而且收益曲線都是在行情好時有很不錯的表現。

其實這蠻合理,因為市場氣氛好散戶通常不會賣,散戶在多頭市場佔股本比例降低,表示市場有大咖的在收。

但空頭市場散戶賣股票很合理,所以散戶持股比例大跌,未必代表股票就會漲。

於是我寫了一個大盤走多頭的腳本:

value1=getSymbolField("tse.tw", "收盤價", "D");
if value1> average(value1,22)
then ret=1;

用加權指數佔在月線之上,作為上述策略的過濾條件,回測的結果變成如下圖:

交易次數變少,但總報酬率變的更大。

當然這樣的策略還是不能實戰,但至少讓我們得出一條rule: 市場走多頭時,如果小市值股票前一週散戶佔持股比例急遽下跌,是個值得留意的訊號。

至於要如何能改寫成一個勝率夠高,可以實戰的策略,小弟也還在嚐試中,如果有成果,再跟大家報告。

祝大家操作愉快,也祝大家週末愉快!

===

● XQ【盤後量化選股模組】($1,000) 完整介紹 ➤https://xqcom.pse.is/5c9d58

● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,可折抵模組費用$100!

● 量化交易超值方案!購買就送:【量化積木+台股進階】(總價值$800)