Author Archives: 發財橘子

布林選股法

布林帶寬收窄後K棒突破布林線上緣,是市場常被拿來討論的交易策略,今天我們來試看看這樣的概念要如何應用到實戰上。

首先還是先寫出布林帶寬收窄後K棒突破布林線上緣的腳本。

下面是布林值帶寬收窄的腳本:

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;

接下來是K棒突破布林線上緣的腳本:

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

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

settotalbar(3);

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

以昨天為例,就有新保等2檔股票符合這兩個條件:

 

符合這兩個條件的選股策略,過去七年的回測報告如下:

勝率達到7成以上,顯示這樣的江湖傳說還真的有它的道理。

===

● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/48q5pr

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

穩定盈餘成長股暴量起漲

暴量起漲的股票,常是我們短多操作的標的,透過回測我們發現,如果是連續兩年獲利都成長,且最近一季獲利創近四季新高的公司,開始出現暴量起漲的現象時,短線上漲的機率會變高

以下是根據上述說法所寫的選股策略

暴量漲的腳本

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;

 

 

 

整合後的回測報告如下圖

勝率高達七成,且MDD在可接受範圍

股價遠低於五年平均總市值

如果目前的總市值遠遠低於過去五年的平均總市值,且這段時間股價有明顯的跌幅,那麼股價就可能被嚴重低估。

腳本:

value1=(GetField("總市值(億)","Y")+GetField("總市值(億)","Y")[1]+
GetField("總市值(億)","Y")[2]+GetField("總市值(億)","Y")[3]+
GetField("總市值(億)","Y")[4])/5;
value2=GetField("總市值(億)","D");
input:ratio(40,"低於平均市值的最低幅度");
if (value1/value2-1)*100>ratio then ret=1;
outputfield(1,(value1/value2-1)*100,0,"低於平均市值的幅度");

選股策略:

把這個策略拿去回測過去七年,停損停利都設為20%,回測報告如下圖:

 

===

● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/48q5pr

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

股價低於剩餘收益模型

剩餘收益模型是用股東權益報酬率加上股東可能期待的報酬率去計算出來的一個企業價值。

它的公式如下:

企業價值(估價價值)=股東權益(淨資產)+超額盈餘現值=股東權益(淨資產)+股東權益×((ROE-要求報酬率)/要求報酬率)

如果目前的股價遠低於這個估值,那就可能是股價低估了。

這個模型對於那些每年ROE都有達到一定水準且獲利穩定的公司,是還蠻可以拿來作為評價的標準。

腳本:

value1=getField("總市值(億)", "D");
value2=getField("股東權益總額", "Q");//百萬
value3=getField("股東權益報酬率", "Q");//單位&

input:ratio(8,"折現率%");
var:pvr(0);
pvr=summation(value2*value3/100,10)/power(1+ratio/100,10);
value4=pvr+value2;
input:discountrate(30,"折價幅度");
if value1*100*(1+discountrate/100)<value4
then ret=1;

選股策略:

把這個策略拿去回去過去七年,停損停利都設為20%,回測報告如下圖:

 

===

● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/48q5pr

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

 

股價低於股利估值

用過去五年的平均股利作計算的基礎,如果目前股價低於這數字的16倍,而且過去五年每股股利都超過五毛,代表目前的股價可能在平均水準之下,這時候如果搭配法人買超,代表法人可能也認同目前的估值被低估了。

 

腳本

input:N1(5);
input:N2(16);
setinputname(1,"股利平均的年數");
setinputname(2,"股利的倍數");
value1=GetField("股利合計","Y");
value2=average(value1,N1);
if close<value2*N2
then ret=1;

選股策略

把這個策略拿去回去過去七年,停損停利都設為20%,回測報告如下圖(圖片中的股利倍數為12)

股價低於十年本業獲利估值

有一種估值的方式,是以最近一期的本業獲利為計算基礎 ,然後給定未來十年的本業平均成長幅度,然後用一個設定的利率作折現率,把未來十年本業獲利折現後加總,再加上每股淨值,就是考慮公司這十年本業獲利後的每股價值。

如果這個數字跟股價相比,股價有一定幅度的折價,那就代表目前的股價可能被低估了。

 

腳本

variable: idx(0), t(0);
input:r1(3);
input:r2(2);
input:r3(10,"折價比例");
setinputname(1,"假設未來十年營業利益年成長率");
setinputname(2,"未來十年平均年利率");
setinputname(3,"未來獲利折現合計淨值與市價比");

// 計算未來10年的營業利益折現值

value1=GetField("營業利益","Y"); //單位:百萬
value2=GetField("最新股本"); //單位:億
value3=GetField("每股淨值(元)","y");

value11 = maxlist(GetField("營業利益","Y"),GetField("營業利益","Y")[1],GetField("營業利益","Y")[2],GetField("營業利益","Y")[3],GetField("營業利益","Y")[4]);
value12 = minlist(GetField("營業利益","Y"),GetField("營業利益","Y")[1],GetField("營業利益","Y")[2],GetField("營業利益","Y")[3],GetField("營業利益","Y")[4]);

if trueall(value1>0,5) and (value11-value12)/value11<0.5
then begin
t = 0;
for idx =1 to 10
begin
t = t + value1 * power(1+r1/100,idx)/power(1+r2/100,idx);
end;

// t=百萬,value2=億,換成每股
value5 = t / value2 / 100;
value6=(value3+value5);

if close< value6*(1-r3/100)
then ret=1;

end;

outputfield(1, value5, 2, "估算十年每股營業利益折現值");
outputfield(2, value6, 2, "估值");


把這個策略拿去回去過去七年,停損停利都設為20%,回測報告如下圖:

 

===

● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/48q5pr

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

股價低於平均股利法估值

市場有一種傳說,說如果股價在過去五年平均股利的16倍以下,就很可以注意它的抄底時機。 我優秀的同事寫了一個腳本,加上各種過濾條件,希望把這樣的想法落實成一個可以實戰的抄底策略。

他設定的條件有以下幾條:

一、股價低於平均股利的16倍

二、而且官股近期買超佔成交量的比重達到一定的水準

三、短期均線黃金交叉

四、成交量有出量,但沒有暴出太大量

五、過去五年合計EPS大於1元

六、最近兩個月營收成長

他的目標是找出勞退基金可能開始在抄底特定的價值型股。

他寫的腳本如下:

Input:SPeriod(10); 
Input:N1(5); 
Input:N2(16); 
Var:Amount(0),Ratio(0); 

// 計算 
Amount=GetField("官股券商買賣超張數","D"); 
Ratio=100*Summation(Amount,SPeriod)
/Summation(V-GetField("當日沖銷張數"),SPeriod); 
value1=GetField("股利合計","Y"); 
value2=average(value1,N1);

// 條件 

ConditIon1=C>Average(C,8)
and Average(C,8)>Average(C,8)[1] 
and l>l[1]*1.02; 
Condition2=Average(GetField("成交金額(億)","D"),10)
>=0.1 
and V<=2*average(V[1],5); 
Condition3=close<value2*N2; 
Condition4=Ratio>1; 

if Condition1 and Condition2 and Condition3 and Condition4 
Then Ret=1;

完整的選股策略:

把這個策略拿去回測過去七年,停損停利都設為20%,回測報告如下圖:

 

===

● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/48q5pr

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

股價低於歷年股價低點平均值

蠻多公司的大股東,對於自己公司的股價心目中都有一個絕不能跌破的馬其諾防線,這個防線可能是某次增資時的價格,可能是老板對員工的承諾,我們可以找出過去十年每年的最低價,然後算出這十年最低價的平均值,一旦股價低於這個數字,可能就是股價開始要接近大股東心目中的防線了

腳本

value1=(lowY(1)+lowY(2)+lowY(3)+lowY(4)+lowY(5)
+lowY(6)+lowY(7)+lowY(8)+lowY(9)+lowY(10))/10;
var: pr("");
if close<value1
then ret=1;

完整選股策略

把這個策略拿去回去過去七年,停損停利都設為20%,回測報告如下圖

股價遠低於證券價值

有一種抄底的方式是去計算一檔股票的證券價值,再比較股價是否遠低於證券價值。

證券價值的計算公式先算出企業總價值。

企業總價值是最近四季的來自營運的現金流量合計 乘上評價倍數再打八折(折現的概念)

這裡評價倍數市場上通常是用10倍。

算出企業總價值之後,(企業總價值-長期負債)/股本就是每股證券價值。

當股價遠低於每股證券價值就是股價可能超跌了。

 

 

腳本

value1=getField("來自營運之現金流量", "Q")+getField("來自營運之現金流量", "Q")[1]
+getField("來自營運之現金流量", "Q")[2]+getField("來自營運之現金流量", "Q")[3];
value2=getField("長期負債", "Q");
//以上單位百萬元
value3=getField("股本(億)", "D");//單位:億元

input:vm(10,"評價倍數");

value4=value1*vm*0.8;
//企業總價值

value5=(value4-value2)/value3/10;
//每股證券價值

input: discount(30,"折價率%");

if close<value5*(1-discount/100)
then ret=1;
outputField(1,value5,0,"每股證券價值");
outputfield(2,close/value5,2,"折價率");

 

完整選股策略:

把這個策略拿去回去過去七年,停損停利都設為20%,回測報告如下圖:

 

===

● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/48q5pr

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

股價低於歷年最低股價淨值比

每年股價淨值比最低值,可以說是當年度整體市場對該個股的評價最低值,如果是過去十年這個數值的平均值,可以說是長期下來,市場對該股評價最低點的共識值,一旦現在的股價淨值比低於這個十年低點平均值,而且營收還在成長,那就很有可能目前的股價是進到超跌區了。這個策略就是基於這樣的假設所發展出來的。

函數腳本:

SetBarMode(2);

Input: 
Series(numericseries), // 價格序列
Ago(numericsimple); // K棒相對位置,和序列引用定義相同,0表當年度、1表前一年...依此類推。

Var:
StartBar(0),
EndBar(0),
StartDate(0),
EndDate(0);

SetBackBar(260*Ago);

// 起訖日期判斷
StartDate=EncodeDate(Year(Date)-Ago,1,1); // 相對年度第一日
EndDate=EncodeDate(Year(Date)-Ago,12,31); // 相對年度最後一日

StartBar=GetBarOffset(StartDate);
EndBar=GetBarOffset(EndDate);
// 起訖K棒位置判斷
If Year(Date[StartBar])<Year(StartDate) Then StartBar=StartBar-1;
If Year(Date[EndBar])>Year(EndDate) Then EndBar=EndBar+1;

// 計算區間極限值
// 若判斷後之起訖時間不在範圍內(新股/資料異常):不顯示
If Year(Date[StartBar])<>Year(StartDate) or Year(Date[EndBar])<>Year(EndDate) Then 
AnnualLowest=0
Else
AnnualLowest=Lowest(Series[EndBar],StartBar-EndBar+1);



腳本:

value1=getField("股價淨值比", "D");
value2=(annuallowest(value1,1)
+annuallowest(value1,2)
+annuallowest(value1,3)
+annuallowest(value1,4)
+annuallowest(value1,5)
+annuallowest(value1,6)
+annuallowest(value1,7)
+annuallowest(value1,8)
+annuallowest(value1,9)
+annuallowest(value1,10))/10;
if value1<value2
then ret=1;

 

 

完整選股策略:

把這個策略拿去回去過去七年,停損停利都設為20%,回測報告如下圖:

 

===

● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/48q5pr

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