Author Archives: 發財橘子

好久都沒有破底且創新高

多空力道的拉扯,總得分個輸贏,破底是空方獲勝,創新高則是多方領先,如果雙方處於長期的拉距,但底部一直沒有再破,那就代表空方一直沒有辦法再更下一城,如果這時候多方終於創出了波段的新高,代表市場波動上可能出現新的方向。

根據這樣的概念,可以寫出以下的腳本

input:period(90);
input:percent(20);
setinputname(1,"未破底區間");
setinputname(2,"盤整區間漲幅上限");
condition1=false;
condition2=false;
value1=lowest(low,period);
if value1=low[period-1]
then condition1=true;
if highest(high[1],period)<=value1*(1+percent/100)
then condition2=true;
if condition1 and condition2 and close crosses over highest(close[1],period)
then ret=1;

根據這個腳本可以挑出像以下這樣的標的

2018110203

在多頭市場,這個策略的回測表現是不錯的

2018110202

從回測數字來看,符合條件的交易次數一年有接近四十次,使用者可以選擇那些在型態上整理的時間夠長且底部一直愈墊愈高的標的。

突破重大壓力區

在選擇投資標的時,我們往往會踫到那些離上檔密集套牢區的波段高點如果沒有多遠時,實在不知道這一次到底能不能順利突破,突破之後,也不知道是不是就此一帆風順,一路走高。所以是不是等到真的站上比上一波高點更高的位置,才正式進場。

上述的想法,可以寫成腳本如下

condition1=false;

input:HitTimes(4,"觸頂次數");
input:RangeRatio(0.5,"頭部區範圍寬度%");
input:Length(30,"計算期數");
value2=highestbar(high[1],length);
variable: theHigh(0); 
theHigh = Highest(High[1],Length);
//找到過去其間的最高點
variable: HighLowerBound(0); 
 HighLowerBound = theHigh *(100-RangeRatio)/100; 
// 設為瓶頸區間上界
variable: TouchRangeTimes(0); 
//期間中進入瓶頸區間的低點次數,每跟K棒要歸0
 
//回算在此區間中 進去瓶頸區的次數 
TouchRangeTimes = CountIF(High[1] > HighLowerBound, Length);
 
if TouchRangeTimes >= HitTimes 
and
close crosses over thehigh
and thehigh>close[length+15]*1.05
and value2>=15
//高點在前十五根以前
then condition1=true;

value1=barslast(condition1);

if condition1
and value1[1]>5
then ret=1;

這個腳本可以挑出以下的標的

C14

多頭市場用這個策略,持有40 天的回測報告如下

C13

從數據上看,符合這個腳本的交易次數不算多,在多頭市場還能穩定獲利,但在空頭市場,則常常無法站穩而回落,必須善設停損並且搭配其他策略一起來研判會比較靠譜。

大跌後突破短中長期平均成本

當大跌之後,均線糾結在一起,代表整理的時間夠長,在整理時間夠長之後,如果股價能夠一舉突破先前的整理區,往往代表新的多頭趨勢己成形。

根據上述的推論,對應的腳本如下

input: s1(5,"短期均線期數");
input: s2(10,"中期均線期數");
input: s3(20,"長期均線期數");
input: Percent(2,"均線糾結區間%");
variable: shortaverage(0);
variable: midaverage(0);
variable: Longaverage(0);
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
//均線糾結在一起
and close*1.1<close[90]
//最近90個交易日跌了超過1成
and close crosses over shortaverage
then ret=1;

根據這樣的腳本,可以挑到如下的ETF

C12

在多頭市場中,這個腳本的回測報告如下

C11

我們可以發現,雖然有接近六成的勝率,但除非在突破糾結區時有更強勢的走勢,否則可能繼續整理甚至反向下跌,均線糾結區反而成為密集套牢區,所以運用這個策略必須善設停損。

箱型突破

箱型整理是很常見的一種型態,代表多空雙方勢均力敵,當箱型被往上突破時,代表雙方的決戰已分出勝負。我們把箱型整理的突破寫成腳本,然後把它應用在基金投資上,發現這是一個勝率相當高的策略

對應的腳本如下

input:period(40,"計算區間");
value1=highest(close[1],period);
value2=lowest(close[1],period);
if value1<value2*1.05
and close>close[2]*1.006
and close crosses over value1
and volume>average(volume[1],20)*1.3
then ret=1;

以下是這個腳本挑出來的ETF

c10

持有20天的回測報告如下

c9

在多頭市場的勝率超過七成,是一個值得參考的策略

日線週線的均線都黃金交叉

很多朋友都用移動平均線來作為基金投資進出場的參考依據,像是很多人都用年線或半年線來進出場,今天跟大家介絡的是當日K棒的均線及以週K棒的均線都出現黃金交叉時,把它作為一個進場的訊號。

這樣的概念,對應的腳本可以如下面這樣的寫法

if average(close,5)crosses over average(close,10)
and 
 xf_CrossOver("W",Average(GetField("收盤價","W")[1],5)[1],
 Average(GetField("收盤價","W")[1] ,10))
 then ret=1;

拿這個腳本去回測,出場設20天之後,回測報告如下

C8

我們可以發現,這樣的策略,在多頭市場,一年大約有近20次的交易機會,其中有六成以上可以獲利出場。

下檔有撐(三下影線完成打底)

下影線代表多空爭戰的最後,多方大量收復了原來被空方攻佔的土地,如果連續三天都出現夠長的下影線,那就代表空方連攻三次都被多方給收復失土,人家說一鼓作氣,再而衰,三而竭,通常出現這種情況之後,空頭潰敗的機率很高。

根據上述的理論,對應的腳本如下

input: Percent(0.5,"下影線佔股價絕對百分比");

variable:Kprice(0),OCDate(0);

condition1 = (minlist(open,close)-Low) > absvalue(open-close)*2; 
condition2 = minlist(open, close) > low* (100 + Percent)/100;

if trueall( condition1 and condition2, 3) then begin
 OCDate = Date;
 Kprice = average(H,3);
end;

if DateDiff(Date,OCDate) <3 and Close crosses over Kprice then ret = 1;

這個腳本可以挑出像下面的這檔基金

C7

過去一段時間的回測報告如下

C6

這樣的情況在基金市場上出現的機率並不高,但出現後,是屬於三戰可以兩勝的情況。

籌碼發散的股票是長空的最佳標的嗎?

昨天寫了我挑空單的邏輯,我頗敬重的一位江湖大佬看到了,他提了一個很有趣的觀點~ 長空的股票只要看籌碼就夠了,其他都不要看,會被誤導。他說只要籌碼是從大股東,大戶及法人手中一直往市場上倒,而承接的都是散戶,這種股票就算在多頭市場也很難漲,但如果你還要去考慮基本面技術面什麼的,反而會因為噪音太多而迷失方向。為了印證他的觀察,以下是我的實驗過程。

根據他的說法,我列出作空的一些條件

1.買進的分公司家數遠多於賣出的分公司家數

2.法人賣超

3.主力賣超

4.千張大戶人數及張數在減少

5.融資餘額在增加

6.借券賣出餘額張數在增加

7.關鍵券商賣超

8.散戶持股人數及張數在增加

9.內部人持股比例在減少

10.散戶買張在增加

11.地緣券商賣超

12.綜合前十大券商賣超

然後我寫了一個選股腳本,來設定每天符合這些條件達到一定的比例作為標準,然後再挑出最近幾天都有符合此標準的股票。

我寫的腳本如下:

value1=GetField("法人買賣超張數","D");
value2=GetField("買家數","D");
value3=GetField("賣家數","D");
value4=GetField("主力買賣超張數","D");
value5=GetField("融資餘額張數","D");
value6=GetField("借券餘額張數","D");
value7=GetField("關鍵券商買賣超張數","D");
value8=GetField("散戶買張","D");
value9=GetField("地緣券商買賣超張數","D");
value10=GetField("綜合前十大券商買賣超張數","D");
var:count(0);
count=0;
if value1<0 then count=count+1;
if value2>value3+30 then count=count+1;
if value4<0 then count=count+1;
if GetField("散戶持股張數","W",param := 50) >GetField("散戶持股張數","W",param := 50)[1] then count=count+1;
if GetField("散戶持股人數","W",param := 50) >GetField("散戶持股人數","W",param := 50)[1] then count=count+1;
if GetField("大戶持股張數","W",param := 400)<GetField("大戶持股張數","W",param := 400)[1] then count=count+1;
if GetField("大戶持股人數","W",param := 400) <GetField("大戶持股人數","W",param := 400)[1] then count=count+1;
if value5>value5[1] then count=count+1;
if value6>value6[1] then count=count+1;
if value7<0 then count=count+1;
if GetField("內部人持股比例","M")< GetField("內部人持股比例","M")[1] then count=count+1;
if value8>value8[1] then count=count+1;
if value9<0 then count=count+1;
if value10<0 then count=count+1;
input:n(10,"每日符合籌碼發散的條件數");
input:days(5,"計算天數");
if countif(count>=n,days)>=days*0.6 then ret=1;

以下是最近六個月及最近三個月的回測報告

2018102902 2018102901

對照下來,空頭市場如果單純使用籌碼發散這樣的精神去設定作空策略,確實是有效的策略。不過在多頭市場,一樣是會輸錢的。

高殖利率股且法人買超

高殖利率股算是價值型投資,法人連續買超,則是屬於籌碼選股,當價值型投資跟籌碼選股兩個條件同時發生呢?我用選股回測發現,當這兩個條件同時發生時,如果波段持有這些個股,在多頭市場,有不錯的勝率及投資報酬率。

我訂的選股策略如下

2018100503

用這個策略去回測,四十天後出場,回測報告如下

2018100501

挑中的股價是像這一類的

2018100502

因為要高殖利率,所以挑中時股價通常是回檔之後,於是,我們就會想說,那要不要把殖利率的標準訂高一點,代表拉回的幅度更大之後才進場,我在把殖利率往上提高到7%之後,回測報告如下

2018100504

各項數字卻實有比較好,交易次數也有226個,所以我乾脆把殖利率拉到10%以上才進場,回測報告如下

2018100505

這勝率高過七成,都快到四戰三勝了,但總交易次數只剩下46次,我怕是因為樣本數太少的關係,所以把回測期拉長到三年,勝率還是有三戰兩勝。

至於殖利率要用多少%

就看各位是希望多分散一些風險,多挑一些標的

還是想要精兵主義  看準了再下了。

 

 

董監回補持股是否代表後市可期?

江湖上有一個傳說,說如果大股東開始回頭買股票,代表後市可期,就算再跌,也跌不到那裡去。今天我們就來驗證這個說法到底靠不靠譜,以及更重要的,如果靠譜的話,要怎麼找出大股東開始回補持股的公司?

首先,我用XS的選股中心,訂出下面三個條件

2018100207

這個選股策略是找出過去三個月,每個月董監持股都在增加,且增加的幅度愈來愈大,這樣是濾掉那些只有單一個月因為特別因素而增加持股的現象,而加碼愈來愈大也代表大股東的心態愈來愈積極。

舉個例子來說,永豊金在今年的五月份就符合上述的條件(上面選股條件的增加幅度不是絕對值,是百分比),今年八月又再次符合選股條件

2018100208

對應其股價走勢如下

2018100206

我拿上述的選股策略去回測過去兩年,設60天出場,勝率其實只有五成左右,但績效確實可以打敗大盤

20181001

 

如果回測五年,看看這個選股策略在空頭市場的表現

2018100202

然後我們會發現,勝率還是在五成上下,空頭市場的表現跟大盤差不多。

後來我想到,如果大股東持股不高的,回補持股可能只是為了維繫經營權,不見得代表看好未來,所以我又加了董監持股佔股本比例大於20% 這個條件,然後持有天期改成九十天,過去五年的回測結果如下

2018100204

勝率是有突破五成,重點是總報酬率,平均報酬率及最大連續虧損及最大區間虧損的數字都變的很好,

如果在多頭市場,像過去兩年,數字表現的就更穩定了。

2018100205

透過這個實際的回測,我們可以發現,董監事有在持續增加持股的公司,整體來說,確實值得進一步研究背後的因素,有些潛力股,就在其中矣。

主流股蓄勢待發

我們一般都認定法人如果買超的股票算是主流股。 如果主流股離均線不遠且創近期新高,且上漲趨勢已成,那是不是後市看漲的機率會大一點? 基於這樣的想法,我寫了一個主流股蓄勢待發的選股策略。回測這個策略,發現這是屬於那種可以穩定維持一定獲利且淨值下跌風險還算OK的策略。

我寫的選股腳本如下

input:days(10);
input: FastLength(12, "DIF短期期數"), SlowLength(26, "DIF長期期數"), MACDLength(9, "MACD期數");
variable: difValue(0), macdValue(0), oscValue(0),Kprice(0);

settotalbar(100);
MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);
if absvalue((average(close,20)-close)/close)*100<2
and absvalue((average(close,60)-close)/close)*100<2
//收盤價離月線及季線不遠
and close=highest(close,days)
//股價創十日新高
and macdvalue>macdvalue[1]
//macd上漲
and macdvalue>0
and difvalue>0
then ret=1;

再搭配近2 日法人持股增加全部由大到小排行前100名的排行條件

然後我跑所有的普通股,出場訂在20天後,以下是回測兩年及回測三年的回測報告

20181002 20181001

最大連續虧損及最大區間虧損率分別是6%及10%左右,兩年的報酬是49%,三年是65%,都能打敗大盤

所以看來挑這種剛起漲的主流股確實有一定的道理。