Author Archives: 發財橘子

用月營收來選股的幾種方法

今天是十月份營收公佈的最後一天,我用XS選股平台把月營收相關的選股策略跑了一遍,底下是幾個策略跑出來的股票,供大家參考。

一,月營收創25個月新高

111001

選出來的股票

111002

111003

二,以最新一個月營收去估算EPS後,用這EPS來估算出來低本益比的股票
這個選股策略的腳本如下:

value1=GetField("月營收","M");//單位:億元
value2=GetField("月營收月增率","M");
value3=GetField("月營收年增率","M");
value4=GetField("營業利益率","Q");
value5=GetField("最新股本");//單位:億元
condition1=false;
condition2=false;
input:peraito(12);
setinputname(1,"預估本益比上限");
if value5<>0
then
value6=(value1*value4*12)/(value5*10);//單月營收推估的本業EPS
if value6<>0
then
value7=close/value6;

if value7<peraito and value7>0
then condition1=true;//推估本益比低於10

if value3>0 and value2>15 and value2[1]>0
then condition2=true;
if condition1 and condition2
then ret=1;

SetOutputName1("推估本益比");
OutputField1(value7);
setoutputname2("營業利益率");
outputfield2(value4);

用這個策略,截至目前為止,有公佈十月營收的股票中符合該條件的有下列20檔

111004

三,月營收創十二個月新低

111005

四,本益比高但營收成長減緩
這個策略是用來挑出那些本益比很高(代表市場覺得其成長幅度應該是比較高的),但最新公佈的月營收成長不算高

選股條件如下:
111006

已公佈十月營收的股票當中,符合條件的有60檔,其中本益比較高的名單如下

111007

五,營收再起飛
這個策略是去尋找那些過去月營收年增率是走下降趨勢,但最近開始轉為上昇趨勢的公司
我們用的腳本如下:

input:TXT("僅適用月線"); setinputname(1,"使用限制");

If barfreq <> "M" then raiseruntimeerror("頻率設定有誤");

setbarback(20);
settotalbar(20 * 2 + 5);

value1=GetField("月營收年增率","M");
value2=average(GetField("月營收年增率","M"), 3);
value3=linearregslope(value2,20);
value4=linearregslope(value2,5);

if value3 < 0 and value4 crosses above 0
then ret=1;

已公佈十月營收的公司當中,符合這個條件的有53檔,名單如下:

111008

111009

這些策略,您可以在今天晚上所有公司都公佈月營收之後,再跑一遍,就會有更完整的名單了。

每個月的九號晚上起,我會把跟月營收相關的策略跑一遍,從當中找出那些營收數字突出而法人還沒有發現的股票,或是找出那些法人持股很多而營收不如預期的股票,這些族群就是未來一個月我要用力做功課的標的。

 

以往要列出這些符合條件的股票,我要用好多excel去跑,有些還得寫一巨集,甚至有些要用到最新股價的,還要去串DDE,現在透過XS的選股平台,要列出這些股票比以前輕鬆許多。

以下是我的做法

首先是打開XQ系列產品從策略這個選單中點選”選股中心”之後,我們會看到以下的畫面
111003
這個畫面就是XS的選股工作平台。
接下來在每個月九號晚上到十號下午,我們可以透過以下的步驟,挑出各種根據最新月營收所做出來的選股策略
1.在搜尋的框框中輸入”營收”這兩個字後按ENTER
2.這時候系統會把所有跟營收相關的選股策略全部列出來
3.點選每個不同的選股策略,在右邊的框框中會出現其詳細的選股條件
4.按執行選股後在下方會出現符合這些選股條件的股票

這樣子一來,我就把所有透過月營收的選股策略通通一網打盡,未來就算寫出新的跟月營收相關的選股策略,我只要在策略名稱上有”營收”這兩個字,用關鍵字搜尋時一定找得到。

以上就是每個月九號到十號之間我在做的事

我問了一下XS的程式開發者,他們說只要公佈最新月營收的公司超過一半,他們就會用最新的月營收來做為XS選股的資料,所以大約都是九號晚上到十號一大早就會可以用最新的數據來選股,然後接下來在十號當天,他們會每隔一小時就把最新公佈營收的公司也加進去,到了十號下午,大部份的公司就都是用最新公佈的月營收來納入選股範圍了。

 

真實波動區間指標

我們跟老市場聊股票時,他們常會說,這檔股票股性很活潑,或是說這檔股票股性很牛皮,前者意思是股價敢漲也能跌,後者則是不管大盤如何,它的股價大多是小紅小黑作收。

根據我的經驗,如果一檔股票一直很牛皮,但突然變活潑時,背後總有些值得深究之處,很多的長線潛力股,其股價在初昇段時,都有股性由牛皮變活潑的現象,這是因為介入的控盤者,必須透過上沖下洗的方式來吸納籌碼。

那麼我們如何來衡量一檔股票的股性是活潑還是牛皮呢?

大家最常用的一個指標叫作真實波動區間 truerange

truerange=truehigh-truelow(真實高點減真實低點)

真實高點的計算方式如下:

if Close[1] > High then TrueHigh = Close[1]
else TrueHigh = High;

真實低點的計算方式如下:

if Close[1] < Low then TrueLow = Close[1]
else TrueLow = Low;

從公式上我們可以看得出來,truerange的真實意思就是以昨天的收盤價為基準,考慮跳空所造成的gap,真正計算出昨天收盤到今天開高低收所造成的最大波動範圍。

根據這個公式,我也是用短中期不同的均線,來衡量一檔股票平均的波動區間到底有多大。

input: Length1(3);
input: length2(20);

SetInputName(1, "短天數");
setinputname(2,"長天數");

value1 = Average(TrueRange, Length1);
value2=average(truerange,length2);
Plot1(value1, "ATR");
plot2(value2);

以下圖為例,當一檔股票從小打小鬧,小紅小黑瞬間開始出現明顯的波動時,我們就有必要去探究其背後的原因,因為這代表有新的力量參與這檔股票的交易。

110501

開盤委買張數

開盤委買張數,代表的是操作者,在消化一整天所有消息面,技術面,籌碼面等數據後,對於該檔個股願意買進的表態力道。

當一檔股票沒有新的動力,沒有特別引起市場注意時,這個數據基本上不會與前一陣子出現太大的變化。

但如果這檔股票有了新的參與者,往往第一時間會反映在這個數據上面,這當中最極端的表現就是那些開盤就漲停的股票,那是開盤委買量暴增最極致的表現。

因此,我們可以計算一檔股票開盤委買波段的平均張數,再看當日開盤委買量是否異於以往,這也是股性是否有變的一種徵兆。

基於上述的精神,我寫了一個開盤委買的指標,其腳本如下:

input:short1(3),mid1(20);
setinputname(1,"短期平均");
setinputname(2,"長期平均");
value1=GetField("開盤委買");
value2=average(value1,short1);
value3=average(value1,mid1);
plot1(value2,"短期均線");
plot2(value3,"長期均線");

以下是幾個這個指標跟個股的對照圖

110301

 

110302

 

110303

 

從上面的這三個例子,我們可以很清楚的發現,不只一天的開盤委買暴增,如果出現在冷門股時,極可能是那些知道春天要來了的鴨子在領先佈局。

在使用這個指標來衡量股性時,有幾點特別說明

1.股價下跌時,開盤委買增加是正常的,因為人都有撿便宜的心態,要留意的是股價盤整但開盤委買暴增的股票。

2.開盤委買長期均線如果持續很久都持平,然後突然連續數日開盤委買暴增,代表有我們一般人不知道的利多可能在醞釀中。

3.開盤委買的合計總市值如果能夠超過千萬元,這訊號的可信度會愈大,因為這代表的是有實力的人在賭家當,背後應該是有其值得探究之處。

 

 

法人買張比乖離指標

俗話說,牆倒眾人推,股票市場也是如此,當法人,實戶,散戶都上車了,一旦有個風吹草動,大家同時站在賣方,這種股票就成了盤面上最弱的族群。 反過來說,花花轎子人人抬,我們經常發現,當法人開始比平常積極地買進一檔股票時,往往會帶動大家一起共襄盛舉。

那我們要如何衡量法人有沒有比平常更積極地買進一檔股票呢?

今天跟大家介紹一個XS裡的欄位叫作:法人買張

我們可以用Getfield的語法,取得這個欄位的數據,然後拿它來運算,例如我們想知道法人買張佔成交量的比例,就可以把這個欄位拿來除以每天的成交量。

有了每天法人買張佔成交量比,我們如果拿它來取長期移動平均,就可以知道這檔股票長期來說,法人佔它的成交量比例約是在什麼樣的水準,一旦近幾日法人買進比例遠遠超過這水準,就知道法人對這檔股票的態度改變了。

以下是根據上述的推演所寫的自訂指標腳本:

input:length1(5);
input:length2(20);
setinputname(1,"短天期均線天期");
setinputname(2,"長天期均線天期");
value1=GetField("法人買張");
if volume<>0
then value2=value1/volume*100;//法人買張佔成交量比例

value3 = Average(value2, length1);
value4=average(value2,length2);

plot1(value3);
plot2(value4);

我們來看根據上述這個腳本所畫出來的自訂指標

110201

以最近轉強的2235為例,我們可以看到從八月以來,法人買張大約是佔它成交量的一成左右,但最近一陣子兩度突破兩成,顯示法人對它的態度有所轉變。

從上圖可以發現,法人在買了幾天之後,這兩天就開始出現花花轎子眾人抬的急漲走勢了。

我在這一系列談到股性的概念時,一直強調的都是反常必有妖的概念,做法上都是算出特定指標平常的值,然後當它異常時就代表股性變了,如果有不同的指標都在說明某檔股票的股性變了,那就代表供需均衡的情況出現改變,這是很值得留意的訊號。

 

資金流向指標

要看一檔股票的股性有沒有改變,一個可以觀察的角度是看它佔大盤成交值的比重,有沒有跟長期平均值出現明顯差異,例如一檔股票如果長期佔大盤比重都是千分之0.5,一旦連續三天都大於千分之一,那就代表這檔股票比以前吸引更多的參與者加入,這是股性可能已經改變的一個徵兆。

在XS裡有一個欄位叫作資金流向,它的公式是商品成交值/對應大盤指數成交值*100%,這個欄位就是該個股佔大盤成交值的比重。

我用這個欄位,寫了以下的一個自訂指標

input:period(3);
input:period1(15);
setinputname(1,"短期移動平均天數");
setinputname(2,"長期移動平均天數");
value1=GetField("資金流向");

value4=average(value1,period);
value5=average(value1,period1);

plot1(value4,"短期移動平均");
plot2(value5,"長期移動平均");

我把這個指標稱之為資金流向指標。

以下面最近漲的蠻兇的1337這檔股票為例,由於之前這檔股票有被國際放空集團點名,加上又是F股,所以長期乏人問津,佔大盤成交值比重都貼近0。

102702

但我們從上圖可以觀察到,從十月初開始,其資金流向指標短天期均線開始與中長期均線黃金交叉,且差距愈拉愈大,雖然出現幾根的整理黑K,但這樣資金流向上昇的趨勢都沒有變,接著就開始出現明顯的漲勢。

從上述的例子我們會發現,那種長期佔大盤成交值比重在一定位置的股票,一旦開始佔大盤比重日益升高,雖然不見得股價有明顯上漲,也不見得成交量有多大的回昇(因為可能是大盤成交量降低而它的成交量卻小增),但從資金流向的數字來看,卻可以發現它的股性跟以往不大一樣,這也是一個很值得參考的指標。

未來幾天,我們持續來探討一檔股票的股性如果改變,還有那些可以提早偵測到的指標。

N日來有幾日漲幅較大天數

這陣子在討論程式交易時,最常被問到的問題是:”出現買進訊號的股票那麼多?到底該買那一檔?

 

關於這點,以前我也問過我師父,師父的答案是: 挑那些”股性”變了的股票。

什麼是股性呢?

師父觀察到,每一檔股票其實都有原先的固定的參與者,甚或控盤者,這些人的手法不會突然間改變,所以日子久了,一檔股票,如果沒有新的參與者,在價格波動上,會有自己的風格,例如常常拉尾盤啦,常常在一定的波動範圍內啦,常常留上下影線啦,這些自己的風格,就是股性。

師父覺得,股價要波段上漲,必須有新的參與者,新的參與者的手法跟舊的人不一樣,其股性就會不一樣,這時候供需結構改變後,股價比較有機會跟以往的走勢不一樣。

接下來幾天,我想跟大家討論,我們可以透過那些指標來觀察一檔股票的股性。

首先,今天先跟大家介紹的是,從N日來漲幅較大天數的角度來觀察股性。

我們可以觀察到,那些有人在照顧的股票,正常的時候,一天的上漲範圍在一定的區間 ,這是負責照顧的人,除非上頭有指示,不然就是每天低買高賣作價差在創造流動性,這樣的參與者,其最習慣的作法往往是順勢操作,漲的太兇就先賣一點,等大盤回檔時再補回來,或者因為沒啥新消息,大盤在漲也跟著小動一下,但不會有人去追價。

基於這樣的觀察,我們可以算出在一段時間之內,有多少天股價漲幅超過2%,這個數字,在沒有新參與者加入前,很可能是一個平緩的水平線,但如果有新參與者加入,情況就會不一樣。

我用以下的這個腳本做了一個自訂指標,來觀察一檔股票近日來漲幅超過一定比例的天數

input:ratio(2);
input:period(20);
input:period1(10);
setinputname(1,"列入計算之漲幅下限");
setinputname(2,"計算區間");
setinputname(3,"移動平均天數");

SetTotalBar(100);
if close[1]<>0
then
value1=(close-close[1])/close[1]*100;

value2=countif(value1>=ratio,period);
plot1(value2,"漲幅大的天數");
plot2(average(value2,period1),"移動平均");

我以下圖為例

102701

各位可以發現,這檔股票以往大部份的時候都是小黑小紅棒,成交量也非常低,但在八月底九月初,突然有天漲了2%以上,隔個幾天甚至拉了一根漲停,這對這檔股票是很怪異的事。

接下來的幾天又回到小紅小黑而且沒有量的格局,但當再出現一根漲停時,這已經是很久以來,近二十個交易日漲幅大的天數超過兩天。

這就是一個股性改變的跡象。

再以最近很強的F-豊祥為例,這檔股票在大漲前,就開始出現不少中紅以上的紅K棒了。

102703

 

基於上述的精神,我寫了一個選股腳本如下:

 

input:ratio(2);
input:period(20);
input:period1(10);
setinputname(1,"列入計算之漲幅下限");
setinputname(2,"計算區間");
setinputname(3,"移動平均天數");

if close[1]<>0
then
value1=(close-close[1])/close[1]*100;
value2=countif(value1>=ratio,period);
value3=average(value2,period1);
if value2 cross over value3
and volume>=800 and close<close[5]*1.1
//成交量大於800張且近五日漲幅不到一成
then ret=1;

透過這個腳本,我找出符合以下條件的股票

102704

最近跑出來的符合條件的股票如下表:

102702

 

如何去研判一檔股票的股性已經出現變化,可以用的偵測方式不少,今天先介紹這個最容易寫最容易懂的,接下來幾天,我再一一介紹其他的偵測方式,這些方式綜合使用後,就可以更精準的過濾策略雷達出現買進訊號的股票。

 

紅三兵

{
[檔名:] 紅三兵 [資料夾:] 酒田戰法 [適用方向] 多
[說明:] 連續三根上漲實體K棒

[資料讀取] 10
[最大引用] 5
}
{判斷狀況}
condition1= ( close - open ) >(high -low) * 0.75 ;//狀況1: 實體上漲K棒
condition2= ( close[1] - open[1] ) >(high[1] -low[1]) * 0.75 ;//狀況2: 實體上漲K棒
condition3= ( close[2] - open[2] ) >(high[2] -low[2]) * 0.75 ;//狀況3: 實體上漲K棒
condition4= close > close[1] ;//狀況4: 上漲
condition5= close[1] > close[2] ;//狀況5: 上漲
{結果判斷}
IF
condition1
and condition2
and condition3
and condition4
and condition5
THEN RET=1;

多頭遭遇

{
[檔名:] 多頭遭遇 [資料夾:] 酒田戰法 [適用方向] 多
[說明:] 前期收黑K棒 當期開低走高紅棒嘗試反攻昨收

[資料讀取] 10
[最大引用] 5
}
{判斷狀況}
condition1= (open[1] - close[1] ) >(high[1] -low[1]) * 0.75 ;//狀況1: 前期出黑K棒
condition2= close[1] < close[2] ;//狀況2: 前期收跌
condition3= ( close - open ) >(high -low) * 0.75 ;//狀況3: 當期收紅K棒
condition4= open < close[1] and close < close[1] ;//狀況4: 開低且收跌
condition5= low < low[1] ;//狀況5: 破前期低點
{結果判斷}
IF
condition1
and condition2
and condition3
and condition4
and condition5
THEN RET=1;

 

內困三日翻黑

{
[檔名:] 內困三日翻黑 [資料夾:] 酒田戰法 [適用方向] 空
[說明:] 前兩期為長紅棒後包黑K棒 當期往下跌破紅棒開盤價

[資料讀取] 10
[最大引用] 5
}
{判斷狀況}
condition1= close[2] > open[2] + high[3]-low[3] ;//狀況1: 前前期長紅棒
condition2= high[2] < high[3] and low[2] > low[3] ;//狀況2: 前期內包黑K棒
condition3= open >= close[1] and close < open[2] ;//狀況3: 開平高跌破三日低點
{結果判斷}
IF
condition1
and condition2
and condition3
THEN RET=1;

 

吊人線

{
[檔名:] 吊人 [資料夾:] 酒田戰法 [適用方向] 空
[說明:] 短黑棒留長下影線

[資料讀取] 10
[最大引用] 5
}

{判斷狀況}
condition1= open = High and close < open ;//狀況1: 開高收低留黑棒
condition2= (high -low) > 2 *(high[1]-low[1]) ;//狀況2: 波動倍增
condition3= (close-low)> (open-close) *2 ;//狀況3: 下影線為實體兩倍以上
{結果判斷}
IF
condition1
and condition2
and condition3
THEN RET=1;