Author Archives: 發財橘子

一個關於千張大戶的交易策略

坊間常有媒體或老師在介紹千張大戶這個籌碼數據,以及其所衍生出來交易策略,我想拋磚引玉,跟大家分享一個相關的交易策略,回測的結果勝率及年平均獲利率都不錯,大家可以像這樣的方式,發展出自己專屬的千張大戶策略。

我的千張大戶策略分成兩部份

一,選股策略

我的選股策略條件如下

不用寫程式,用大戶持股及主力買超這兩個數字來挑股票,因為大戶持股是週資料,週一公佈,週二到週五可以利用主力是否買超這樣的條件,來尋找那些主力持續在買進的股票

二,策略雷達

有了選股策略之後,我設定的盤中觸發腳本很簡單: 兩日均線突破十日均線

這個短期均線突破長期均線的腳本如下

input: Shortlength(2); setinputname(1,"短期均線期數");
input: Longlength(10); setinputname(2,"長期均線期數");

settotalbar(8);
setbarback(maxlist(Shortlength,Longlength,6));

If Average(Close,Shortlength) crosses over Average(Close,Longlength) then Ret=1;

只是把參數調為2跟10

所以這樣我們就可以完成一個包括選股及觸發時機的策略雷達

我這這個策略去回測,停損跟停利都設為7%

以下分別是兩年及五年的回測報告

 

交易次數不算多,一個月差不多兩次左右,但勝率還不錯,超過三戰兩勝,年平均報酬率約是兩成,缺點是MDD蠻大的,用這個策略在空頭市場必須保守應對。

這個交易策略可以改觸發條件,可以改選股條件,大家可以自己作實驗。

xqlite banner

 

 

高週轉率高勝率穩定報酬交易策略系列介紹之二: 布林交易法則

昨天介紹的高週轉率交易策略,業代的反應不錯,希望我介紹更多這種交易次數很多,但多賺少賠的策略。今天我想跟大家介紹一個有不少市場老師在教,大家對概念很熟悉,我把這樣的想法完全寫成腳本來自動執行。

這個策略的概念就是在布林上下軌道收窄後,如果收盤價突破布林軌道線的上軌後,股價創20日來新高,就是一個作多的時機。

以下圖為例

在8/13日那天,股價創20日新高

而在前一個交易日,股價突破布林值的上軌,且當時上下軌的寬度低於3

之後台汽電展開了一趟多頭的走勢。

接下來我們就來試著把這樣的概念,用程式碼,讓電腦每天把符合條件的股票自動通知我們

首先是先完成選股策略,我設的選股策略如下圖

其中兩個選股腳本分別如下

K棒突破布林值上緣

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

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

settotalbar(3);

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

布林值帶寬小於N

input:length(20,"計算天期");
input:width(3,"帶寬%");
variable:up1(0),down1(0),mid1(0),bbandwidth(0);
up1 = bollingerband(Close, Length, 1);
down1 = bollingerband(Close, Length, -1 );
mid1 = (up1 + down1) / 2;

bbandwidth = 100 * (up1 - down1) / mid1;
if bbandwidth <width
then ret=1;

加上成交量大於1000張這個條件,組合成選股的策略

至於雷達的觸發策略,則是用股價創20日新高這個腳本

if close=highest(close,20)
then ret=1;

把選股策略跟盤中洗價策略組合而成的交易策略,如果停損停利都設為7%,三年的及五年的回測報告分別如下

 

 

從回測報告來看,一年大約有200個交易機會,差不多天天有股票可以進場,勝率在三戰兩勝左右,但因為交易次數實在太多,交易成本吃掉了獲利,年平均報酬率只有一成左右,如果是自己要用的朋友,可以再加一些過濾條件來提高勝率及報酬率。

xqlite banner

一個高週轉率且穩定獲利的交易策略

剛好有業代來訪,問我有沒有那種週轉率蠻可以,但長期穩定獲利的交易策略,他想要自己試試看。我手邊剛好有一個交易策略還蠻符合,今天來跟大家分享這個策略的設計概念,大家可以參考並優化之。

這個策略分成兩部份,一部份是選股,一部份是盤中觸發的條件,先說選股策略

這個選股策略挑的是那些估值偏低,但其實業績還可以的公司,會符合這種條件的,絕大多數都非熱門股,因為一旦熱門,根本沒有機會可以估值這麼低。

其中本業推估本益比低的選股腳本如下

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;

這個腳本的作法是用最近一季的營業利益乘以四來當預估EPS的基準,所以使用時要過濾那些景氣循環股及業績季節性因素很明顯的公司。

第二部份的盤中觸發策略,其腳本如下

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

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

這個腳本是當價量同步創百日新高時就觸發。

把這兩部份組合成一個策略雷達,如下圖

我用這個策略去跑回測,停損停利都設為7%,回測報告如下

過去三年一共有332個交易的機會,平均每年都有110個交易機會,勝率接近三戰兩勝,三年報酬是78%,平均每年都有超過兩成,最重要的是,這個策略的MDD只有9.87%,這應該算是風險還OK的交易策略。

這個策略符合高週轉率,風險可接受及獲利不差等三個特色,大家有興趣的話可以再加以修改成更符合自己想法的交易策略。

 

xqlite banner

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

近期台商有不少資金回台,證券交割戶的存款餘額達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好。

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

xqlite banner

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

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

這個交易策略如下圖

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

低本益比低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次,最大回撤不到一成,顯示如果等到個股的估值跌的夠低之後,等到量能回昇再進場,是一個不錯的交易策略

 

xqlite banner

基本面投資策略系列之一

在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次,所以交易成本吃掉不少的獲利。

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

xqlite banner

 

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

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

一,平穩期之後急漲

二,成交量很重要

三,嚴守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%,回測報告如下

看起來效果不錯

今天挑到的股票是這一檔

 

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

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

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

xqlite banner

 

 

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

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

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

從這張圖大家可以發現,外資累計買超台股的金額從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;

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

 

xqlite banner

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

因著消息面多空紛雜,有不少投資達人開始走價值型投資路線,也有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天,回測的結果如下

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

xqlite banner

 

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

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

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

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

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

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

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

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

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

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

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

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

 

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

xqlite banner