Author Archives: 發財橘子

一個長期維持七成以上勝率的交易策略~高護城河股暴量起漲

近期台商有不少資金回台,證券交割戶的存款餘額達1.9兆,連創新高,這些資金會買什麼股票呢? 一般大家普遍的看法都是傾向那些配息穩定且企業競爭優勢夠強大,不受景氣影響的公司。所以我來跟大家分享我自己常用的一個交易策略~高護城河公司暴量起漲。

這個策略分成兩部份,首先透過XS選股平台按以下的選股條件,選出符合高護城河定義的股票

這些條件裡,一定要符合的是連續六年每年的每股獲利都要超過3元,代表這家公司有一定的獲利能力。

接著我列了六個我認為高護城河股通常會有的特徵,然後要符合其中至少五個才能符合標準

以今天為例,在1700檔股票裡,符合條件的只有50檔

然後我把這個選股策略設為每日自動執行之後

每天在策略雷達用以下的腳本來跑這個選股策略選出來的股票

 Input: day(60,"日期區間");
Input: ratioLimit(14, "區間最大漲幅%");

Condition1 = H=highest(H,day);
//今日最高創區間最高價

Condition2 = V=highest(v,day);
//今日成交量創區間最大量

Condition3 = highest(H,day) < lowest(L,day)*(1 + ratioLimit*0.01);
//今日最高價距離區間最低價漲幅尚不大

if Condition1 And Condition2 And Condition3
then ret=1;

上面這個腳本我稱之為暴量起漲股

為什麼這麼做呢? 因為高護城河的股票獲利穩定,但不見得會一直漲,透過這個策略雷達的腳本,可以在好股票的起漲點就進場。

這樣的交易策略,拿去回測,出場點設為停損停利都是7%

以下是不同天期的回測報告

 

 

 

 

綜合不同天期,我們會發現,勝率都超過七成,幾乎可以達到四戰三勝的水準,每年平均交易次數不多,大約就十多次,但年報酬率有兩成的機會,績效遠遠比大盤好,也比台灣50好。

這個交易策略我都放給系統自動跑,有跑出標的我會留意一下它的基本面有沒有什麼情況,沒有的話我都會很有紀律的進場且嚴格執行停損停利,有興趣的朋友也可以參考看看。

基本面投資策略系列之二: 股價夠低估的股票暴量起漲

我們在計算一檔股票的估值時,最常用到的是本益比,股價淨值比與殖利率這三個標準,今天來跟大家分享一個基本面的交易策略: 當股價夠低估且開始暴量起漲的股票。

這個交易策略如下圖

這個交易策略由兩個腳本所組合而成,分別如下

低本益比低PB高殖利率

{本益比小於 15 倍 股價淨值比小於 2 倍 殖利率大於 3%}

if GetField("本益比","D") < 10 and
GetField("股價淨值比","D") <1.5 and
GetField("殖利率","D") > 5 and
GetField("營收成長率","Q") >0 


then ret=1;

暴量剛起漲

Input: day(10,"日期區間");
Input: ratioLimit(5, "區間最大漲幅%");

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;

把這個策略拿去回測所有的普通股,停損停利都設為7%,回測報告如下

這是一個還算蠻穩定獲利的交易策略,平均一年交易次數約有50次,最大回撤不到一成,顯示如果等到個股的估值跌的夠低之後,等到量能回昇再進場,是一個不錯的交易策略

 

基本面投資策略系列之一

在XS選股平台中有不少的基本面選股欄位,這些欄位包括了歷年股利,股本,月營收等等,跟財報欄位搭起來,可以組合出不少從基本面出發的選股策略,再搭配由價量所組合而成的交易時機觸發條件,就可以組合成為各式各樣的進場策略,接下來有機會就來跟大家分享我常用的一些基本面的投資策略。

在我常用的基本面策略裡,有很大一類是股價遠低於合理評價,然後價量上出現明顯回昇的情況,今天先跟大家介紹的是,從平均現金股利的標準,股價偏低的中小型股,出現暴量剛起漲的情況。

下面是完整的選股條件

這個策略是用來尋找那些過往現金股利都有一定水準,但股價目前跟其現金股利水準相比,明顯估值偏低的中小型股,其中股價低於N年平均股利的N倍這個條件的腳本如下

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

 

暴量剛起漲的腳本如下

Input: day(10,"日期區間");
Input: ratioLimit(5, "區間最大漲幅%");

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;

 

拿這個選股策略去回測過去三年的所有普通股,停損停利俱為7%,勝率超過7成,最大區間虧損只有6%

,交易次數是多了點,平均一年的交易次數有100次,所以交易成本吃掉不少的獲利。

有興趣的朋友可以把這個策略拿去加濾網,降低交易次數,應該可以得到更好的報酬率

 

飆股的長相如何寫成選股程式

網友寄來今週刊的一篇文章,林則行的飆股的長相,問我能否寫成腳本及回測,這篇文章中提到林則行先生列舉了幾個選擇飆股的方法

一,平穩期之後急漲

二,成交量很重要

三,嚴守8%停損線

我寫了幾個,都沒有把其中的精神寫的很精準,後來請公司的高手出馬,寫了一個腳本如下

settotalbar(30);

array:attack[10](0);
variable:i(1);
stochastic(9,3,3,value1,value2,value3);
//計算KD
condition1=value2>value3;
//K>D的時候
if H>value4 and condition1 
//K>D的時候且創新高(抓高點)
then begin
	value4=H;
	attack[1]=value4;
end;
if condition1[1] and not condition1
//KD死亡交叉的時候統計攻頂的戰果
then begin
	for i=10 downto 2 attack[i]=attack[i-1];
	//在陣列中依序發生順序向後排
	value4=0;
end;
///////////////
value5=attack[1];
value6=attack[1];
for i=2 to 4
begin
	if attack[i]>value5 then value5=attack[i];
	if attack[i]<value6 and attack[i]>0 then value6=attack[i];
end;
//////////////最近5次攻頂戰果的最高與最低
if value6>0 then value7=value5/value6-1;
condition2=value7<0.05;
///攻頂戰果最高與最低不超過5%
if condition2[1] and not condition2 and H>attack[2]
and volume>2000
and GetField("主力買賣超張數","D")>2000
and GetField("法人買賣超張數","D")>1000

 then ret=1;
///脫離攻頂戰果5%的區間而且本次還創攻頂戰果的新高

根據這個腳本,如果去跑所有的股票,停損停利都設為8%,回測報告如下

看起來效果不錯

今天挑到的股票是這一檔

 

以上算是回覆網友的提問,抱歉拖的有點久,原因是我自己寫的腳本都不夠好。

歡迎各位把看到的文章分享給我來寫腳本及回測

我如果寫不出來會去請教公司的高手

 

 

與本土法人相關的交易策略

從去年到今年,外資呈現賣超趨勢,本土法人掌握了主流股的話語權,我想整理一下,我寫過的本土法人的相關交易策略,有那些在回測上有比較不錯的績效。

下面這張圖是加權指數與外資的月線連動圖

從這張圖大家可以發現,外資累計買超台股的金額從2017年六月的高點43853億元,一直到昨天已下跌到38245億元,特別是對中小型成長股的著墨,愈來愈明顯是由本土法人在主導。我想盤點這兩年用本土法人相關統計數據所衍生的交易策略,有那一些的勝率及績效值得留意。

首先我們先來盤點目前可以拿來運算的本土法人欄位有那些?

 

這些欄位的更新頻率都是日線及日線以上。

目前XS系統裡,內建的相關策略不少,我以這些策略為基礎,加上我這兩年的觀察及修正,重寫了幾個策略,這裡使用的都是投信的相關欄位,茲分別介紹如下

一,中小型股投信初介入

settotalbar(130);
setbarback(65);
value1=GetField("股本(億)","D");
condition1 = GetField("投信持股")[1]<=1000 
and getField("投信買賣超")[1]=0;

if  H>H[1]
and TrueAll(condition1[1],60)

and GetField("投信買賣超")[1]*C>1000
and value1<30
then ret=1;

二,投信會買的股票出現籌碼收集的現象

condition1=false;
value1=GetField("分公司買進家數");
value2=GetField("分公司賣出家數");
value3=value2-value1;
value4=countif(value3>20,10);
value5=GetField("投信買張");
value6=summation(value5,5);
if countif(value6>=2000,300)>=1
then condition1=true;
//過去300個交易日投信曾五天買超過2000張
if value4>=6 
//最近十天有六天以上,籌碼是收集的
and close[30]>close*1.1
//最近三十天跌超過一成
and condition1

then ret=1;

三,主力與投信共襄盛舉

value1=GetField("主力買張");
value2=GetField("投信買張");
value3=GetField("投信買賣超張數");
value4=GetField("投信持股比例");
value5=GetField("股本(億)","D");
if value4<5
//投信持股比例不到5%
and value1>value2+1000
//主力買進張數大於投信買進張數一千張
and value3>1000
//投信買超大於1000張
and value5<50
//股本小於50億
then ret=1;

四,投信很久沒買,現在買超

input:day(20,"連續沒有買超的天數");
value1=GetField("投信買賣超","D");
if trueall(value1[1]<=0,day)
and value1>500
then ret=1;

五,投信買超且突破其成本

value1=GetField("投信成本","D");
value2=GetField("投信買賣超","D");
if close cross over value1
and value2 >300
then ret=1;

以上是我自己在投信買超的股票中,比較常用來進一步篩選的腳本,供大家參考。

 

平均年報酬率一年兩成的價值型投資皮氏選股法

因著消息面多空紛雜,有不少投資達人開始走價值型投資路線,也有XQ的使用者來信詢問類似的問題,未來我會擇機跟大家分享我在使用的價值型交易策略,今天先跟大家報告的是皮氏選股法。

芝加哥大學教授 Joseph Piotroski 發明了一個叫F-score的計分法來挑股票,他的計分法兼顧了一家公司的獲利性,安全性及成長性,透過這個計分法來挑公司,我根據這樣的概念,寫了一個選股策略,從系統內建的選股條件中,挑出一些可以用來兼顧獲利,成長與安全的條件,然後在這些符合條件的公司價量上有所突破時出現訊號。

我列出來的選股條件如下

其中包含了兩個選股腳本,一個是暴量剛起漲,

Input: day(10,"日期區間");
	Input: ratioLimit(5, "區間最大漲幅%");
	 
	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;

一個是營運現金流大於稅後盈餘

settotalbar(3);

value1=GetField("來自營運之現金流量","Q");
value2=GetField("本期稅後淨利","Q");
if value1 > value2
then ret=1;

我用上述的選股策略去回測,出場訂為40天後,回測過去三年的回測報告如下

從數字上來看,最大連續虧損及最大區間虧損應該都還在可以忍受的範圍,年報酬率平均有接近兩成,明顯打敗指數,65%的勝率也接近三戰兩勝。

 

如果把回測的時間接長到十年,回測報告如下

勝率依然有六成,年平均報酬也有兩成以上,最大連續虧損及最大區間虧損就蠻大的,顯然在大空頭市場,這個策略還是不管用。

我試著想說把出場的時間拉長,看看如果這些股票持有的更久,能不能靠長期投資來降低短期波動的風險,所以我把持有天數拉長到120天,回測的結果如下

結果勝率跟總報酬率都有變的更好,但最大區間虧損仍接近三成,不過從這些數字來看,透過上述條件選出來的股票如果拿來配合其他交易策略,應該可以做出好股票搭配好進場時機的策略,所以還是跟大家分享這樣的選股條件。

 

不會寫程式也能組合出勝率超過七成的交易策略

大部份的人都不會寫程式,但在市場待久了,總有一些自己的心得,今天就來跟大家分享一個勝率超過七成的交易策略,一行程式都不用寫喔。

這個策略也是跟XQ的客戶聊天時聊出來的,這位客戶是屬於價值型投資者,他說挑股票要挑過去每年都能有一定獲利的,如果這樣的公司股價下跌,殖利率高到一定的水準,而且本業沒有衰退,那麼一旦週線突破月線就可以進場了。特別是現在利率水準這麼低,這個投資方法的勝率會更高。

我想舉這個例子,Step by Step  跟大家介紹如何不寫一行程式,就完成上述的交易策略,讓電腦每天來幫我們尋找符合上述條件的股票。

首先,請打開XQ最上層選單中“策略”裡的選股中心,然後按新增的ICON,就會看到下面的畫面

以上述的例子來說,選股的條件裡分別是要使用殖利率,累計營收,現金股利這幾個欄位,就可以把這幾個欄位打在關鍵字搜尋的對話框裡,下面就會顯示可以使用的欄位,選定欄位後右方就有該欄位系統內建的選股條件。

這樣就可以完成相關的選股條件設定

接下來就可以回測看看這樣的策略會不會賺錢,下圖是以這個選股策略去回測過去三年,停損及停利都設為7%,因為設的條件蠻苛的,所以只有32次的進場機會,其中有23次可以賺錢,9次是輸錢,勝率高達71.8%,總報酬率則有70%

也確實如這位用戶所說的,隨著低利率時代的來臨,這一招確實是愈來愈有用。

如果回測期間拉長一點,會發現這個策略在2015年之前其實是會虧錢的

原因是之前雷曼事件讓高殖利率的股票還是隨著大盤一起下跌,很容易就被7%停損出場了

一直要到最近四年,價值型投資當道,整個市場又是多頭市場,這個策略就很有用

 

以上示範透過選股中心的條件選擇及參數的調整,可以不用寫程式就完成一個交易策略,選股中心裡有大量的選股欄位及內建的選股條件,大家可以把自己的實戰經驗轉成選股公式後來回測看看。

老師父賺很大的獨門絕學

市場上一直有一群大戶,他們的手法或有不同,但共同的特徵都是追強勢股。因著這些市場上的長青樹有不少是XQ的客戶,所以有機會跟這些高手面對面的請益,前些日子有機會跟一位從民國78年就在市場上的老先生請益,他說願意分享一些基本概念給還在摸索的交易者 ,以下是他的操作概念及我對應所寫的交易策略。

老先生的選股基本概念不複雜

一,股本不要太大,股性不要太牛皮

二,股價創兩年來新高

三,創新高當天股價比大盤強

四,成交量夠大

五,主力持續買超

六,延著月線操作,跌破就停損停利

我根據他的想法,寫了以下的腳本

settotalbar(400);
value1=GetField("強弱指標","D");
value2=GetField("股本(億)","D");
value3=GetField("主力買賣超張數");
if high=highest(high,400)
and value1>0
and volume>2000
and value2<100
and close>30
and trueall(value3>0,5)
then ret=1;

用這個腳本去回測過去七年,回測報告如下

始果回測三年,回測報告如下

 

的確是屬於那種勝率不高,經常要停損,但會挑到大漲的股票,而且可以抱到大漲的那一段。

我舉一些老先生提到的案例

 

 

 

 

這個策略的缺點是勝率只要四成,超過一半的時間都在停損,對於一般投資人來說,往往會砍不下手,大家可以在這樣的精神之下,自行增加一些過濾的條件,來提高勝率。

若有不錯的結果,也很歡迎回饋給我嘿

 

每年平均獲利三成~ 麥克貝瑞選股法

 

 

麥克貝瑞(Michael Berry)何許人也,2008年次貸危機中的大贏家,電影大賣空裡的第一男主角

股感有一篇文章對他有詳細的介紹。

他其實一直都是一位價值型投資人

他的選股策略,是非常有名的2-2-2法則,大家如果有興趣可以Google一下就找得到,我把它寫成適合台灣市場的選股條件

其中的兩個選股腳本如下

本業推估本益比低於N

input:peuplimit(12,"預估本益比上限");
value3= summation(GetField("營業利益","Q"),4); //單位百萬;
value4= GetField("最新股本");//單位億;
value5= value3/(value4*10);//每股預估EPS
if value5>0 and close/value5<=peuplimit
then ret=1;

價量同步創N期新高

input:period(30,"計算天數");

value1=highest(high,period);
value2=highest(volume,period);
if high=value1 and volume=value2
then ret=1;

出場點如果設為二十天後,過去三年的回測報告如下

三年95%的總報酬率,平均一年有三成。

現在低利率時代,透過一個選股策略,每年穩定獲利,是我們的夢想

麥克貝瑞的這個方法,提供您參考。

 

如何把分享的腳本變成實戰用的交易策略?

常被問到,我在這裡分享的腳本,要如何才能在XQ中實際使用,今天就舉一個我常用的交易策略為例,Step by Step的說明一遍,沒有說清楚有卡關的地方也請直接提問,不用客氣。

我舉的策略雷達腳本如下

if momentum(close,10) crosses over 0
//動能指標突破零
and GetField("投信買賣超")>1000 
//投信買超突破1000張
and barslast(GetField("投信買賣超")>1000 )[1]>10
//近十日投信都沒有這麼大買超
and close > average(close,5)
//股價站在週線之上
then ret=1;

這個腳本是用來找出投信突然大買的股票,如果拿去回測所有股票,持有十天,記得進出場價格都設成下期開盤價。

回測報告如下

從回測報告上可以看出來,這個策略在今年四月之前表現非常好,雖然勝率只有五成,但常會找到短線很強的股票,例如下面兩個例子

 

接下來如果您覺得這個腳本有參考價值,那麼請您打開 XQ選單中“策略”底下的Xscript編輯器

然後如下圖按下新增腳本的icon

 

 

因為這是一個策略雷達即時洗價的策略,所以腳本類型請勾選“警示”,然後取個策略名稱後按確認

接下來就是把上面的腳本複製貼上到腳本編輯器中,然後按上方的“編譯“按鈕完成編譯

然後如下圖點撃 ”加入雷達“

接下來會進到這個策略的屬性設定畫面

 

如果要跑全部的腳本請參考上圖的操作

設定好之後,每天開盤前啟動該策略即可

這樣每天在策略選單底下的警示中心就會收到最新符合該策略的股票通知,如果想要這個策略出現的訊號在手機上出現,請參考這一篇

如果想要更了解策略雷達的設定,請參考這一篇

最後要跟大家說明一下,根據XQ 的收費標準

我介紹的腳本,如果是警示策略的,跑日線以上,只用到開高低收成交量的,跑五檔商品以內的,免費版就可以使用,否則必須有策略模組的權限才能跑,這點是要先跟大家說明的

其次,我介紹的腳本有的是選股用的,有的是盤中會出訊號的策略模組,我分享時一般會說明,請大家特別留意,別把選股腳本拿來當警示腳本,編譯的時候會出問題的。