Author Archives: 發財橘子

短線突然重挫的好公司

我有很多的交易策略,靈感都是來自跟市場老手的對話,像最近有不少個股大漲後又急跌,那麼這類的股票什麼時候可以買呢?符合什麼特徵的股票可以買呢?這一題的答案,我曾經在一位市場老手那裡,聽到蠻有意思的觀察,我把這樣的觀察寫成策略,回測的結果的確有它蠻有意思的地方,今天來分享這樣的觀察。

這位老手對於大漲後急跌的個股,有幾個心得:

一、從起漲到現在,漲幅要超過12%,但也不要已經漲超過80%了

二、最近的這波下跌,最近五個交易日要跌超過15%

三、這樣的公司,不是啥都能接,只有那些股東權益報酬率表現不錯的公司才可以接。

這位老手跟我說,要完全符合這些條件的個股,不是很多,其次是空頭市場這策略也不能用,但是如果在多頭市場一直用這個策略挑股票,報酬率會蠻好的。

於是我把這些條件用【XQ選股中心】訂成選股策略,如果停損停利都設為7%,回測報告如下圖:

這一招還真的長期下來有很不錯的報酬率,但就是在大空頭市場MDD有點大。

下圖是最近出現的兩個交易記錄:

所以5天跌15%的好公司,似乎是一個值得留意的止跌訊號。

而且像出現這種訊號時,如果把持股放久一點,例如把停損停利拉長到10%,回測的效果會更好,例如下圖:

當然MDD超過四成的策略不能直接放給它自動交易,而且這個策略平均一年出不到20個訊號,對交易型投資人而言,不能單押這個策略。

但像我的個性,就是隨著時間的積累,不斷的收集一些有不錯勝率及報酬率的交易策略,然後當我收集夠多的交易策略後,全部把它們加到每日自動執行的排程中,這樣每天就偶爾會有一些我很有興趣的標的會出現在螢幕上。

===

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

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

投信與外資一陣子以來的同步買超

先前從一本介紹短期交易的書中,學到一招: 如果低價股近一季以來,第一次出現外資跟投信同步大買,往往短線上是有作多的機會。

今天心血來潮,就把這個概念寫成【XQ選股中心】的策略,跟大家分享。

首先是寫一個腳本來描敘投信與外資同步大買,我寫的腳本如下:

input:days(60,"計算期間");
input:M1(200,"最低買超張數");
value1=getField("外資買賣超", "D");
value2=getField("投信買賣超", "D");
condition1=value1>m1 and value2>m1;
if condition1
and barslast(condition1)[1]>=days
then ret=1;

 

 

在腳本中用到Barslast這個函數,它的意思是符合函數中條件的最後一次發生的那天,距離最近一個交易日有幾根Bar。如果 barslast(close=20)=0,那就代表今天收盤價是剛好是20元。

除了這個腳本之外,我另外加上收盤價小於60元作為低價股的過濾條件,組合成這個策略。

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

七年的總交易次數達到588次,時間加權報酬率是378%,MDD是-14%  ,比較弱的是勝率,62.4%不算特別好,但從收益曲線來看,這算是一個可以長期穩定貢獻報酬的策略了,只是要嚴格的執行交易紀律。

至於如何提昇勝率,就看各位老大如何進一步優化這策略了。

===

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

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

 

大跌後股價突破月線

江湖上有個傳說,說股價大跌後,如果第一次站上月線,而且法人大買超,這樣的股票可以買,今天我們就來實驗看看,這個傳說有沒有道理?

先來定義一下什麼叫作大跌,根據我們AI  Team的研究,30個交易日裡,股價跌了28.3%,抄底的勝率最高,所以我就先寫一個條件如下:

if close[30]>close*1.283
then ret=1;

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

接下來就再加上股價近一個月來第一次突破月線的腳本,合起來的腳本如下:

if close[30]>close*1.283
and barslast(close cross over average(close,22))=0
and barslast(close cross over average(close,22))[1]>30

then ret=1;

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

顯然績效反而很差。

但如果再加上近一日三大法人合計買超佔成交量10%以上的這個條件,近五年的回測報告如下:

不管是勝率,總報酬率,MDD的表現都很好。

從收益曲線來看,這個策略在大跌之後,的確會有不錯的表現,所以如果股市波段大跌過,就可以用這個策略,至於多頭或盤整時,這個策略出的訊號就會很少。

但總的來說,這個江湖傳說是有它的道理的。

===

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

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

 

 

 

布林選股法

布林帶寬收窄後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!