Author Archives: 發財橘子

基本面與技術面滲在一起的成長股交易策略

今天來跟大家介紹一個很典型的成長股交易策略,這個策略的概念是當最新一季的營業利益,毛利率及營業利益率都創近幾年來的新高,且技術面出現暴量起漲時就進場買進。大家別小看這個很老生常談的想法,實際回測下來,這個策略過去五來的勝率快逼近75%,是屬於四戰三勝的夢幻型交易策略。

選股策略

警示策略

 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;

 

 

這裡用的策略是大家應該已經看過很多遍的暴量剛起漲

 

回測報告

二年的回測報告

五年的回測報告

這個策略的交易次數不多,平均一年大約11-12次,一個月差不多一次,但表現比台灣50還好,年報酬在15-20之間,這代表當基本面出現明顯的好轉,且技術面也的確看到市場競逐的跡證,就很值得我們留意了。

這是一個基本面與技術面合作的例子,跟大家分享。

 

[ xqlite/]

股價距合理價值很遠然後開始暴量起漲

前兩天跟大家介紹我使用XS的方法,透過這樣的決策架構,我每天作功課的時間,就會聚焦在高勝率策略的開發,所以會漸漸的累積出一些勝率還不錯的交易策略,今天來跟大家介紹一個長期勝率蠻高(有七成),這兩年績效穩定的交易策略,這個策略是透過選股平台挑出股價距離合理價位很遠的股票,然後當這股票出現暴量起漲時進場。

這個策略的選股腳本如下

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

// 計算未來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=close/(value3+value5);

if value6<r3/100
then ret=1;
end;

outputfield(1, value5, 2, "估算每股營業利益");
outputfield(2, value6, 1, "市價/淨值比", order := -1);

這個選股腳本是先找出過去五年本業都獲利且五年裡的最高獲利與最低獲利的差異沒有很大,然後拿最新的營業利益當計算基礎 ,假設未來十年每年獲利都成長3%,然後用2%的利率當折現值,這樣計算出股票的合理價位,再跟市價去比,找出目前價值被低估的股票。

搭配的盤中洗價腳本如下

 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;

這個組合出來的策略在過去兩年的回測報告如下

這個策略的概念我用過很多次~ 價值被低估的股票開始絕地大反攻。差別只是評價方式的差別及對於絕地大反攻的價量定義。

這樣概念所寫出來的策略,我有不少勝率都不錯,所以把這樣的概念推荐給大家,祝大家找到績效比這個腳本更好的相關策略

xqlite banner

基金策略雷達使用說明

為了滿足單筆基金投資者的需求,Moneydj有做了一個策略雷達的功能,透過一些策略腳本,去尋找未來可能最有漲升潛力的基金類別,今天就來跟大家介紹這項服務。

 

這個服務是在Moneydj自主理財這個功能裡頭,

點選自主理財之後,會看到下面這個畫面

最上方那一排第二個就是策略雷達,點選後,再左欄選勝率超過60%,會看到如下頁的畫面

這一頁就會列出近十日那些市場,有那些高勝率的策略出現買進訊號

以上圖為例,能源,特別是全球乾淨能源,在十天前,同一天有三個勝率超過六成的策略都出現買進訊號,下圖是從十天前到現在的全球乾淨能源ETF的淨值走勢

這個例子跟大家說的是,透過基金策略雷達,我們可以找到高勝率策略,近十天裡出現買進訊號的股票

如果不止一個高勝率策略出現買進訊號,那後市看漲的機率就更高了

 

這個功能是免費的,提供給單筆基金投資人作參考。

xqlite banner

即將進入季節性多頭的股票

今天是十一月最後一個交易日,接下來就進到法人最可能作帳的12月份,到底會有多少股票以往常有作帳行情呢? 我之前有寫過一個找出過去十年最新還原月線至少超過七年上漲的選股策略, 明天起用這個策略來跑看看有那些股票12月份比較容易上漲。

這個選股策略的腳本如下

array:m1[10](0);
variable:x(0),count(0);
count=0;
for x=1 to 10
begin
m1[x]=(close[12*x-1]-close[12*x]);
if m1[x]>0
then count=count+1;
end;
if count>=7 
then ret=1;
outputfield(1,count,0,"符合的次數");

用還原月份去跑,可以跑出當月上漲機率超過七成的股票

我把這個腳本加上兩個條件組成一個選股策略

停損停利設為7%,過去3年的回測報告如下

勝率有到68%,交易次數也夠多,不過mdd比較大  空頭市場不適合使用。

好公司暴量起漲時

我寫過很多交易策略,有兩大類型勝率比較突出,一類是最低估的股票開始出量,另一類就是好公司暴量起漲,什麼是好公司呢? 我寫過一些不同的衡量標準,今天來跟大家介紹的是其中一種標準,這種標準搭配暴量起漲的腳本,出現的交易次數雖然不多,但勝率還可以。

一,選股標準

我用的選股標準條件還蠻多的

這裡我主要是去找那些各種因子都符合的個股

二,進場腳本

這裡用的還是常用的暴量起漲的腳本

 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%

兩年裡只有十一次的交易次數

對這種策略制定方向有興趣的朋友,可以自行修改選股及觸發腳本,但基本概念: 好公司+價量表現突出,是制定高勝率策略的一個不錯方向。

 

xqlite banner

 

不寫程式如何制定交易策略

為了迎接明年三月要上線的逐筆撮合制度,有愈來愈多的朋友希望把投資決策系統化,為了要完成這樣的目標,開始接觸程式設計,但對非理工科背景的朋友,這是一件進入障礙蠻高的事情,所以我們一直接到一種需求:“能不能不必寫程式就可以制定出交易策略”,我今年三月曾寫過一篇

不用寫程式就能設計,回測及執行交易策略的方法

之後也寫過一篇

如何不寫程式就能讓電腦跑策略出訊號到手機中

透過這兩篇,只要稍具套裝軟體使用經驗的朋友,應該是可以透過勾選的方式,不必寫程式,就可以讓電腦自動把符合特定交易條件的股票,在手機上通知您。

接下來的問題在於,XS內建的條件,是否夠廣泛到,讓大家的IDEA都能找到對應的敘述?

今天就來跟大家分享系統內建的,以及我自己寫過的條件式

一,選股條件

一個完整的交易策略分成選股條件及交易時機,前者大多是使用日線及日線以上的數據來制定,後者則通常是日線及日線以下的分鐘線所寫出來的進場時機。我們先來了解如何不寫程式來設定選股條件。

XS系統內建的選股條件分成兩種,一種是選股條件,一種是選股腳本,在下面這篇文章中,我以財務面的選股欄位為例,跟大家介紹了如何使用選股條件及選股腳本來組合成一個選股策略

如何在XS選股中心用財報數字選股

另外我自己寫過的選股常用語對應的程式腳本也有不少,我在今年七月時有整理過一遍我寫過的選股腳本,把下載點放在下面的幾篇文章中

常用的選股腳本大匯總

量價常用的語法

指標類常用的語法

籌碼類常用語法

 

用這些選股條件,我們就可以組合出一個個選股策略,例如我在今年九月寫過以下的一篇文章

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

大家運用我們上面討論到的選股欄位,根據上面這篇文章所介紹的步驟,就可以不用寫程式,組合出自己心目中的選股策略。

二,交易時機

有了選股策略,如果把策略加入排程,每天電腦會自動跑出符合條件的股票,接下來我們就可以為這些符合條件的股票,勾選適用的交易時機腳本。

例如我我前些天介紹過一個用月營收創52期新高的選股條件,搭配三日均線突破十日均線進場策略的交易策略

用月營收創造的高勝率交易策略

所以在組合出選股策略之後,接下來就是選擇進場的策略,目前系統內建的交易時機策略, 都放在XScript編輯器中,如下圖

打開編輯器之後,選擇“警示”頁籤,打開系統資料夾,這裡有系統內建的359個進場時機腳本,選擇您要的腳本,滑鼠左鍵快速點撃兩次之後,即可以打開程式,這時就可以點撃 上方的加入雷達,開始設定進場腳本參數及要適用的選股策略了

大家可以直接根據自己的需求,選擇對應的進場策略。

但要如何快速找到自己想要用的腳本呢? 請參考下圖

可以利用XSCRIPT編輯器裡的搜尋功能,快速找到自己想要運用的腳本關鍵字,系統有無支援相關的腳本。

 

以上完整介紹了如何不寫程式就制定出自己心目中理想的交易策略,每個人想要完成的交易策略都不見得一樣,就算用同一個指標也可能用的參數都不同,我們會儘量收集各種大家可能用到的腳本,讓大家可以不需要寫程式就制定出想要的交易策略,沒有提供到的敘述,還忘大家不吝提點。

 

xqlite banner

 

 

創百日新高但距低點不遠

最近盤比較震盪,來介紹一個屬於抄底型的選股策略~創百日新高但距低點不遠。這個策略是去尋找那些剛剛創百日來新高,而且離近二十日低點還沒有太遠的股票,這樣的選股策略,有還可接受的策略,優點是,因為離低點不遠,所以風險相對較可接受。

這個選股策略的選股條件如下

請看一下右上方就是選股條件,其中的選股腳本如下

input:day(200,"計算區間");
input:day1(20,"短線漲幅計算區間");
input:percents(10,"距離區間最低點漲幅");

value1=lowest(close,day1-1);
if close=highest(close,day-1)
and value1*(1+percents/100)>=high
and high >= value1*1.05

and volume >= average(volume[1], 5)

then ret=1;

我拿這個選股策略去回測,停損停利都設為7%,回測的結果如下

勝率雖然不到六成,但MDD只有9%多,風險在可接受範圍。

 

每個人的交易風格不同,有人喜歡追強勢股,有的人喜歡挑剛開始起漲的股票,有的人愛藍籌碼,有的人愛低價轉機股,這個策略適合想追高但又怕風險太高的投資人,因為股價能創百日新高代表基本面可能有所變化,但股價離20日內的低點不遠,代表短期漲幅還沒有過大。

以下就是這策略近期挑到的股票

 

xqlite banner

 

產業板塊輪動圖介紹

美股隊長操作秘笈這本書裡有介紹了一個叫作板塊輪動圖的工具,這個工具把產業板塊的輪動,分成四個不同的階段

從落後到改善到領先到轉差,形成一個循環。

一般來說,當一個產業從落後到改善,代表這個產業開始在築底,當從改善轉向領先,代表已變成市場主流,等到轉差時就差不多該獲利了結了

那要如何判斷現在是屬於四階段裡的那個階段呢,書上用的是一個叫作JDK RS的指標,以及其衍生出來的JDK RS動力指標。

由於我查了半天也找不到精確的計算公式,所以就自己試寫了一個

variable:JDKRS(0);
variable:JDKRSMTM(0);
VALUE1=(rateofchange(close,1)-rateofchange(getsymbolfield("TSE.TW", "close", "D"),1))/100;
JDKRS=AVERAGE((1+VALUE1)*100,14);
JDKRSMTM=momentum(JDKRS,10);

Plot1(JDKRS,"KDJRS");
plot2(JDKRSMTM,"KDJRSMTM");
plot3(100);

上面這個是指標的畫法

我把它跟細產業指標放在一起做成一個自訂頁面

這樣大家可能還看的不是很清楚,所以我另外寫了一個選股腳本

variable:JDKRS(0);
variable:JDKRSMTM(0);
VALUE1=(rateofchange(close,1)-rateofchange(getsymbolfield("TSE.TW", "close", "D"),1))/100;
JDKRS=AVERAGE((1+VALUE1)*100,14);
JDKRSMTM=momentum(JDKRS,10)*200;
variable:status("");
if JDKRS>=100 and JDKRSMTM>=0 then status="領先"
else
if JDKRS>=100 and JDKRSMTM<0 then status="轉差"
else
if JDKRS<100 and JDKRSMTM>=0 then status="改善"
else
if JDKRS<100 and JDKRSMTM<0 then status="落後";

if status[1]="改善"and status="領先" then ret=1;
outputfield(1,status,0,"今日狀態");
outputfield(2,status[1],0,"前一日狀態");

這樣跑出來的就是那些從改善進到領先的細產業,以昨天跑出來的結果為例

符合條件的就有筆電,變壓器及金融其他三個細產業

以上是我手作的板塊輪動圖,我也不知道這到底是不是真的是原始作者用的公式,算是起個頭,有興趣的朋友可以產生自己的產業輪動圖

 

 

價值低估股暴量起漲

今天來跟大家介紹一個偏價值型的交易策略,這個策略是用現在的本業獲利去推估公司的長期價值,然後當股價遠低於長期估值,且開始暴量起漲時,就進場。

這裡我用的選股腳本是去尋找過去五年獲利穩定的公司,用目前的營業利益,然後假設未來十年的營業利益年增率及折現用的利率,把未來十年每一年的本業獲利折現,然後加總後加上淨值,再看看這個數字跟目前股價的比值,如果比值低於一,那就代表股價被低估。

選股策略

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

// 計算未來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=close/(value3+value5);

if value6<r3/100
then ret=1;
end;

outputfield(1, value5, 2, "估算每股營業利益");
outputfield(2, value6, 1, "市價/淨值比", order := -1);

警示腳本

 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%

這個策略除了勝率不錯之外,MDD也夠低,自是一個低風險的交易策略

籌碼面交易策略之投信動真格的

今天來跟大家介紹另一個籌碼面的交易策略: 投信動真格的。 這個策略的概念是,如果投信持續買一檔股票且累計超過一億台幣,而且這檔股票股價不到100元,然後股價也同時突破五日均線,代表這是一檔投信在用力追價大買的股票,過去幾年這樣的股票回測下來,超過七成的機率會賺錢。

這個策略近期的代表作就是鴻海

在10/29日鴻海就符合了這個策略的進場訊號

接下來跟大家分享相關的腳本及回測報告

選股策略

value1=GetField("投信買賣超","D");
if value1 <=0
then value2=0
else
value2=value2[1]+value1;
value3=close*value2/10;//單位:萬元

if value3 crosses over 10000
and close<100

then ret=1;

警示策略

input:period(5);
if close crosses over average(close,period)
then ret=1;

回測報告

這裡我們依然是7%停損停利,上面兩張分別是回測兩年及三年的回測報告,不管勝率還是年均報酬率,都十分迷人,唯一的缺點是,空頭市場投信認賠砍起股票時也是很粗殘的,所以這個策略在大空頭市場MDD蠻嚇人的。不過如果不是大空頭市場,這是一個還蠻不錯的交易策略。

 

xqlite banner