Author Archives: 發財橘子

大漲後大戶落跑

昨天跟大家聊了2017年飆股的長相,我們可以試著把 5 0億股本以下,股價低於60元,具有利基的轉機股列為觀察名單,如果這些股票開始出現買進訊號我們就進場,但接下來的問題是,我們好像常常搭上一列往高雄的列車,但總是在板橋就下車了,今天我想跟大家來介紹一個每週觀察一次的指標:大戶持股人數,用這個指標來研判一檔飆股是否已經進入大戶把籌碼散給小散戶的多頭末昇段。

關於大戶持股人數的定義,請參考以上的Link

大戶持股的說明

我根據這個數據,寫出的腳本如下

value1=GetField("大戶持股人數","W",param:=1000);
value2=GetField("散戶持股人數","W");
if value1<value1[1]
and value2>value2[1]
and value1[1]-value1>=4
and close> lowest(close,100)*1.5
then ret=1;

拿這個腳本作空,回測過去三年的所有股票,停損停利都設為5%,回測報告如下:

2018010301

勝率有達到三戰兩勝的標準。

顯示一旦大戶持股人數出顯明顯減少,代表原來的大量持股者已經獲利了結出場了。這時才是長線多頭行情可能結束的訊號。

以晶電為例,請參考下圖

2018010303

圖上很清楚的看到,千張大戶的人數是隨著晶電的多頭行情而一路增加,一直到整個行情結束時,清楚看到千張大戶人數的明顯急遽下降。

其實這個腳本拿來空頭市場作短線空頭策略也是蠻好用的。例如各位看下圖

2018010302

可以看那些股票有千張大戶落跑,當然也可以觀察有那些股票大戶在買散戶在賣,只要把上面的腳本改一下就行

value1=GetField("大戶持股人數","W",param:=1000);
value2=GetField("散戶持股人數","W");
if value1>value1[1]
and value2<value2[1]
then ret=1;
outputfield(1,value1,0,"本週大戶人數");
outputfield(2,value1[1],0,"上週大戶人數");
outputfield(3,value1-value1[1],0,"大戶增加數");
outputfield(4,value2,0,"本週散戶人數");
outputfield(5,value2[1],0,"上週散戶人數");

上週挑出來千張大戶數增,散戶數減少的股票如下

2018010304

大家可以一檔一檔拿來印證一下。

最後提醒大家,這個資料是一週公佈一次,所以每週第一個交易日跑一次就可以了

 

尋找投信的新歡

一檔股票大漲的過程中,投信往往扮演一定的角色,如果我們可以在比較早的時候就發現某檔股票開始有投信在佈局,馬上把它列入觀察名單,那麼當該股票出現一些買進訊號時,就比較會勇於進場。

如何挑出投信才開始佈局的股票呢?

我用以下三個選股條件組成投信新歡的選股策略

2017122801

這三個條件可以挑出之前很少基金持有,但近幾日開始很積極在買的非大型股,不過這邊要強調的是,股票基金持有檔數一個月才公佈一次,所以選出來的股票,可能上個月沒幾檔基金持有,但這個月已經開始有不少檔進場,所以必須再參考一下近日的投信買賣超數字。

但大致上,這個簡單的選股策略是挑得出投信新歡的。

例如用前天的資料,這個選股策略選出下面四檔股票

2017122802

昨天跑出來的股票,則除了上面四檔之外又增加了集盛及達邁兩檔

2017122801

投信新歡不一 定就是會大漲的股票,但至少是一個值得再進一步follow的線索,如果怕買到投信被主力收買拿來出貨用的標的,那麼也可以濾掉那些波段漲幅大,低成交量的股票,畢竟主力會找投信出貨,一般是拉上來沒人跟只好出這招,特別是現在管的那麼嚴,會挺而走險應該是真的出不掉了。

投信年底作帳標的要怎麼挑?

只剩兩個交易日今年就結束了,昨天被網友問到年底投信有沒有作帳行情? 如何找出投信作帳會拉抬的股票?  我試著用XS條列式的選股條件,來設計挑出這類股票的選股策略,我的邏輯是挑那些只有少數基金有且張數不少的中小型股,而且持有這檔股票的投信股票型基金及代操的規模要夠大,這樣才比較有可能是投信年底作帳的可能標的。

年底會不會有投信的作帳行情,要先看投信績效排名的競爭情況,底下這張圖是目前台股一般股票型基金績效在前在的名單

2017122605

目前大家排名的差距不大,是有翻盤的可能,所以拉抬自家才有的特定股票來作帳的可能性是有的。

會挑那些股票來作帳呢?  我設的選股條件如下:

2017122602

這些條件會挑出只有少數基金持股,且張數不小的中小型股,其中比較特別的是XS  Support了股票基金持有檔數這個選股欄位,這個欄會是計算有幾檔基金持有該檔股票,透過這個欄位,我們可以挑出那些股票是少數基金在重押,下面就是電腦挑出來的股票

2017122601

接下來就可以進到個股分析中,一檔一檔看看買這些特定股票的是那幾個基金,例如持有達邁跟欣銓的基金名稱如下

2017122603

 

2017122604

透過這個方法,大致就可以找出年底投信可能作帳的股票了。

我的經驗是,如果真的要作帳,大約在12月20 日前後就得完成規劃,接下來都是在執行先前的規劃,到了最後兩個交易日,差太多的應該就會放手,以今年來看,我就覺得作帳行情其實應該差不多了,不過這種挑少數基金大量持有的選股方法,有值得進一步深入研究的地方,有機會再跟大家來討論這個議題。

 

重獲市場垂青的低價股

要怎麼判斷一檔低價股開始重新獲利市場的青睞? 例如像底下達運這樣的走勢呢?

2017121202

我的老市場朋友給了我兩條不算複雜的規則

規則一: 資金明顯回流到這檔股票

規則二: 連續多日主力買超

就這麼簡單嗎?

哦! 還有一個是盤不能太差

意思是大盤不太差時如果低價股出現資金明顯回流且主力連續多日買超,就該留意。

問題來了,資金要回流到什麼程度才算呢?

於是我寫了以下的腳本,回測了幾個不同的比例,最後發現,如果資金流向的比例是過去60天移動平均的四倍,回測出來的勝率最高,以下是我寫的腳本

//所有股票
//進場後20天出場

value1=GetField("資金流向");
value2=GetField("主力買賣超張數");

if value1 crosses over average(value1,60)*4
//資金流向明顯回昇
and trueall(value2>200,5)
//過去五日主力都買超超過兩百張
and tselsindex(10,6)=1
//大盤外資買多於賣
and close<40
//股價不高於40元
then ret=1;

回測報告如下

2017121301

大家也可以用這個簡單的腳本作基礎,調整資金回流的比例,然後再加上其他技術面的條件,可能會有更好的結果。

綜合抄底策略

近期的股價修正,讓抄底策略開始有了用武之地,之前跟大家提過,在股價修正四成之後,有不少抄底型的交易策略勝率會大幅攀昇,今天跟大家介紹的方法是,把不同的抄底策略全部綜合在一個腳本中,只要股價修正超過四成之後,符合其中任何一種現象,都會觸發訊號。

自從有了XS之後,我應該寫超過500個腳本,回測下來,跌幅超過四成後的各種訊號,勝率真的比較高。

例如到昨天收盤價為止,近百日跌幅超過四成,成交量超過五百張且股價高於十元的股票如下圖

2017120201

這些股票反彈起來,有不少還真的是又兇又猛。

並不是所有跌四成的股票都能買,之前跟大家分享過幾個抄底策略,如果下跌四成後又出現這些現象,進場作多的勝率往往超過六成。我把這些策略綜合在一個腳本中,希望可以節省各位的時間,

我寫的腳本如下

if close*1.4<highest(close,60)then begin
variable:count(0);
count=0;
//之前無長紅,最近兩根長紅
input:ratio(5,"長紅的漲幅下限");
if countif(close[5]>=close[6]*(1+ratio/100),60)=0
and countif(close>=close[1]*(1+ratio/100),5)>=2
then count=count+1;

//均線糾結後上漲
input: s1(5,"短期均線期數");
input: s2(10,"中期均線期數");
input: s3(20,"長期均線期數");
input: Percent(2,"均線糾結區間%");
input: Volpercent(25,"放量幅度%");
//帶量突破的量是超過最長期的均量多少%
variable: shortaverage(0);
variable: midaverage(0);
variable: Longaverage(0);

if volume > average(volume,s3) * (1 + volpercent * 0.01)
//放量25%
and lowest(volume,s3)<1000
//區間最低量小於一千張
and volume>2000
//今日成交量突破2000張
then begin
shortaverage = average(close,s1);
midaverage = average(close,s2);
Longaverage = average(close,s3);
value1= absvalue(shortaverage -midaverage);
value2= absvalue(midaverage -Longaverage);
value3= absvalue(Longaverage -shortaverage);
value4= maxlist(value1,value2,value3);
if value4*100 < Percent*Close
and linearregangle(value4,5)<10
then count=count+1;
end;
//低檔五連陽
if trueall(close>open,5) 
then count=count+1;
//急拉
value11=barslast(close>=close[1]*1.07);
if value11[1]>50
//超過50天沒有單日上漲超過7%
and value11=0
//今天上漲超過7%
and average(volume,100)>500
and volume>1000
then count=count+1;
//連續跳空上漲

if countif(open > close[1],5)>=3
//過去五天有三天以上開盤比前一天收盤高
and average(volume,5)>2000
//五日均量大於2000張
then count=count+1;

//連續多日價量回溫
input:period(5,"回溫期數");
value21=GetField("資金流向");
value22=GetField("強弱指標","D");
if countif(value21>value21[1]and value22>0,period)>= 4
and volume>average(volume,20)*1.3
then count=count+1;

//主力回頭收集
input:period1(20);
value31=GetField("分公司賣出家數")[1];
value32=GetField("分公司買進家數")[1]; 
if linearregslope(value31,period1)>0
//賣出的家數愈來愈多
and linearregslope(value32,period1)<0
//買進的家數愈來愈少
and 
close*1.03<close[1]
//今天又跌超過3%
 
then count=count+1;


if count>=1 then ret=1;
end;

我拿這個腳本去回測,並且對照單一腳本在沒有選股,沒有大盤濾網下的回測數據,作成以下的這張表

抄底策略統計表

以上是跑所有股票,回測過去兩年,二十天後出場的回測數據比較。

這個綜合的策略,交易次數夠多,勝率也夠高,除了在大空頭市場之外,表現非常的平穩。

抄底策略不只這幾個,例如我先前介紹過的大跌後的吊人線等,各位可以把收集得到,勝率夠高的策略都用同樣的寫法放在一起,這是小弟我認為最靠譜的交易策略了。

這種抄底策略的另一個好處是,停損點很好設,破底就停損。

雞尾酒策略雷達的函數化

因著雲端策略中心愈來愈普及於券商的下單系統,開始出現一種需求,希望可以綜合多個交易策略來考量,只有在特定幾個交易策略近N天內出現多個以上的交易訊號時才出現進場訊號。 這個需求PM應該是有收到,但考慮到 XQ一年才換三次版,且前面已經排了不少需求,所以我想從腳本下手,找出一個方法可以綜合多個腳本考量後再出訊號。

我想舉雲端策略中心裡的例子來跟大家說明這個方法

假設雲端策略裡長線作多的策略裡,我訂閱的策略如下表

2017121001

共有

1.跌不下去的高殖利率股

2.股價突破籌碼沈澱區

3.投信強買發動

4.爆量剛起漲

5.突破糾結均線

6.低PB股的逆襲

7.即將鎖第一根漲停的中小型股

一共七個策略,或希望如果這個七個腳本有超過兩個在三天內都有出訊號時,系統再通知我,我的作法是寫一個函數來計算近三天這七個腳本共出現多少個訊號。

我寫的函數腳本如下:

var:count(0);
count=0;

condition1=false;
condition2=false;
condition3=false;
condition4=false;
condition5=false;
condition6=false;
condition7=false;

//跌不下去的高殖利率股

 
condition8 = L = Lowest(L,20);
condition9 = H = Highest(H,20);
 
if GetSymbolField("tse.tw","收盤價")
>average(GetSymbolField("tse.tw","收盤價"),60)
//大盤處於多頭市場
then begin 
 if condition9
 //股價創區間以來高點
 and TrueAll(Condition8=false,20)
 //這段區間都未破底
 and close<close[19]*1.05
 //區間股價漲幅不大
 then condition1=true;
end;

if barslast(condition1=true)<3
then count=count+1;

//股價突破籌碼沈澱區

condition10=false; 

if v[1] > 0 then value1 = (v[1] - GetField("當沖張數")[1])/v[1];
//實質成交比例
 
if value1[1] >0 then value2 = 100*value1/value1[1]-100;
//實質成交比例日變動百分比
value3 = standarddev(value2,5,1);
//實質成交比例日變動百分比的不同天期標準差
value4 = standarddev(value2,10,1);
value5 = standarddev(value2,20,1);
if value3 = lowest(value3 ,20) and
 value4 = lowest(value4 ,20) and
 value5 = lowest(value5 ,20) 
//現在各不同天期的成交比例日變動百分比標準差都處在期間最低點
then condition10=true;
 
// 成交量判斷
 

if tselsindex(10,6)=1
and condition10 
and close crosses over highest(high[1],10)
then condition2=true;
if barslast(condition2=true)<3
then count=count+1;

//投信強買發動

variable: SumForce(0), SumTotalVolume(0),Kprice(0), Kdate(0);
SumForce = Summation(GetField("投信買賣超")[1], 3);
sumTotalVolume = Summation(Volume[1], 3);

if SumForce > SumTotalVolume * 15/100 And Average(Volume[1], 5) >= 1000 then 
begin
 Kprice =highest(avgprice[1],3);
 Kdate = date[1];
end; 

Condition11 = C crosses above Kprice and datediff(date, kdate) <= 60; 
Condition12 = Average(Volume[1], 5) >= 1000;
Condition13 = Volume > Average(Volume[1], 5) * 1.2;
Condition14 = C > C[1];
condition15 = tselsindex(10,6)=1;
if Condition1 And Condition2 And Condition3 And Condition4 And condition5
then condition3=true;
if barslast(condition3=true)<3
then count=count+1;


//爆量剛起漲

 
Condition16 = H=highest(H,60);
 //今日最高創區間最高價
 
Condition17 = V=highest(v,60);
 //今日成交量創區間最大量
 
Condition18 = highest(H,60) < lowest(L,60)*(1 + 14*0.01);
 //今日最高價距離區間最低價漲幅尚不大
 
if Condition1 And Condition2 And Condition3
and tselsindex(10,6)=1
then condition4=true;
if barslast(condition4=true)<3
then count=count+1;

//突破糾結均線
variable: Shortaverage(0),Midaverage(0),Longaverage(0);
variable: AvgHLp(0),AvgH(0),AvgL(0);

//透過Z的時間安排來決定現在用的是那一根Bar的資料 
variable: Z(0);
if currenttime > 180000 
or currenttime < 083000 then 
 Z =0 
else 
 Z=1;

Shortaverage = average(close,5);
Midaverage = average(close,10);
Longaverage = average(close,20);
AvgH = maxlist(Shortaverage,Midaverage,Longaverage);
AvgL = minlist(Shortaverage,Midaverage,Longaverage);

if AvgL > 0 then AvgHLp = 100*AvgH/AvgL -100;

condition19 = trueAll(AvgHLp < 5,20);
condition20 = V > average(V[1],20)*(1+25/100) ;
condition21 = C > AvgH *(1.02) and H > highest(H[1],20);
condition22 = average(volume[1], 5) >= 1000; 
condition23 = tselsindex(10,6)[Z]=1;

if condition19
and condition20 
and condition21 
and condition22
and condition23
then condition5=true;
if barslast(condition5=true)<3
then count=count+1;

//低PB股的逆襲

if GetSymbolField("tse.tw","收盤價") > average(GetSymbolField("tse.tw","收盤價"),10)
then begin
 if close<12
 and H = highest(H,20)
 and close<lowest(low,20)*1.07
 and highest(h,40)>close*1.1
 then
 condition6=true;
end;
if barslast(condition6=true)<3
then count=count+1;

//即將鎖第一根漲停的中小型股
 
Condition24 = Close >= GetField("uplimit") * (1 - 1/100);
Condition25 = TrueAll(Close < GetField("uplimit"), 20);
Condition26 = Average(Volume, 5) >= 1000;
Condition27 = Close > Highest(High[1], 20);
Condition28 = Volume >= Highest(Volume[1], 20);
Condition29 = GetSymbolField("tse.tw","收盤價") > average(GetSymbolField("tse.tw","收盤價"),10); 
if Condition24 And Condition25 And Condition26 And Condition27 And Condition28 and condition29
then condition7=true;
if barslast(condition7=true)<3
then count=count+1;
entrycount=count;

這個腳本的作法是用計數器的寫法來計算每個腳本是否符合三天內出訊號的條件,用barslast這個函數來計算特定策略三天內是否出現訊號,最後完成這個函數,透過這個函數寫的警示腳本就可以變的很簡單

if entrycount cross over 1 then ret=1;

有了這個函數之後,如果我們要找出這七個腳本在三天內不只出現一個訊號,一行就寫完了。

各位可以利用這樣的寫法,把同頻率的策略雷達合成一個腳本去跑,如果要當天同時都出訊號,就不要用barslast就可以。

透過這樣的方法,就可以達到綜合多個策略考量,當不只一個策略出訊號時才通知的效果。

 

 

 

大跌後出現什麼K線型態可以進場?

這一波的下跌來勢不善,陸續被問到大跌後踫到什麼情況可以進場買股票? 今天我從K線型態出發,來看看股價如果跌三成後,出現的幾種K線組合,那一種回昇的機率較高。

 

首先我寫了一個函數叫BKPatterm,把幾個常見的多頭反轉K 線組合都包含在這個函數裡,由於此函數回傳類型為字串型態,故新增函數腳本時記得回傳類型勾選”字串”

20171208_字串

我寫的腳本如下:

settotalbar(5);
condition2 = (minlist(open,close)-Low) > absvalue(open-close)*3; 
condition3 = minlist(open, close) > low* (100 + 2)/100;

if trueall( condition2 and condition3, 3)
then bkpatterm="三長下影線";


{[檔名:] 紅三兵 
[說明:] 連續三根上漲實體K棒 
} 
 
condition1= ( close - open ) >(high -low) * 0.75;
//狀況1:實體上漲K棒
condition4= ( close[1] - open[1] ) >(high[1] -low[1]) * 0.75;
//狀況2:前一根也是實體上漲K棒
condition5= ( close[2] - open[2] ) >(high[2] -low[2]) * 0.75;
//狀況3:前前根也是實體上漲K棒
condition6= close > close[1];
//狀況4: 上漲
condition7= close[1] > close[2];//狀況5:上漲
{結果判斷} 
IF 
 condition1
 and condition4
 and condition5
 and condition6
 and condition7
THEN bkpatterm="紅三兵"; 

condition8= ( open[2] - close[2] ) >(high[2] -low[2]) * 0.75;
//狀況1:實體下跌K棒
condition9= ( close[1] - open[1] ) >(high[1] -low[1]) * 0.75;
//狀況2:實體上漲K棒
condition10= high[1] < high[2] and low[1] > low[2];
//狀況3:前期內包於前前期
condition11=( close - open ) > 0.75 *(high -low);
//狀況4:當期實體上漲K棒
condition12=close > open[2];
//狀況5:現價突破前前期開盤價
IF condition8
 and condition9
 and condition10
 and condition11
 and condition12
THEN bkpatterm="內困三日翻紅"; 


condition13=open = High and close < open ;//狀況1: 開高收低留黑棒
 condition14=(high -low) > 2 *(high[1]-low[1]) ;//狀況2: 波動倍增
 condition15=(close-low)> (open-close) *2 ;//狀況3: 下影線為實體兩倍以上
 
IF condition13
 and condition14
 and condition15
THEN bkpatterm="吊人線"; 


condition16=(open[1] - close[1] ) >(high[1] -low[1])*0.75;
//狀況1:前期出黑K棒
condition17=( close - open ) >(high -low) * 0.75;
//狀況2:當期紅棒
condition18=high > high[1];
//狀況3:高過昨高
condition19=open<low[1];
//狀況4:開低破昨低 
IF condition16
 and condition17
 and condition18
 and condition19
THEN bkpatterm="多頭吞噬"; 

{ 
[檔名:] 多頭執帶 
[說明:] 開在最低點一路走高收在最高點附近的K棒 
}
condition20=close>open; 
condition21=(Close-Open)>(high-low)*0.9;
condition22=Close>Close[1]+high[1]-low[1]; 
IF condition20
 and condition21
 and condition22
THEN bkpatterm="多頭執帶"; 

{ 
[檔名:] 多頭母子 
[說明:] 前期收長黑K棒 今期開高小幅收紅不過昨高 
} 
 
 
condition23=( open[1] - close[1] ) >(high[1] -low[1])*0.75;
//狀況1:前期出長黑K棒
condition24=close[3]-close[2]<close[2]-close[1]; 
//狀況2:前期呈波動放大下跌
condition25=( close - open ) >(high -low) * 0.75;
//狀況3:當期紅棒
condition26=high < high[1];
//狀況4:高不過昨高
condition27=low>low[1];
//狀況5:低不破昨低
 
IF 
 condition23
 and condition24
 and condition25
 and condition26
 and condition27
THEN bkpatterm="多頭母子";

{ 
[檔名:] 多頭遭遇 
[說明:] 前期收黑K棒 當期開低走高紅棒嘗試反攻昨收 
}
 
condition28= (open[1] - close[1] ) >(high[1] -low[1]) * 0.75;
//狀況1:前期出黑K棒
condition29= close[1] < close[2];
//狀況2:前期收跌
condition30= ( close - open ) >(high -low) * 0.75;
//狀況3:當期收紅K棒
condition31= open < close[1] and close < close[1];
//狀況4:開低且收跌
condition32= low < low[1];//狀況5:破前期低點
{結果判斷} 
IF 
 condition28
 and condition29
 and condition30
 and condition31
 and condition32
THEN bkpatterm="多頭遭遇";

有了這個腳本,接下來的策略腳本就變的很簡單寫,例如我如果要找大跌三成後出現紅三兵的股票,就可以像下面這樣寫

if close*1.3<close[30]
and bkpatterm="紅三兵"
then ret=1;

如果想找跌三成後出現吊人線的股票,就把腳本中的紅三兵改成吊人線就可以了。

在這個腳本裡,我一共把八種多頭K線型態包含到BKPatterm這個函數中,分別是

三長下影線

三長下影線

紅三兵

紅三兵

內困三日翻紅

內困三日翻紅

吊人線

吊人線

多頭吞噬

多頭吞噬

多頭執帶

多頭執帶

多頭母子

多頭母子

多頭遭遇

多頭相逢

接下來就用上面的腳本分別回測這些型態在個股大跌三成後出現該型態後的二十天後股價是上漲還是下跌,以下是過去三年的回測數字

大跌後的K線型態勝率

從這些數字來看,多頭遭遇出現的次數多,勝率高且平均報酬率也高,是最具實戰意義的K線型態。

 

用CANSLIM選股法則來說明XS選股平台的四種選股條件產生方法

William J. ONeil(威廉歐尼爾)是美國知名的成長型投資大師,他寫的笑傲股市這本書到現在賣超過100萬本,他創的投資者日報,全美訂戶超過30萬戶,他在研究每年美國上漲最兇猛的股票後,發明了CANSLIM選股法則,今天就以CANSLIM法則來做例子,跟大家分享如何透過XS選股中心這個平台,運用系統內建的選股條件,加上系統內建的排行條件,加上自己寫的選股腳本,再加上自己寫的排行條件,完成一個自創的選股系統。

首先我先說明CANSLIM是那七個條件

C:當季EPS成長率至少18~20%(Current quarterly earning per share must be up at least 18~20%)。

A:過去五年EPS顯著成長,複合成長率超過15%(Annual earning per share should be meaningful growth over the last five years, the annual compounded growth rate of earnings in the superior firms should be from 15% to 50%, or even more per year)。

N:新產品、新管理階層或股價創新高 (Buy companies with new products, new management, or significant new changes in their industry conditions, and most important, buy stocks as they initially make new highs in price. Forget cheap stocks—they are usually cheap for a good reason)。

S:流通在外股數少,非大型股,非老公司(Shares outstanding should be small or of reasonable number, not large capitalization, older companies)。

L:漲幅領先市場其他股票,股價表現是績優生(Leader :the 500 best performing stocks from 1953 to 1990 averaged a relative price strength of 87)。

I:機構法人買超(Institutional sponsorship:Buy stocks with at least a few institutional sponsors with better than average recent performance records)。

M:市場走向(Market Direction)。

基於上述的規則,我的選股系統,需符合下面幾個規則:

C:最近兩季EPS平均年增率排在前面

A:過去五年EPS複合成長率超過15%

S:總市值小於300億台幣

L:過去兩年漲幅屬於領先群

I: 投信,外資持有一定張數

在XS上,要完成一個選股系統,得先在選股中心的UI上按新增的ICON,接著就會跳出以下的畫面

選股步驟

依序填好選股策略名稱及選股範圍之後,XS的選股中心一共提供了四種的選股條件產生方式

  1. 系統內建的條列式選股條件,使用者只要調整參數即可
  2. 系統內建的排行規則,使用者也只要調整參數即可
  3. 使用者可以自行透過編輯器撰寫的選股腳本,系統會把符合腳本條件的股票,再跟其他條件一起透過AND 或OR的關連來篩選股票
  4. 使用者可以自行透過編輯器撰寫選股函數,再透過自訂排行條件的功能,自建一個排行規則。

XS選股平台為何會提供這麼多種選股條件的產生方式呢? 這是因為,在制定選股條件時,有時必須某值超過某絕對值,例如EPS要超過兩元,但有時只需要在所有股票裡排在前面即可,例如外資一個月的買超累計排名前30名,所以必須分成絕對值的篩選及排行的篩選,而系統內建的條件不見得能滿足使用者的想法,所以才會再提供讓使用者可以透過編輯器自行撰寫選股及排行條件的功能。

以上圖CANSLIM的條件為例

總市值小於300億這個條件系統有內建,我們直接從”選股條件”這個頁籤裡,找出總市值這個欄位,就會找到這個選股條件,把參數填上 3 00,再如上圖的按加號即可以把這個條件加入選股系統中

接下來使用系統內建的排行規則,可以找到年漲跌幅排在前510名的股票。

接著要找出最近兩季EPS平均年增率排在前面的股票,要怎麼挑呢?

首先我們先寫一個函數來計算出最近兩季EPS平均年增率這個值,寫法如下

value1=GetField("每股稅後淨利(元)","Q");
value2=(value1/value1[4]-1)*100;//年增率
value3=(value2+value2[1])/2;
ret=value3;

然後從選股中心裡開啟一個新的選股條件,然後用自訂排行條件這個功能,分別設定這兩個函數計算結果的排行榜,例如都取前一百名,然後透過and這個條件,就可以挑出符合兩個條件排行前一百名的股票。

 

最後是在股價面上,如果要符合CANSLIM的標準,必須符合兩個條件

1.股價創一年新高。

2.大盤在多頭。

符合上述兩個條件的警示腳本如下:

if high=highest(high,200)
and GetSymbolField("tse.tw","收盤價")>
average(GetSymbolField("tse.tw","收盤價"),20)
then ret=1;

這是股價創兩百日新高且加權指數在月線之上。

綜合以上的選股及警示腳本,就可以完成私房版的CANSLIM交易策略,而這當中的選股方法,我們用到了系統內建的條列式選股條件,也用到了系統內建的排行榜,用了一個自己寫的選股腳本,也用了一個自訂的函數來作排行,這是XS選股平台所提供的四種不同的選股條件產生方式,再搭配上AND與OR的串接,來努力把user的選股思維化成一個電腦可以自動執行的對應程式。這應該是XS選股平台跟坊間其他產品最大的不同吧。

 

打造專屬的當沖操盤室

網友問我有沒有不錯的當沖策略,老實說,我試到現在,還真沒有一個策略可以一直賺錢。所以我想直接跟大家完整報告我的做法,如果各位不嫌棄,可以用這樣的作法,打造自己專屬的當沖操盤室。

首先 ,我把整個操作的架構畫成以下這張圖

當沖架構圖

我的當沖流程一共分成四個步驟

步驟一:  先透過選股腳本,每天回家後跑出一份可以作多的股票清單跟一份作空的股票清單,作空的清單比較簡單: 就一個選股法: 不大賺錢的大型股,因為這種股票大盤跌的時候比較不會有人去買,順勢而下的機率很大,我習慣作空時就空這一類的股票。我設的條件有兩個

1.最新股本大於50億元

2.連續五年EPS都小於0.5元

至於作多的選股條件就比較多樣化,包括籌碼面的,基本面的,基本上就是那些市場認同度較高,會有人照顧的中小型股。

步驟二: 決定多空比例。  除非進入主跌段,不然多頭訊號出現的股票我還是會挑出一些來先買後賣,比例基本上就是盤整或看不懂時,多空各五成,主跌段時不作多單,其餘時間點就看大盤位於那個階段來調整多空比例

步驟三: 把多空選股出來的清單去跑各種盤中的Sensor

這些senosr其實不少都是雲端策略提供的,他的目的是從上面那些股票中找出今天價量異常,波動性可能會比較大的。

步驟四: 再把步驟三跳出來的股票去用個股儀表板檢視,以當沖作多為例,目的在於看看這些股票近期是否買進訊號連發,因為如果是的話,代表作多贏的機率會大一些,這是有點長線保護短線的概念。

透過這四個步驟,我如果有空看盤就作一下,如果沒空看盤就算了。

接下來跟大家介紹這四個步驟在XQ上如何自設看盤的畫面

首先,先把要當沖作多的股票 清單及作空的股票清單都設成一組每天會依選股條件更新的自選股,以作多為例,我設了一個選股條件叫作當沖作多股,條件如下圖的右上方,今天挑出了共176檔

作多選股

然後按下”每日自動執行”的icon,系統就會自動每天把符合條件的股票,存成一組叫”當沖作多股”的自選股。

 

接下來,打開策略雷達,把盤中要跑的sensor,用這組”當沖作多股”去跑,例如下圖我用階梯式上漲這個策略雷達,在執行商品的地方就選組合,然後在 自動選股清單中找到當沖作多股後按完成即可把這個策略只跑符合上述選股條件的股票。

策略雷達

並且設定成每天固定時間會跑的排程(如下圖)

 

排程

按照上述的作法,把每個盤中要跑的雷達都設好排程

完整排程

完成以上的步驟,就可以讓系統在盤中把符合策略雷達的當沖標的呈現在警示中心這個mode裡。

但要把警示中心這個mode跟個股儀表板整合在一起,需要用到自訂頁面的功能

首先,在XQ的Menu的最左邊檔案裡選”開啟新頁” ,接著按建立空白頁面的icon,然後依您的想法切割畫面,警示中心是在即時監控這個mode,我設計的看盤畫面如下

當沖看盤室

左上方是根據上述的步驟,每天符合策略雷達時盤中會跑出來的標的,左下方是該股的分時圖,右上方是個股儀表板,右下方是大盤的分時圖

左邊出訊號,右邊check是不是值得追。

以上是我當沖交易的作法,給各位參考,至於怎麼選出當沖作多的股票,怎麼設策略雷達,怎麼設個股儀表板,每個人的想法不見得一樣,就看各位發揮巧思了。

 

 

 

在K線圖上標進出場點

在K線上標出進出場點,是不少網友希望可以學起來的技能,今天就以創N日新高及創N日新低作為進出場點,來跟大家作示範

首先,要在K線上標示進出場點,要用的是自訂指標的功能,所以先在XScript編輯器,新增一個自訂指標的腳本,然後開始撰寫如下的腳本

input:n(20,"期別");

//設定進場點標示的位置
switch(close)
begin
case >150: value5=low*0.9;
case <50 : value5=low*0.98;
default: value5=low*0.95;
end;

//設定出場點標示的位置
switch(close)
begin
case >150: value6=high*1.1;
case <50 : value6=high*1.02;
default: value6=high*1.05;
end;

if close=highest(close,n)
and barslast(close=highest(close,n))[1]>=20
//上一個創n日新高的進場點在20天以前
then plot1(value5);
if close=lowest(close,n)
and barslast(close=lowest(close,n))[1]>=20
then plot2(value6);

在這個腳本裡用到barslast這個函數,這是用來限定顯出進出場訊號時,過濾掉在短期內不斷重覆的訊號。

接下來就開始在K線圖上點滑鼠右鍵,選”設定”這個功能,然後選擇主圖重疊的頁籤,在視窗中設定如下圖

2017120503

先從左邊的腳本清單中把上面寫的這個腳本加到右欄中,然後點選繪圖樣式這個頁籤,把”型式”從下拉選單中選成”點”,然後再點選”樣式”,從圖示中挑出您要標示的進出場點符號,並且選擇符號的大小,最後按確認即可。

畫出來的圖如下

2017120504

學會了這個技巧,未來不管因為什麼原因加入觀察名單的股票,都可以用自選股與K線圖連動的方式來一檔一檔檢視其進出場的點位