Author Archives: 發財橘子

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

推荐朋友們看”散戶的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

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

 

 

外資買超佔股本比排行

有一種選股的邏輯是,專挑那些近期外資買超佔股本高的股票,最好是股價才剛要發動的那種,今天我試著把這樣的決策流程自動化,讓電腦每天自動幫我們跑出這樣的股票來。

首先,我先把外資近N日買超佔股本比例寫成一個函數: 外本比

我寫的腳本如下

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

再來就用這個腳本來自訂排行榜,先新增一個選股策略,然後在右上方點選”自訂排行條件”這個按鈕,就會跳出如下的對話框

2018022301

選擇外本比當排行的函數,日期則選道瓊大跌之後迄今的天數,因為外資在大崩盤後還用力買,不是公司派的假外資就是外資有看到什麼我們沒有看到的。

這樣篩選出來的股票如下

2018022302

我們可以一檔一檔來檢視

2018022303

在檢視中我們可以發現,最好是挑那些外資還繼續在買的,所以除了外本比排行靠前之外,要再加上近一日外資仍持續買超,所以我就再加上一個條件如下

2018022304

這樣挑出來的股票就只剩下面幾檔2018022305我把這個選股策略取名為”外本比高且外資續買”,把它設為每日自動執行,這樣我每天只要用報價組合選取”每日自動選股清單”這一項,就可以看到最新符合條件的股票了,以下是我設的PAGE

2018022306

這樣就可以每天把符合外本比高且外資續買條件的股票拿來一一檢視一遍。

 

 

 

尋找可能由虧轉盈的公司

由虧轉盈的公司,特別是股價還沒有預先反映的,往往是比較能逆市上漲的。我試著用最近的月營收來找出那些本業可能轉虧為盈的公司。

我寫的腳本如下

// 計算最新一期月營收的日期(mm=月份)
//
variable: mm(0);
mm = datevalue(getfielddate("月營收","M"),"M");

// 預估最新一季的季營收(單位=億)
//
if mm=1 or mm=4 or mm=7 or mm=10
then value1=GetField("月營收","M") * 3;
if mm=2 or mm=5 or mm=8 or mm=11
then value1=GetField("月營收","M") * 2 + GetField("月營收","M")[1];
if mm=3 or mm=6 or mm=9 or mm=12
then value1=GetField("月營收","M")+GetField("月營收","M")[1]+GetField("月營收","M")[2];

// 預估獲利(單位=百萬) = 季營收 * 毛利率 - 營業費用
//
value2 = value1 * GetField("營業毛利率","Q") - GetField("營業費用","Q");

if GetField("營業利益","Q")<0
and value2>0 then ret=1;

outputfield(1,value2 / 100,2,"預估單季本業獲利(億)");
outputfield(2,GetField("營業利益","Q"),0,"最近一季營業利益");

這個腳本的概念是,用月營收去估算季營收,再根據估算出來的季營收,去乘上一季的毛利率作為營業毛利,再減去上一季營業費用,作為預估的營業淨利。

然後找出上一季營業利益是負的,但用月營收估計出來的這一季營業利益會由負轉正的股票。

這裡要跟大家說明的有幾點

1.營收成長通常毛利率有機會成長,假設毛利率沒有成長是比較保守的估算方法。

2.這裡估算出來的是營業利益,但業外的部份很難估。

3.如果近期一直在虧錢股價通常會很慘,這時轉虧為盈的作用力才會大,如果之前市場都已預先反映了,就算挑出來的股票也沒啥參考作用

4.會算出轉虧為盈,一定是月營收有明顯好轉,回頭再去研究月營收好轉背是否為長期因素,是選股後要再進一步進行的功課。

5.月營收是每月十日公佈,所以這個腳本每月十一日跑一次,再來研究選出來的標的。

轉虧為盈的低價股一直是每年漲幅排行榜的常客,也是比較不會受大盤影響的股票,祝福大家都找到最強的轉機股。

從千張大戶數增減看大戶有否落跑!

美股大跌,大家開始問說多頭是不是要結束了? 昨天正好踫到一個前輩,他說他第一天去某券商上班時,董事會成員熱烈歡迎他,稱讚他知道什麼時候是多頭,什麼時候是空頭,未來可以成為他們該券商的多空明燈。 他說他跟董事們說,他真的不知道什麼時候會變多頭? 什麼時候是空頭? 但他知道在多頭時該做什麼? 在空頭時該做什麼?

前輩的話很有哲理,我回家後立馬整理一下千張大戶的變動方向,我的邏輯是,大盤乃至美股多頭方向非我能掌握,但個股大戶是加碼還是落跑這是我能留意的。

先前寫過兩個腳本來每週一挑出那些千張大戶變少及變多的股票

 

變少的腳本

value1=GetField("大戶持股人數","W",param:=1000);
value2=GetField("散戶持股人數","W");
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,"上週散戶人數");

跑出來的名單

2018020502

 

變多的腳本

value1=GetField("大戶持股人數","W",param:=1000);
value2=GetField("散戶持股人數","W");
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,"上週散戶人數");

跑出來的名單

2018020501

從大戶在個股的活動情況,來判斷及決定多頭時做什麼? 空頭時做什麼?

當沖佔成交易多少比重後短線明顯過熱?

被問到一個很有趣的問題:當沖佔交易比重如果太高,股價是不是比較容易回檔?

於是我寫了以下的腳本,回測看看

腳本如下

value1=GetField("當日沖銷張數");
if volume<>0
then value2=value1/volume*100;
input:deadline(70);
if value2>=deadline
 then ret=1;

回測報告如下

當沖比重回測報告

這裡我回測的是全部的股票,停損停利均設為5%,結果在223個符合條件的交易中,有136個最終可以停利出場,機率是六成左右。

如果我把成交量不到1000張的股票濾掉,腳本變成如下

value1=GetField("當日沖銷張數");
if volume<>0
then value2=value1/volume*100;
input:deadline(70);
if value2>=deadline
and volume>1000
 then ret=1;

回測的期間改成從去年四月十二日當沖稅減半公佈之後,回測的結果如下

2018020201

在78次的交易裡,有52次可以獲利出場,勝率達到三佔兩勝的66%,別忘了在這段期間指數可是大多頭市場,顯然成交量超過一千張的股票如果當沖佔七成以上,作多就要非常小心了。

 

 

雲帶型指標的制作方法

一目均衡表這個指標裡有個雲帶,跟K線搭在一起,在視覺上確實有不錯的效果,今天跟大家分享類似這樣的雲帶怎麼在XS自訂指標裡畫出來。

雲帶的概念是兩條線之間的區域,這裡舉的例子,是用月線及季線來作這兩條線,畫出雲帶。腳本如下

value1=average(close,20);//月線
value2=average(close,60);//季線
if value1>=value2
then begin
plot1(value1);
plot2(value2);
end else begin
plot3(value2);
plot4(value1);
end;

在這裡一個plot四條線,其中兩條畫成底色,所以肉眼只看到兩條線,在主圖疊圖時繪圖樣式請設定如下圖

2018013001

根據這樣的設定,畫出來的圖呈現如下

2018013003 2018013002

這樣畫的好處是,可以透過雲帶的顏色及柱狀面積的變化,一方面了解多空態勢,另一方面也可以了解趨勢的力道。

 

 

0050溢價是底部指標嗎?

昨天說的那位高人除了發明了四大法人之外,也教我說,如果0050溢價的話,代表有人對未來非常樂觀,在大跌時出現這種樂觀想法的,一般都不會是散戶,應該是所謂的政府相關基金,所以我就寫了一個腳本來計算0050的溢價,

腳本如下:

value1=GetSymbolField("0050.tw","收盤價");
value2=GetSymbolField("0050n.tw","收盤價");
value3=value1-value2;
plot1(value3,"0050溢價");

其中0050n是0500的估計淨值,我用這個指標來跟加權指數對照如下

0050溢價

還真的有其值得參考之處。

我好想跟送這位高手一個”惠我良多“的牌子

從官股券商在0050的動向觀察政府的多空心態

昨天踫到一個高人,跟我說以後看股票不要只看三大法人的進出,要看四大法人,除了外資,投信及自營商之外,還要加上勞退,退撫等政府相關的基金。 以前我都覺得政府基金的操盤人很菜腳,特別是阿扁剛上台的時候,不知道用了什麼肉腳,明明資金外逃很嚴動,網路又泡沫,政府基金卻在那邊撐盤,一直到撐不住了才放手,結果這位高手很神秘的跟我說,現在很不一樣喔! 那要如何留意這些政府相關基金的動向呢?  高手教我一招:留官股券商在0050的買賣超情況。

回家後我開始作功課,大家請看下面這兩張圖

2018012302

2018012303

我們似乎可以發現,政府相關基金有著急跌進場的特性,我們常說下跌的刀子不能接,要等到跳到地上鏘一聲才進場,然後從上面這張圖來看,官股在0050的買超情況,多少可以代表政府相關基金操盤人設定的底部位置。

最後這張是最近的情況

2018012301

往後要留意第四大法人的多空動向喔!!

 

轉強天數指標的應用

當我們應用個股儀表板找出個股是否出現買進訊號時,要如何提高預測的精準度呢?  在看過大量的個股儀表板圖形後,我發現,如果股價是長期相對弱勢,但在個股儀表板出現不只一個買進訊號之前,股價就開始抗跌或比大盤強,那麼買進訊號的正確度會提高不少。今天就是來跟大家討論這樣的觀察。

請大家先看這張圖,在這張圖裡我們可以發現,當個股儀表板密集出現買進訊號之前,如果個股雖然在盤整,但其實表現的比大盤強,搭配起來就是一個更精準的買進訊號。

相對走強且出訊號

首先,先複習一下個股儀表板的腳本

condition1=false;
condition2=false;
condition3=false;
condition4=false;
condition5=false;
condition6=false;
condition7=false;
condition8=false;
condition9=false;
condition10=false;
switch(close)
begin
case >150: value5=low*0.9;
case <50 : value5=low*0.98;
default: value5=low*0.95;
end;
//==========日KD黃金交叉================

input: Length_D(9, "日KD期間");
input: Length_M(5, "周KD期間");
variable:rsv_d(0),kk_d(0),dd_d(0),c5(0);
 
stochastic(Length_D, 3, 3, rsv_d, kk_d, dd_d);
 
c5=barslast(kk_d crosses over dd_d);
if c5=0 and c5[1]>20
then condition1=true; 
if condition1
then plot1(value5,"月KD高檔鈍化且日KD黃金交叉");
//============內外盤量比差====================
variable:c3(0);
value6=GetField("內盤量");//單位:元
value7=GetField("外盤量");//單位:元
if volume<>0 then begin
value8=value7/volume*100;//外盤量比
value9=value6/volume*100;//內盤量比
end;
value10=average(value8,5);
value11=average(value9,5);
value7=value10-value11+5;
c3=barslast(value7 crosses over 0);
if c3=0 and c3[1]>20
then condition2=true;
if condition2
then 
plot2(value5*0.99,"內外盤量比差");

//===========淨力指標==============
variable:c4(0);
input:period2(10,"長期參數");

value12=summation(high-close,period2);//上檔賣壓
value13=summation(close-open,period2); //多空實績
value14=summation(close-low,period2);//下檔支撐
value15=summation(open-close[1],period2);//隔夜力道
if close<>0
then
value16=(value13+value14+value15-value12)/close*100;
 
c4=barslast( value16 crosses over -4);
if c4=0 and c4[1]>20
then condition3=true;
if condition3
then 
plot3(value5*0.98,"淨力指標");

//===========多頭起漲前的籌碼收集================
variable:c2(0);
value1=GetField("分公司買進家數");
value2=GetField("分公司賣出家數");
value3=value2-value1;
value4=countif(value3>20,10);
c2=barslast(value4>6 );
if c2=0 and c2[1]>20
then condition4=true;
if condition4=true
then
plot4(value5*0.97,"籌碼收集");

//===========法人同步買超====================
variable: v1(0),v2(0),v3(0),c1(0);
v1=Getfield("外資買賣超");
v2=Getfield("投信買賣超");
v3=Getfield("自營商買賣超");

c1= barslast(maxlist2(v1,v2,v3)>100);
if c1=0 and c1[1]>20
then condition5=true;
if condition5=true
then plot5(value5*0.96,"法人同步買超");

//========DIF-MACD翻正=============
input: FastLength(12), SlowLength(26), MACDLength(9);
variable: difValue(0), macdValue(0), oscValue(0);
MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);
variable:c6(0);
c6=barslast(oscValue Crosses Above 0);
if c6=0 and c6[1]>20
then condition6=true;
if condition6
then plot6(value5*0.95,"DIF-MACD翻正");
//========資金流向======================

variable: m1(0),ma1(0),c7(0);
m1=GetField("資金流向");
ma1=average(m1,20)*1.5;
c7=barslast(m1 crosses over ma1 and close>close[1]);
if c7=0 and c7[1]>20
then condition7=true;
if condition7
then plot7(value5*0.94,"資金流向");
//=========總成交次數================
variable: t1(0),mat1(0),c8(0);
t1=GetField("總成交次數","D");
mat1=average(t1,20)*1.5;
c8=barslast(t1 crosses over mat1 and close>close[1]);
if c8=0 and c8[1]>20
then condition8=true;
if condition8
then plot8(value5*0.93,"成交次數");
//=========強弱指標==================
variable:s1(0),c9(0);
s1=GetField("強弱指標","D");

c9=barslast(trueall(s1>0,3));
if c9=0 and c9[1]>20
then condition9=true;
if condition9
then plot9(value5*0.92,"強弱指標");
//============開盤委買================
variable:b1(0),mab1(0),c10(0);
b1=GetField("主力買張");
mab1=average(b1,10);
c10=barslast(b1 crosses over mab1);
if c10=0 and c10[1]>10
then condition10=true;
if condition10
then plot10(value5*0.91,"主力買張");


從這腳本我們可以了解,個股儀表板的目的,在於透過不同的資料欄位,標示出個股可能值得買進的訊號,但這些訊號如果是在多頭末昇段時,也可能會出現,這時候我們可以搭配轉強天數指標來一起看,如果轉強天數指標是從低檔穩定在上昇,就更值得留意。

我自己的轉強天數指標是這麼寫的

input:period(20);
value1=GetField("強弱指標","D");
//個股漲跌幅減加權指數漲跌幅
value2=GetField("資金流向");
value3=countif(value1>0 and value2>value2[1],period);
plot1(value3);

想法是計算過去一段時間比大盤強且佔大盤成交量比重也比前一天高的天數。

這兩個指標一起搭起來看,可以找到那些埋伏一段時間後開始要發動攻勢的股票

以下是最近很強的股票過去在起漲點時,這兩個指標的搭配情況

撼訊 世紀鋼 環球晶 日馳

以上是我在用個股儀表板時偶然發現的現象 ,野人獻曝一下

 

 

月報酬率等績效圖的寫法

大多頭市場流行定存股是很自然,我的定存股挑法跟市場上常設定的條件不大一樣,我只挑內銷且具有國外競爭者難以替代地位的公司。今天來跟大家分享我的概念跟邏輯。

大家挑定存股通常是挑股利穩定的,我挑的邏輯加一條,一定要幾乎百分之百內銷,而且國內外的競爭者很難切進來的,這種有點像是台灣拳王的概念,我挑至的公司一共七檔

分別是卜蜂,一零四,裕融,中保,中菲,和泰車及好樂迪。

先來看看過去十年這七檔如果各買一張的話,績效會是怎麼樣

(以下用的是還原月線圖)

2018011701

十年來淨值漲了不只四倍

單月報酬的分佈如下

2018011702

大致上除了2008雷曼風暴之外,單月要虧到10%的情況只出現一個月

如果以十二個月報酬的移動平均來看

2018011703

基本上除了次貸風暴的時間以外,最長的年報酬是負的期間只有九個月,意思是擺一整年從來沒有年報酬是負的

最後看一下最大連續虧損

2018011704

一樣,除了次貸風暴之外, 連續最大虧損就是近兩成

 

我把計算的程式碼寫在下面,大家可以拿去改一改測試一下,自己挑定存股組合,過去十年績效會如何?(程式如果寫錯要提醒我)

value1=GetSymbolField("1215.tw","收盤價");//卜蜂
value2=GetSymbolField("3130.tw","收盤價");//一零四
value3=GetSymbolField("9941.tw","收盤價");//裕融
value4=GetSymbolField("9917.tw","收盤價");//中保
value5=GetSymbolField("5403.tw","收盤價");//中菲
value6=GetSymbolField("2207.tw","收盤價");//和泰車
value7=GetSymbolField("9943.tw","收盤價");//好樂迪
value8=value1+value2+value3+value4+value5+value6+value7;
if value8[1]<>0 then 
value9=(value8-value8[1])/value8[1]*100;
value10=average(value9,12);
if value9<0 and value9[1]>0
then value11=value9
else if value9<0 and value9[1]<0
then value11=value9+value11[1]
else value11=0;
//plot1(value8,"淨值走勢圖");
//plot2(value9,"單月報酬");
//plot3(value10,"12個月報酬移動平均");
plot4(value11,"MDD");

最後plot的部份一次只能畫一條,其他的用雙斜線先躲起來。