Author Archives: 發財橘子

籌碼發散的股票是長空的最佳標的嗎?

昨天寫了我挑空單的邏輯,我頗敬重的一位江湖大佬看到了,他提了一個很有趣的觀點~ 長空的股票只要看籌碼就夠了,其他都不要看,會被誤導。他說只要籌碼是從大股東,大戶及法人手中一直往市場上倒,而承接的都是散戶,這種股票就算在多頭市場也很難漲,但如果你還要去考慮基本面技術面什麼的,反而會因為噪音太多而迷失方向。為了印證他的觀察,以下是我的實驗過程。

根據他的說法,我列出作空的一些條件

1.買進的分公司家數遠多於賣出的分公司家數

2.法人賣超

3.主力賣超

4.千張大戶人數及張數在減少

5.融資餘額在增加

6.借券賣出餘額張數在增加

7.關鍵券商賣超

8.散戶持股人數及張數在增加

9.內部人持股比例在減少

10.散戶買張在增加

11.地緣券商賣超

12.綜合前十大券商賣超

然後我寫了一個選股腳本,來設定每天符合這些條件達到一定的比例作為標準,然後再挑出最近幾天都有符合此標準的股票。

我寫的腳本如下:

value1=GetField("法人買賣超張數","D");
value2=GetField("買家數","D");
value3=GetField("賣家數","D");
value4=GetField("主力買賣超張數","D");
value5=GetField("融資餘額張數","D");
value6=GetField("借券餘額張數","D");
value7=GetField("關鍵券商買賣超張數","D");
value8=GetField("散戶買張","D");
value9=GetField("地緣券商買賣超張數","D");
value10=GetField("綜合前十大券商買賣超張數","D");
var:count(0);
count=0;
if value1<0 then count=count+1;
if value2>value3+30 then count=count+1;
if value4<0 then count=count+1;
if GetField("散戶持股張數","W",param := 50) >GetField("散戶持股張數","W",param := 50)[1] then count=count+1;
if GetField("散戶持股人數","W",param := 50) >GetField("散戶持股人數","W",param := 50)[1] then count=count+1;
if GetField("大戶持股張數","W",param := 400)<GetField("大戶持股張數","W",param := 400)[1] then count=count+1;
if GetField("大戶持股人數","W",param := 400) <GetField("大戶持股人數","W",param := 400)[1] then count=count+1;
if value5>value5[1] then count=count+1;
if value6>value6[1] then count=count+1;
if value7<0 then count=count+1;
if GetField("內部人持股比例","M")< GetField("內部人持股比例","M")[1] then count=count+1;
if value8>value8[1] then count=count+1;
if value9<0 then count=count+1;
if value10<0 then count=count+1;
input:n(10,"每日符合籌碼發散的條件數");
input:days(5,"計算天數");
if countif(count>=n,days)>=days*0.6 then ret=1;

以下是最近六個月及最近三個月的回測報告

2018102902 2018102901

對照下來,空頭市場如果單純使用籌碼發散這樣的精神去設定作空策略,確實是有效的策略。不過在多頭市場,一樣是會輸錢的。

高殖利率股且法人買超

高殖利率股算是價值型投資,法人連續買超,則是屬於籌碼選股,當價值型投資跟籌碼選股兩個條件同時發生呢?我用選股回測發現,當這兩個條件同時發生時,如果波段持有這些個股,在多頭市場,有不錯的勝率及投資報酬率。

我訂的選股策略如下

2018100503

用這個策略去回測,四十天後出場,回測報告如下

2018100501

挑中的股價是像這一類的

2018100502

因為要高殖利率,所以挑中時股價通常是回檔之後,於是,我們就會想說,那要不要把殖利率的標準訂高一點,代表拉回的幅度更大之後才進場,我在把殖利率往上提高到7%之後,回測報告如下

2018100504

各項數字卻實有比較好,交易次數也有226個,所以我乾脆把殖利率拉到10%以上才進場,回測報告如下

2018100505

這勝率高過七成,都快到四戰三勝了,但總交易次數只剩下46次,我怕是因為樣本數太少的關係,所以把回測期拉長到三年,勝率還是有三戰兩勝。

至於殖利率要用多少%

就看各位是希望多分散一些風險,多挑一些標的

還是想要精兵主義  看準了再下了。

 

 

董監回補持股是否代表後市可期?

江湖上有一個傳說,說如果大股東開始回頭買股票,代表後市可期,就算再跌,也跌不到那裡去。今天我們就來驗證這個說法到底靠不靠譜,以及更重要的,如果靠譜的話,要怎麼找出大股東開始回補持股的公司?

首先,我用XS的選股中心,訂出下面三個條件

2018100207

這個選股策略是找出過去三個月,每個月董監持股都在增加,且增加的幅度愈來愈大,這樣是濾掉那些只有單一個月因為特別因素而增加持股的現象,而加碼愈來愈大也代表大股東的心態愈來愈積極。

舉個例子來說,永豊金在今年的五月份就符合上述的條件(上面選股條件的增加幅度不是絕對值,是百分比),今年八月又再次符合選股條件

2018100208

對應其股價走勢如下

2018100206

我拿上述的選股策略去回測過去兩年,設60天出場,勝率其實只有五成左右,但績效確實可以打敗大盤

20181001

 

如果回測五年,看看這個選股策略在空頭市場的表現

2018100202

然後我們會發現,勝率還是在五成上下,空頭市場的表現跟大盤差不多。

後來我想到,如果大股東持股不高的,回補持股可能只是為了維繫經營權,不見得代表看好未來,所以我又加了董監持股佔股本比例大於20% 這個條件,然後持有天期改成九十天,過去五年的回測結果如下

2018100204

勝率是有突破五成,重點是總報酬率,平均報酬率及最大連續虧損及最大區間虧損的數字都變的很好,

如果在多頭市場,像過去兩年,數字表現的就更穩定了。

2018100205

透過這個實際的回測,我們可以發現,董監事有在持續增加持股的公司,整體來說,確實值得進一步研究背後的因素,有些潛力股,就在其中矣。

主流股蓄勢待發

我們一般都認定法人如果買超的股票算是主流股。 如果主流股離均線不遠且創近期新高,且上漲趨勢已成,那是不是後市看漲的機率會大一點? 基於這樣的想法,我寫了一個主流股蓄勢待發的選股策略。回測這個策略,發現這是屬於那種可以穩定維持一定獲利且淨值下跌風險還算OK的策略。

我寫的選股腳本如下

input:days(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
and absvalue((average(close,60)-close)/close)*100<2
//收盤價離月線及季線不遠
and close=highest(close,days)
//股價創十日新高
and macdvalue>macdvalue[1]
//macd上漲
and macdvalue>0
and difvalue>0
then ret=1;

再搭配近2 日法人持股增加全部由大到小排行前100名的排行條件

然後我跑所有的普通股,出場訂在20天後,以下是回測兩年及回測三年的回測報告

20181002 20181001

最大連續虧損及最大區間虧損率分別是6%及10%左右,兩年的報酬是49%,三年是65%,都能打敗大盤

所以看來挑這種剛起漲的主流股確實有一定的道理。

尋找股價已跌破7千點時股價的股票~ getbaroffset函數使用示範

昨晚跟友人聊天時,他問我能不能用電腦挑出,有那些股票,現在股價已經跌破上一波指數在7000點時的股價,今天就來跟大家介紹一個函數: getbaroffset  ,用這個函數就可以找出任一個曆日距今是多少根bar,然後就可以找出當天各檔股票的價位。

首先我們先去找一下上一次加權指數在七千點時是那一天

從下面的K線圖來看,20150824這一天,指數最低跌到過7203點,這一天應該是這幾年來加權指數的最低點

所以我們就可以寫出一個選股腳本,來尋找目前股價比那一天還低的股票有那一些

腳本的寫法如下

input:days(20150824);
value1=getbaroffset(days);
if close<close[value1] then ret=1;
value2=((close[value1]/close)-1)*100;
outputfield(1,close[value1],2,"當時股價");
outputfield(2,value2,0,"跌幅%");

這裡頭用到一個函數叫作getbaroffset,這個函數是您輸入日期,它會回傳該日期到最近一個交易日是距離多少根bar

這個函數的腳本如下

Input: target(numeric);

variable: i(1);

if target >=date then
begin
 GetBarOffset = 0;
 return;
end;

while true
begin
 Value1 = date[i];
 if Value1 <= target then 
 begin
 GetBarOffset = i;
 return;
 end;
 i = i + 1; 
end;

根據這個腳本我跑出來一共有391檔股票已經跌破當時的價位,我把跌幅大的列在下面

 

2018092804 2018092803 2018092802

這些股票的股價是比大盤提前修正的,我朋友的意思是提前修正的會不會也提前落底。

如何尋找波段的操作標的?

我們總是希望股票都能買在波段行情的初升段,然後穩穩的抱它到整個波段行情結束。要做好這件事,有兩個功課,一個是怎麼找出會有波段行情的股票,另一個則是找到波段出場的機制。 後者大家比較常用的是跌破月線或季線就出場,或是主力密集賣超就出場,前者的作風就很多元了,有的從基本面著手,有的從籌碼出發,有的用技術指標,有的看法人動向。我今天想跟大家介紹,我以往在研究單位時,所設計的一套篩選方式,我用電腦(當年是TEJ加EXCEL),篩選出一些感覺股價可能有表現機會的標的,然後收盤後就去看訪這些公司,從這當中挑出可能的投資標的。

我的篩選方式依資料頻率分別如下

日資料

  • 三大法人之前沒有買進,近幾日開始密集買超的
  • 主力連續累計買超達到一定的金額且佔成交量達到一定的比例
  • 籌碼從散戶手中被集中到少數券商分公司的特定人手裡
  • 成交量比以往多一些些
  • 公司派的券商持續且積極的買進

週資料

  • 集保張數減少(這是以前的作法,現在應該是要看千張大戶的人數是否有增多)

月資料

  • 月營收YOY出現過往未曾出現過的增長
  • 月營收MOM穩定成長
  • 連續數月的月營收表現出以往未曾有過的增長態勢

季資料

  • 毛利率比以往表現的更好(代表產品組合有所改變或是售價變好或是直接成本變低)
  • 營業利益率連續多季成長(代表有什麼事情做對了)

除了上述的條件之外,我挑的股票還要具備以下的特徵

  • 每股營收超過一定水準。(因為這樣基本面的變化才能明顯反映在EPS上)
  • 股本不能太大(因為太大的股本,如果籌碼凌亂,股性往往比較牛皮)
  • 過去一段時間漲幅要低於一定水準(畢竟不想幫別人抬轎)

過去我還在從事操盤工作時,每週會用上述的標準,篩選出符合條件的標的,接下來就是約公司去實地訪談,看看是不是公司在基本面上有些變化,足以支持股價出現波段的漲幅。

現在有了XS,不用等到週會,我可以每天跑一次這些條件之後,列出一個清單,然後再去找找看有沒有人最近有寫報告,把報告拿來研究一下,覺得不錯的就列入觀察名單,放到策略雷達裡去跑。

我的做法是,透過XS選股平台,把上述的過濾條件轉換成選股條件,如下圖

2018092701

其中有用到四個選股腳本,分別把腳本列在下面

籌碼被收集的中型股

input:period(10);
value1=GetField("分公司賣出家數")[1];
value2=GetField("分公司買進家數")[1]; 

 if linearregslope(value1,period)>0
 //賣出的家數愈來愈多
 and linearregslope(value2,period)<0
 //買進的家數愈來愈少 
 and value1>300
 and close*1.05<close[period]
 //但這段期間股價在跌
 and close*1.03<close[1]
 //今天又跌超過3%
 then ret=1;

籌碼從散戶手裡被收集

input:ratio(200); setinputname(1,"控盤者買張除以散戶買張的比例(%)");
input:volLimit(2000); setinputname(2,"成交量下限(張)");

settotalbar(3);

value1=GetField("控盤者買張");
value2=GetField("散戶買張");
value3=value1/value2 * 100;

if volume > volLimit and value3 > ratio and value3[1] > ratio
then ret=1;

投信初介入

input: day(30, "投信交易期間");

if GetSymbolField("TSE.TW","收盤價") > average(GetSymbolField("TSE.TW","收盤價"),10)
and Average(Volume[1], 100) >= 1000
then begin
 
 value1 = summation(GetField("投信買賣超")[1], day); 
 value2 = summation(volume[2], day);
 
 
 condition1 = value1 < value2 * 0.02;
 //先前投信不怎麼買這檔股票
 
 condition2 = GetField("投信買賣超")>= volume[1] * 0.15;
 //投信開始較大買超
 
 condition3 = H > H[1];
 //買了股價有往上攻
 
 condition4 = C > C[1];
 //今天收盤有往上走
 
 condition5=close<close[10]*1.05;
 
 RET = condition1 and condition2 and condition3 and condition4 and condition5;
 
end;

千張大戶暴增

setbarfreq("W");
settotalbar(3);

value1=GetField("大戶持股人數","W",param:=1000);
value2=GetField("散戶持股人數","W",param:=400);

if value1>value1[1]
and value2<value2[1]
then ret=1;

outputfield(1,value1,0,"本週大戶人數");
outputfield(2,value1[1],0,"上週大戶人數");
outputfield(3,value1-value1[1],0,"大戶增加數");
outputfield(4,value2,0,"本週散戶人數");
outputfield(5,value2[1],0,"上週散戶人數");
outputfield(6,value2-value2[1],0,"散戶減少數");

我用這個選股腳本回測過去三年,持有三十天後出場,回測報告如下

2018092702

在過去三年裡共曾經有252檔股票符合上述的選股法,平均一年有80多檔,持有30天後有57%的機率可以獲利出場,平均報酬率是5.51%。

例如以下的個股,都曾經出現在波段選股的名單裡

2018092704 2018092703

透過這樣的方式,我去挑選那些我覺得有波段行情的個股,各位不妨加減一些條件,作出您專屬的波段選股方式。

當然選出來的股票如果能跟以往一樣,再去實地訪查會更好。

以上是我挑選波段個股的方式,茲作為拋磚引玉的起點,祝大家都能掌握到自己的波段個股。

 

 

累計營收年增率開始出現異於以往的股票

當累計營收年增率開始跟以前不一樣時,代表公司營運有異於往常的改變,我們可以從這樣的改變中去找到轉機股。

我寫了一個腳本來找出這樣的股票

腳本如下:

value1=GetField("累計營收年增率","M");
input: r1(4),r2(12);
setinputname(1,"短天期");
setinputname(2,"長天期");
if average(value1,r1) cross over average(value1,r2)+5
and value1>10
then ret=1;

 

這個腳本目的如果要找出累計營收移動平均線出現黃金交叉的股票,短天期參數要用3或4皆可,重點在於找出累計營收年增率開始出現異於以往的股票

以雄獅為例,它的月營收累計年增率是在2015年一月出現3個月移動平均比12個月移動平均高出5%

 

071402

股價從一月營收公佈的二月初起,開始起漲

071403

 

這方法,小弟用起來頗不錯,推薦給大家,也祝福大家可以透過這樣的思考過程及實證,找出屬於自己,最有效的月營收選股策略。

空頭真的要來了嗎?~從高盛牛市熊市指標談起

bloomberg週一發了一則消息,說高盛牛市熊市指標已經創下1969年以來的新高(連結在此),剛好最近新興市場股匯市接二連三的出現崩跌走勢,山雨欲來風滿樓,開始有朋友憂心忡忡的問我,空頭市場這次是真的要來了嗎? 今天我想從高盛牛熊市指標的設計理念談起,來檢視空頭真的來了嗎?

高盛的熊市指標,包括了整體市場的估值,失業率,通貨膨脹率,債券收益曲線及ISM採購經理人指數。

失業率下降代表著勞動市場的緊張,這會讓市場預期通貨膨脹率會往上走,這種預期會讓央行的政策收緊,進而造成實體經濟的放緩,讓市場的估值變得高估。空頭市場主要是因為長期的多頭市場,造成股價在樂觀氣氛中被炒高,因而造成估值處於高位,這時如果因為景氣放緩造成對於未來樂觀的心態消失,市場的估值就會變的過高,於是產生了明顯的修正。

再進一步細分,高盛把空頭市場的成因,分成三種,週期性(通常與經濟週期相關,最為常見)、事件驅動型(由外部事件衝擊引發,如戰爭或原油價格衝擊)和結構性(由結構性失衡以及金融泡沫引發),下圖是高盛所做的一個分類

2018091201

在這個表格裡,高盛列出空頭市場出現之前,不同的空頭市場,有著利率上昇,外部因素,股價大漲,經濟不均衡,生產力提高,景氣過熱及新經濟帶動的樂觀預期等等的不同特徵,在空頭市場開始之後,則會出現經濟衰退,企業業績下滑,股市震盪及利率下跌等現象。

高盛發現,週期性和事件驅動熊市平均下跌30%左右,而結構性熊市通常面臨50-60%的跌幅。此外,不同類型的熊市其壽命長短也有差異,事件驅動、週期性和結構性熊市的時長平均來看,分別為6個月、2年以及3-4年。

 

根據上述的分析,我們來觀察上面提到的各項指標

一,通貨膨脹率

USACPI

物價確實處於高檔

二,失業率

失業率

確實是處於歷史低水位區

三,ISM採購經理人指數

ISM

目前景氣還是非常的好,但高點一再向下修正中

四,美國長期公債殖利率

收益率

債券收益率是處於上昇趨勢但並沒有持續創高

根據上述的數據,我們看到下面這張高盛牛熊市指標時

2018091202

大致可以得到的結論是,當前股市的估值確實很高,就業情況非常好,通膨的壓力也是有的,但還沒有看到 FED過度調高利率所帶來的景氣衰退,收益率也還沒有高到市場的資金會全面性的從股市流向債市。

所以除非有突發事件如戰爭造成的事件驅動型空頭市場,不然從週期性來看,目前要警惕的是景氣是否會開始逐漸進入衰退造成企業獲利預期下調,進而讓當前股票的估值顯得過高,另一個角度是,目前的情況作多股票的超額利潤可能不會太大,所以是應該警戒,但有沒有到要一路長空? 則是見仁見智了。

 

一條公式選股術的回測報告

鏡週刊這一期介紹了一位教授,他用一條公式來挑股票,每年賺15%,我試著用XS來寫出這個選股公司,分享給大家。

這篇文章的連結如下

連結在此

這位淡江大 土木工程系的葉怡成教授,發展了一個叫GVI(Growth Value Index)的指數,

GVI=(B/P)×(1+ROE)^5

這個指數的意思是用淨值/股價去乘上(1+股東權益報酬率)的5次方,這個數字當然是愈大愈好。

教授認為,可以從市值超過兩百億的股票裡去篩選出GVI排名前20名的公司,然後做成投資組合,之後再根據最新的數據做再配置。

根據這樣的公式,我寫了一個函數的腳本如下

value1=GetField("股價淨值比","D");
value2=GetField("股東權益報酬率","Q");
value3=GetField("總市值(億)","D");
if value3>=200 then 
GVI=1/value1*(1+value2/100)*(1+value2/100)*(1+value2/100)*(1+value2/100)*(1+value2/100)
else GVI=0;

把這個GVI在選股時作為排行的函數

20180910

最新的排行結果如下

20180910

不過這裡要說的是,用這個方式挑股票時,要過濾掉那些因為業外獲利造成的假象,以及ROE正在變差的股票,不然像宏達電,南電這樣的公司也是會被納進來的

所以我就再加上營業利益率要大於零的條件,把腳本重新改寫如下

value1=GetField("股價淨值比","D");
value2=GetField("股東權益報酬率","Q");
value3=GetField("總市值(億)","D");
value4=GetField("營業利益率","Q");
if value3>=200 and value4>0 then 
GVI=1/value1*(1+value2/100)*(1+value2/100)*(1+value2/100)*(1+value2/100)*(1+value2/100)
else GVI=0;

改成這個腳本後挑出來的20檔股票名單如下

2018091001

我把這腳本拿去回測,持有期間是220天,過去10年的回測數據如下:

gvi

年平均投資報酬率有10%,不過倒也不是每年的年報酬率都是正的,大盤不好的時候拉回的幅度也是不小。

我試著把前二十檔改成十檔,回測報告如下

2018091002

勝率及平均年報酬率都增加,只是最大區間虧損還是太大了

 

 

 

籌碼大數據之券商分點特定個股買賣差金額

在籌碼大數據這個功能裡,進階個股籌碼分析中,有一個籌碼分析的功能,在這個功能中,我們透過數據,顯示一段期間內,各種不同勢力對一檔個股的買賣超數據,讓使用者了解籌碼的流向,其中,我們把每個券商分公司針對單一個股的交易金額,分成五個級距,然後把不同級距的買張及賣張作合計,分別呈現不同交易金額的勢力,對該個股的買賣超狀況。

以台積電為例,昨天的多空勢力分析表格如下

2018083002

透過這個表格,我們發現,最近一日,單一分公司交易金額在一億以下的四個級距,都是賣超,但超過一億的分公司,反而是大買超,表示台積電昨天的籌碼是從散戶手裡流向大戶手裡。

我們可以觀察這兩個不同級距長期的買賣超情況如下圖

2018083001

然後我們就會發現,當大戶在賣超而小戶買超時,台積電的股價呈現下跌趨勢,反觀大戶買超而小戶賣超時,台積電便展開其上漲走勢。

這個數據由於每天更新一次,所以我們便可以在第一時間,了解到一檔股票最近一個交易日,籌碼的流動方向,比集保庫存裡的股東結構更及時。