Author Archives: 發財橘子

籌碼大數據裡的高手券商的設計理念與應用

在籌碼大數據這個模組中,有一個高手券商的選單,這個功能是想要找出散在各券商分公司的民間高手,然後找到值得追蹤的對象,知道這些股市常勝軍最近在買什麼? 以做為選股時的參考。

高手券商的定義是根據使用者設定的計算期間及交易金額,把券商分公司假設成一個單一的個體,然後把這個分公司在設定期間,符合交易金額以上的,非前100大權值股的交易,都過濾出來,然後去計算這些交易的次數,平均持有天數,勝率及平均報酬率。

以下圖為例,在過去一年,交易金額超過三百萬,且交易標的濾掉前100大權值股之後,全市場勝率最高的券商分公司如下圖

高手券商一

這些券商分點裡都隱藏著真正的高手,單日交易一檔個股的金額可以超過三百萬,且在一整年下來,勝率超過七成。

接下來我們可以根據他們的持有天數,勝率及平均報酬率,找出你想追蹤的券商,把它們存成自訂的券商群組。

做法是在券商名稱按滑鼠右鍵,會有加入自選券商的選項,按下後會跳出如下的視窗

高手券商二

例如我個人喜歡追那些平均持有天數超過十天,且勝率及平均報酬率有一定水準,交易次數適中的券商,我就設了一個券商組合叫波段高手,然後把符合條件的券商都加到波段高手這個券商組合中

這麼一來,我每天在看券商進出股票分析這個功能時,就可以如下圖般,知道波段高手們可能在進出什麼樣的標的了

高手券商三

又或者 ,可以透過高手券商選單中的高手券商股票進出,知道現在這些高手券商在買進什麼標的

高手券商四

不過這裡在應用時要留意,不要去追那些隔日沖型的高手券商,因為當你看到他買超時,可能就是他準備要賣出的時候了。

以上是高手券商的設計理念及應用方式的基本介紹。

 

籌碼分析中的券商分公司買賣數據目前在XS上的應用

不少XS的使用者提出來希望可以把券商分公司的買賣數據,拿來寫成腳本,例如可以盯住幾個隔日沖特定券商分點的標的,或是盯住幾家法人及代操大戶有在進出的分公司。這部份我們還在研究如果用簡單的語法來解析這些數據,短期內還是無法滿足各位的需求,在此僅能跟大家說聲抱歉。

目前跟券商分公司相關,可以拿來在XS上寫腳本的欄位主要是下圖幾個

2018062001

 

我自己寫的腳本中我覺得還不錯用的,大致有幾個

//跑全部股票 停損停利都是7%

value1=GetField("分公司買進家數");
value2=GetField("分公司賣出家數");
value3=value2-value1;
value4=countif(value3>40,10);
//計算買進家數與賣出家數的差距夠大的天數
if value4>6 
and GetSymbolField("tse.tw","收盤價","D")
>average(GetSymbolField("tse.tw","收盤價","D"),10)
and close[30]>close*1.1

then ret=1;

這個出的股票不多,但勝率不錯,如果想要出多一點訊號,把條件放寬一些也是可以的

 

另外雲 端策略中心裡有個腳本我把它改成下面這個,

// 作多, 持有期別: 20
//
input:period(20);
value1=GetField("分公司賣出家數")[1];
value2=GetField("分公司買進家數")[1]; 
 
 if linearregslope(value1,period)>0
 //賣出的家數愈來愈多
 and linearregslope(value2,period)<0
 //買進的家數愈來愈少 
 and value1>200
 and average(volume,5)>=10000
 
 then ret=1;

雖然勝率不是很突出,但一些飆股會挑到,例如下面這兩檔

2016082002

2016082003

所以我會把挑出來的股票再用其他的盤中sensor去跑,挑出真的要動的股票

再次跟大家說聲抱歉。

 

 

 

移動停利的腳本寫法

有網友問到如何撰寫移動停利的腳本,我以RSI低檔回昇的進場腳本為例,請優秀的同仁寫出對應的停利腳本作為出場腳本,跟大家說明如何用停利腳本來作回測。

首先,RSI低檔回昇的腳本如下

if rsi(close,12) cross over 20
then ret=1;

那麼這個進場腳本的移動停利腳本寫法可以如下

input:ratio(10);
//設定回檔幅度

//用condition1來代表進場的觸發條件
condition1=false;

if rsi(close,12) cross over 20
then condition1=true;

value1=barslast(condition1);
//計算上一次觸發到現在共歷經幾根bar
value2=highest(high,value1);
//計算觸發後到目前為止的最高價

if close*(1+ratio/100)<value2
then condition2=true
else condition2=false;
value3=barslast(condition2);
if value3 cross under value1 then ret=1;
//觸發移動停利

這當中用condition1代表進場的條件,用barslast來計算符合進場條件後至今共有幾根bar,再拿這數字去找出條件成立後的最高點,接下來就是計算最新價跟這最高價之間是否差了一成以上,如果是的話就是出場條件成立。如果股價往上走,這個自觸發後以來的最高價就會一直走高,也就達到移動停利的目的。

接下來就可以把這個腳本加在回測的出場設定中  如下圖

2018061901

這樣就可以在回測中做到移動停利了。

大家可以把自己的進場腳本設為condition1的條件,其餘的,follow這個出場腳本的寫法就可以作出特定進場策略的移動停利腳本了。

 

以週轉率為例,介紹自訂函數及其應用

網友希望可以訂出一個選股條件,這個條件是個股的近五日平均週轉率要高於二十日平均週轉率。

首先,因著週轉率的公式是成交張數除以發行張數,我們可以先自訂一個叫turnoverrate的函數,它的腳本如下

input:period(numericsimple);
value1=GetField("普通股股本","Q")*10000;
value2=average(volume,period);
if value1<>0
then value3=value2/value1*100;
turnoverrate=value3;

要寫自訂函數的眉角有幾個

1.要先確定新增腳本時勾選的是函數腳本

2.一開始命名就要取好函數的名稱,例如我是取turnoverrate

3.在設參數的時候必須宣告參數的資料型態,例如這裡用period來代表計算天期的參數,天期的參數是一個絕對的整數值,所以就用numericsimple。

4.計算出來的週轉率值再用trunoverrate=xx這樣的方式來指定該數值就是函數值

有了這個函數,上述的選股條件就很好寫了

if turnoverrate(5)>turnoverrate(20)
then ret=1;
outputfield(1,turnoverrate(5),1,"5日平均週轉率");
outputfield(2,turnoverrate(20),1,"20日平均週轉率");

用這個條件剛剛挑出來的股票如下圖

2018052301

這樣就可以把週轉率列為選股條件之一了。

 

私房策略分享之獲利穩定公司落難時

之前有跟大家分享過,大跌後的股票,進場抄底勝率較大,我寫了一個60天內跌四成的腳本,拿所有普通股去回測過去五年,停損停利都設兩成,勝率剛好六成,但交易次數多達4176次,平均一年800次,一般人不會這樣交易。

這個腳本如下

input:n(40,"下跌的幅度");
input:period(60,"計算天數");
if close*(1+n/100)<close[period-1]
then ret=1;

這三十年來,我發現上市櫃公司,如果是好公司,就算短期踫到困難,股價大跌,只要給公司時間,往往可以恢復往日榮耀,所以我就寫了個腳本,去尋找那些獲利穩定的公司,找到後再用上個腳本去回測,我發現勝率可以拉到七成七。

我寫的選股腳本如下

value1=GetField("每股稅後淨利(元)","Y");
if trueall(value1>=2,5)//過去五年每年都賺超過兩元
and highest(value1,5)<lowest(value1,5)*1.5//獲利的高低差距在忍受範圍
then ret=1;
outputfield(1,highest(value1,5),1,"最高EPS");
outputfield(2,lowest(value1,5),1,"最低EPS");

用這個腳本最近一期挑出來的股票有100檔,前40檔如附圖

2018052201

我用這個選股法每年選出的股票,去跑上面大跌四成的腳本,結果過去五年一共出現53次進場的機會,其中有41次都可以獲利20%停利出場,只有12次是虧錢出場,虧錢的交易記錄如下

2018052202

我們可以發現,這些失敗的交易主要是出現在2015股票市場大崩盤的時候,另外這些失敗交易的標的,股本大多相對較小,跌起來往往會超跌。

所以我會先用這個方式濾出股票,再仔細檢查這檔股票有沒有止跌的跡像,或是法人介入的情況,然後再進場。

以上是我這幾年用起來比較有心得的策略之一,出的標的不多,但值得每檔好好追蹤。

 

 

 

上漲下跌家數在期指波段交易上的應用

這兩天有網友問我上漲下跌家數如果要拿來做期指選擇權交易時,用幾天期的參數比較合適? 類似這樣的問題,我總會建議大家,回測看看,我常說回測是檢驗策略的唯一道路。 今天我就以上漲下跌家數為策略的核心,舉一個例子來說明我的心路歷程。

一開始我跟大家一樣,會看上漲下跌家數來研判大盤短期方向,後來我就寫了一個指標,這個指標的概念如下

1.先算出每天上漲家數佔所有上漲家數與下跌家數總和的比例

2.把這個比例取五天及20天平均

3.用五天平均去減20天平均

然後把這樣的概念寫成一個畫指標的腳本

input:days1(5,"短天期");
input:days2(20,"長天期");
value1=GetField("上漲家數");
value2=GetField("下跌家數");
value3=value1+value2;
if value3 = 0 then value4 = 0 else value4=value1/value3*100;
value5=average(value4,days1);
value6=average(value4,days2);
value7=value5-value6;
plot1(value7,"上漲下跌家數差指標");

這個腳本畫出來的線與加權指數對照圖如下

2018051701

然後透過觀察這個指標與加權指數的對照圖,我發現當這個指標從零以上轉正時,往往是大盤短線空翻多的時候,所以我就把這指標改成以下的交易策略

input:days1(5,"短天期");
input:days2(20,"長天期");
value1=GetField("上漲家數");
value2=GetField("下跌家數");
value3=value1+value2;
if value3 = 0 then value4 = 0 else value4=value1/value3*100;
value5=average(value4,days1);
value6=average(value4,days2);
value7=value5-value6;

if value7 cross over 0 
then ret=1;

我拿這個腳本去回測過去十二年的加權指數,持有天期只一天,回測報告如下

2018051704

我發現過去十二年裡這樣的概念確實有七成的勝率,但因為持有一天,所以平均報酬率很低,所以就算獲利出場的機率很高,但總報酬率也有限,所以我就把持有天數從一天改成三天,結果平均報酬率變成0.42%,總報酬變成65%,但勝率也降到62.8%。

後來我把持有期間再改成10天,回測報告如下圖

2018051705

勝率又站回七成以上,回測期間改成最近三年,勝率也在七成以上。

用這個例子是要跟大家說明,很多時候,可以實戰的交易策略,往往是經過不斷的改變參數及進出場條件後,慢慢找出來的。

大家不要太拘泥於專家或高手們提出的作法或參數,多測多檢討,祝大家都能找到最適合自己交易風格的策略。

 

 

 

大盤檢查表中的期權相關指標

在研判大盤未來多空方向時,除了股市相關統計數據之外,匯市及期貨市場的數據也饒富意義,其中期指相關的統計數據,有幾個也頗具參考意義,今天就來跟大家分享這類的指標。

其中我個人最愛用的是前十大交易人未平倉淨部位,這個指標可以了解期指市場主要作手的多空態度,在長期觀察這個指標後,我歸納了幾個心得

1.當這數據由正轉負時,在多頭市場是修正結束的訊號,在空頭市場則是下跌走勢的開始。

請參考下圖

042701

當多頭行情持續一陣子之後,獲利了結的賣壓出現,隨著指數的下滑,淨口數會出現短暫的由正轉負,但隨著獲利了結賣壓的被滿足,當指數開展另一波多頭走勢時,這個數字很快的又由負轉正

042702

這種情況的共同特徵是空頭部位會急遽的減少。

但如果空頭部位沒有急遽減少,反而穩定的在增加,特別是指數都跌下來了還繼續在追空,那往往代表的是一個空頭市場的開始或持續

042703

2015年四月下旬開始的空頭走勢,可以看到空頭部位是一路的往上走,就算指數連跌了七天還是一樣在增加,接著淨口數是負的持續了好長一陣子。

042704

如上圖,2014年的修正行情也是出現空單未平倉一路上昇,最後多頭全面棄守

現在這圖長這樣

042705

接下來的觀察重點應該是空單部位會不會持續穩定的往上走,如果是的話,那作多就得更戒慎了

期權指標除了這個之外,另外還有基差,恐慌指數及外資未平倉,也都有其參考意義,可以搭配著看。

大盤檢查表之國際資金流動篇

在大盤檢查表裡,第一個大標籤裡,包括指標利率,全球債市,油價及主要原物料價格,都是用來監控全球資金的流動方向,當初的設計概念主要是follow 美林證券投資鐘的思維,今天就以當前財經情勢為例,跟大家分享為何要時時留意這些數據的變化。

首先,先跟大家簡單說明一下投資鐘的理路。

投資鐘

我們在研究過往全球資金的投資動向時,發現在不同的景氣循環階段,市場資金會湧向不同的投資標的,當景氣剛復甦而通膨壓力不大時,資金主要會流向股票市場,當景氣很好且物價上揚時, 資金會流向原物料及相關的股票,一旦景氣衰退且物價居高不下,出現停滯性通膨時,保留現金是最佳策略,等到景氣衰退且各國央行又開始準備降息時,債券就成了投資首選。

所以在大盤檢查表裡,一方面我們透過觀察油價,廢價及銅價,鋁價等跟物價息息相關的原物料價格,去觀察通貨膨脹的壓力,二方面我們透過觀察債券殖利率的波動,來了解市場對央行貨幣政策的可能走向,當殖利率在上漲的過程裡,代表債券價格是在走空頭市場,這時候資金當然會持續停駐在股票市場,但一旦債券殖利率到達一個高點(例如十年期債券殖利率超過3%),開始吸引原來配置在股票上的資金,開始往債券移動,那麼股票市場就不再是大多頭行情。

以這一波為例,油價從去年的60元以下一路漲到現在的73元,對物價的壓力當然很大

油價

從下面這張圖,我們就可以充份感受到,美國正處於經濟成長且物價上揚的階段

經濟與物價

這個階段市場的投資重心會從股市移向原物料,甚至一旦景氣無以為繼時,債市就會由空翻多,投資者更會棄股投債。

這就是為何市場對美國十年期公債殖利率突破三%這麼敏感的原因。

也是我們為何要在大盤檢查表裡放這些相關數據的原因

那麼接下來在股票市場上該如何應對呢?

全球資金的流動如果會往原物料及債市挪動,代表全球指數權值股的賣壓會變大,這時候反而會是小型股當道的時候,因為我們利率水準還是很低,所以資金會想辦法找標的繼續搞和,過往外資領軍時,小型股乏人問津,現在外資站在賣方了,小型股就會希望趁機獲得大家的青睞,這種情況會一直玩到大家發現景氣真的變差了,什麼公司的獲利都會衰退,那時候大家就都會靜待股價修正結束,或是發現物價壓力不大,景氣持續,那麼正規軍又重新捲土重來。

從這陣子TSE與OTC指數的表現,就可以發現,資金開始往小型股走。

tseotc

以上跟大家說明為何會在大盤檢查表中讓大家留意美國短期利率,美國各天期公債殖利率及各種原物料價格的變化,目的是為了讓我們掌握目前景氣循環是處於什麼位置,我們才好據以調整持股的比例及選股的方向。

從資本支出挑要作功課的標的

關於操作,要贏錢的方法之一就是比別人早知道接下來會發生什麼事,散戶經常在看報發現某家公司業績大好之後再進場,但業績大好是果,資本支出才是因,我們可以試著從資本支出的非常規投入,來判斷一家公司的業績從何時開始,會有比較異於常態的成長。今天就是來跟家討論如何找出那些最近一季資本支出有明顯成長的公司。

先看選股腳本

input:period(20,"計算N季");
input:lm(10,"比均值增加的幅度");
input:cm(100,"單季資本支出金額下限");
value1=GetField("資本支出金額","Q");//單位: 百萬
value2=GetField("資本支出營收比","Q");//單位:%
value3=average(value1,period);
value4=average(value2,period);

if value1>cm//資本支出超過一定金額
and value1>value3*(1+lm/100)
and value2>value4*(1+lm/100)
then ret=1;

這個選股腳本篩選出來的股票,單季資本支出超過一億,且金額及佔營收比例都超過以往二十季的平均值一成以上,符合條件的股票如下

2018032001

最近有不少家公司透過增資等方式籌資來擴大資本支出,上市櫃公司的大老板,特別是那些過去表現不錯的公司,會比過去積極的投入資本,通常是因為看到了什麼我們沒有看到的,這種公司,就值得我們好好做功課,看看老板賭的這一把,能不能梭哈。

大盤抄底策略

有朋友在問上漲下跌角度的問題,讓我不禁想起先前有跟大家分享的角度算法,我用這個方法來抓大盤短線反彈的時機點,感覺有一定的參考價值。

首先,如果要計算指數上漲下跌的角度,寫法如下

input: period(20,"計算區間");
value1=rateofchange(close,period);
//計算區間漲跌幅
value2=arctangent(value1/period*100);
plot1(value2);

畫成圖形就像下面這張圖

2018031902

從圖上發現,當下跌角度超過60度之後,就有加速趕底,反彈在即的味道,所以可以把它改寫成抄底策略如下

input: period(20,"計算區間");
value1=rateofchange(close,period);
//計算區間漲跌幅
value2=arctangent(value1/period*100);
if value2 crosses over -60
then ret=1;

我用這個策略去跑2010 年以來的加權指數,發現勝率已經接近三戰兩勝

2018031901

這個策略用在ETF的操作上,也有不錯的效果。