Author Archives: 發財橘子

雲端策略中心精進版之14~投信強買發動

市場老手們常說禿子跟著月亮走,外資說話的股票我們跟著外資走,投信說話的股票我們跟著投信走,我從過往三年的數據上發現,當過去三天合計投資買超張數超過總成交量一成時,後市確實短多獲利出場的機率較高。

一直以來,我們都看得投信每天的買賣超,但我們總是透過經驗法則,加上其他的判斷工具,來研判這些投信進場的股票,有那幾檔後市值得一跟。

我試著想找出投信買賣超使用規則,其中一個不錯的規則,它的概念如下:

1.投信連著三天買超的張數超過成交量的15%。

2.在買超後幾日內,股價創了波段高點

我把這兩個規則寫成了一個腳本

input: pastDays(3, "計算天數");
input: _BuyRatio(15, "買超佔比例(%)");
input: _Distance(60, "距離KPrice");

variable: SumForce(0), SumTotalVolume(0),Kprice(0), Kdate(0);

SumForce = Summation(GetField("投信買賣超")[1], pastDays);
sumTotalVolume = Summation(Volume[1], pastDays);

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

Condition1 = C crosses above Kprice and datediff(date, kdate) <= _Distance; 
Condition2 = Average(Volume[1], 5) >= 1000;
Condition3 = Volume > Average(Volume[1], 5) * 1.2;
Condition4 = C > C[1];
condition5=GetSymbolField("TSE.TW","收盤價","D")
>average(GetSymbolField("TSE.TW","收盤價","D"),10);

Ret = Condition1 And Condition2 
And Condition3 And Condition4
and condition5;

由於投信考慮到流動性及股性,會買的股票大多屬於總市值適中的股票,所以我用總市值適中的股票來回測,出場是設為進場後20天。

回測設定

091119

回測過去三年的數字後報告如下

091120

從上面的回測數字我們可以發現,如果投信有密集連買三天,之後只要股價一發動,往往會有波段的漲幅。

 

 

xqlite banner

 

雲端策略中心精進版之13~炒高後無量反轉下跌

早年我曾在證券商底下的投顧當研究員,那時候投顧跟總公司的營業廳在同一棟樓,收完盤,我常跟幾個老營業員聊天打屁,那時候正好踫到民國83的大多頭行情,大家每天都聊的很起勁,後來有一天,有位我覺得很厲害的營業員,突然跟大家宣佈他當天就開始勸客戶減碼了,第一次踫到這種大多頭行情的我,熊熊很難接受,我就問他,股票都還在漲啊,為何會突然看壞,他跟我說,漲到這裡,很多股票都漲了超過五成,成交量開始明顯下滑,顯示空手的已經追不下手,這種情況持續個幾天,早晚要多殺多。我年輕氣盛,對他的觀察半信半疑,隔天起,我特別留意那些漲多股票的成交量,  果然還是持續出現追高乏力的低量,隔了幾天,行情就真的出現了比較明顯的拉回。

今天要跟大家介紹的交易策略,跟我的這段經驗有關,我想寫出一個短空的策略,符合這個策略的股票,要具備以下的特徵

1.過去半年上漲五成以上

2.目前股價離波段最高點不到一成

3.最近的成交價比前幾天還高

4.但這幾天的成交量跟比較長期的均量相比,有一段距離

這種股票就是典型的大漲後股價在高檔,但成交量縮的很兇

根據上述的特徵,我寫的對應腳本如下:

input: Periods(120,"計算期數");
input: Ratio(50,"期間漲幅%");
 
if 
close < close[4]
and close*1.1>highest(close,periods)
and close >= close[Periods] *(1 + Ratio*0.01)
//過去半年漲幅超過五成
and average(volume[1],5)*1.4 < average(volume[1],20)
and GetSymbolField("tse.tw","收盤價","D")
<average(GetSymbolField("tse.tw","收盤價","D"),10)
then ret=1;

在回測設定上,我拿那些股本超過十億且過去三年每年EPS都小於1元的股票去跑,因為是短空,所以我設的出場點是十天之後。

091117

以下就是跑三年數據的回測報告

091118

因為這樣的條件有點苛,符合條件的只有46個交易機會,其中29個是獲利出場,勝率達到63%。

 

老市場人士常說的量先價行,看來還真的是有點道理

xqlite banner

 

雲端策略中心精進版之12~開盤五分鐘三創新高

能不能有個策略,開盤五分鐘就能決定要買什麼,進場後停損停利設好,就可以不必一直盯著盤看呢?  這樣的需求,自從我開始寫程式來決定交易策略之後,一直不斷的被提起,這樣的需求,有兩個特點,一是希望開盤五分鐘就決定今天的交易標的,二是希望這樣的 交易最好是當沖或隔日沖,不想放太長,因應這樣的需求,我設計了一個開盤五分鐘三創新高的交易策略,並且在這次精進版裡,做了更多的優化,以下是這個策略的介紹。

以前有位股市名嘴發明了開盤八法,我自己用excel去跑過往多年的開盤數據,發現開盤前五分鐘,如果1分鐘線大多能收紅棒時,當天收高的機會很大,因著這樣的觀察,我試著去尋找要符合什麼樣的條件,開盤走高後比較容易收高。

我試著設了一些條件並且加以回測,最後我發現,符合以下條件,當天收高的機率比較大

1.開高。

2.五日均量大於1000張

3.中小型股

4.一分鐘線,開盤後扣除第一根之外的五根裡,至少有三根高點比前一根的高點高,而且收盤比前一根的收盤高

5.前三天的漲幅不大

6.這五根一分鐘線的成交量達到五日均量的一定比例

7.大盤屬於多頭格局

 

follow上述的條件,對應的腳本如下:

input: volumeRatio(0.1, "分鐘量暴量比例");
input: changeRatio(3, "最近3日最大上漲幅度");
input: averageVolume(1000, "5日均量");

variable:KBarOfDay(0), BreakHigh(false); 

KBarOfDay+=1;
if date<>date[1] then begin
 KBarOfDay=1; 
 BreakHigh = false;
end; 

condition1 = KBarOfDay = 6;
//一分鐘線每天的第六根
condition2 = Countif(High > High[1] and Close > Close[1] ,5) >=3;
//近五根裡至少三根最高價比前一根高且收盤比前一根高
if KBarOfDay = 1 
and close > getfield("close", "d")[1] then BreakHigh = true;
//開高
value1 = average(GetField("Volume", "D")[1], 5);
//五日均量
condition3 = value1 > averageVolume;
//五日均量大於某張數 
value2 = rateofchange(GetField("Close", "D")[1], 3);
condition4 = AbsValue(value2) < changeRatio;
//前三日漲帳幅小於一定標準
condition5 = summation(volume, 5) > value1 * volumeRatio;
//前五根一分鐘線成交量的合計大於五日均量某個比例
condition6=GetSymbolField("TSE.TW","收盤價","D")
>average(GetSymbolField("TSE.TW","收盤價","D"),10);
//大盤屬於多頭結構
ret = condition1 and condition2 and condition3 
and Condition4 and Condition5 and BreakHigh
and condition6;

回測設定裡我用有量的中小型股來跑,停損停利都設為6%,這樣的比例,約莫屬於隔日沖的交易策略

091405

最近三個月的回測報告如下,三個月裡的交易次數有67次,平均一天一次。

1101

勝率五成多,平均每個月差不多是賺5%。

如果把回測時間拉長到兩年,勝率更高,以下是兩年的回測

091406

 

 

以前我有機會跟幾個市場有名的短線大戶相聚,這些人很愛把股票拉漲停,我曾問他們,怎麼決定今天要拉那一檔,他們的答案是,”拉今天開盤最強的,有出量的,前兩天沒啥動的”,這樣的說法,跟今天的策略有點像,這也算是我們股民的集體智慧吧。

 

xqlite banner

雲端策略中心精進版之11~開盤反轉買進訊號

先買後賣的當沖策略有很多種,今天要跟大家介紹的是那種波段下跌後短線可能止跌反彈的訊號,這種訊號是出現在波段下跌之後,當跌勢加速時,如果當天早盤開低後,股價從當日最低點反彈超過一定幅度且突破前一日高點,往往就是一個當沖作多的好機會。

我在研究那些先買後賣的當沖策略時,發現在多頭市場逆勢下跌的股票,要搶反彈的最佳時機,是賣壓竭盡之時,這種賣壓竭盡的股票,從線型及盤面上大致有以下幾個特徵

1.波段有一定的跌幅,且最近幾日的跌勢仍持續,顯示賣壓一路殺低在賣出

2.當日仍開低走低,代表賣壓延續中

3.但目前股價比最低點高出一定比例,代表賣壓已被買盤消化殆盡

4.股價且比前一日高點還高,代表昨天到今天所有賣股票的通通賣在低點,也代表多頭有追價的意願。

根據以上的描述,我寫了對應的腳本如下

 if getsymbolfield("tse.tw","收盤價")
>average(getsymbolfield("tse.tw","收盤價"),10)
then begin
variable: _BarIndex(0), _Open(0), _Low(0), _High(0), _Volume(0);

if Date <> Date[1] then
 begin
 _BarIndex = 1;
 _Open = Open;
 _Low = Low;
 _High = High;
 _Volume = Volume;
 end
else
 begin
 _Low = minlist(_Low, Low);
 _High = maxlist(_High, High);
 _Volume = _Volume + Volume;
 _BarIndex = _BarIndex + 1;
 end;
 
Condition1 = GetField("Open", "D") < GetField("Close", "D")[1];
//開低
Condition2 = Close > _Low * 1.02 and close>GetField("收盤價","D")[1];
//收盤比當天低點收高2%且突破前一日高點
Condition3 = Close*1.2 < GetField("Close", "D")[20]
//近二十日跌幅超過兩成
and close*1.07<getfield("close","D")[10];
//近十日跌幅超過7%
Condition4 = Time < 93000;
//時間在九點半之前
Condition5 = Average(GetField("Volume", "D")[1], 5) >= 1000;
//五日均量大於1000張
Condition6 = _Volume > GetField("Volume", "D")[1] * 0.2;
//今日迄今的量大於過去五日均量的兩成
Ret = Condition1 And Condition2 And Condition3 And Condition4 And Condition5 And Condition6;
end;

考慮到流動性及避免主力設局騙人,我把這個腳本,用市值適中的股票去跑五分鐘線,

我設定的出場是48根五分鐘K棒之後,由於我腳本是設定觸發時間必須是在九點半之前,所以這個策略差不多是當沖的概念。

091115

根據上述的腳本及設定,回測報告如下:

091116

在過去三年裡交易的次數並不多,只有77次,其中47次賺錢,30次 虧錢,但總報酬率有84%,最迷人的是,最大連續虧損及最大區間虧損差不多只有兩成,代表這樣的交易策略,屬於那種贏的時候可以贏多一點,輸的時候不至於太慘。

如果不把這個策略設定成當沖策略,而是把它設定成一個短線的交易策略,出場點設為停損停利各為5%,那麼回測的報告如下:

092601

 

在76次交易機會中,高達54次獲利出場,勝率超過七成,不過冒的風險也比較大,最大連續虧損與最大區間虧損都超過當沖策略。

但是從勝率來看,波段下跌後,空頭賣壓竭盡,確實是一個搶反彈的好時間。

 

xqlite banner

 

雲端策略中心精進版之10~天價上影線穿低賣出訊號

我有個朋友,看到股票漲多了,他就想去空,前陣子被大立光軋的天天在Line上面哭爹喊娘,我建議他等到個股敗相已露時再空,今天要跟大家介紹的交易策略,就是尋找敗相已露的股票,短空操作。

所謂敗相已露的股票,就是那種多頭一路全面獲勝,就在大家氣勢如虹的時候,突然被狠狠的打了一巴掌,然後開始有些人從多方轉成空方,就好像一場舞會快散場了,有些人知道多頭音樂快停了,開始往門口移動。

這樣的股票,具有幾個特徵

1.創長期高價時,最高價比開盤價要高出3%以上

2.但收盤價低於開盤價。等於當天衝進去的通通套牢

3.當最新一日的收盤價跌破創新高當天的最低價,代表開始有人奪門而出,這時候

就是所謂的敗象已露。

我寫了一個腳本來挑出符合上述特徵的股票

if GetSymbolField("TSE.TW","收盤價")
<average(GetSymbolField("TSE.TW","收盤價"),10)
then begin
setbackbar(255);

variable:Kprice(0);
if H > O*1.03 and C <O and H = SimpleHighest(H,255) then Kprice = L;
//找出創一年期天價上影線當天的最低價

condition1 = c crosses below Kprice;
//今天收盤價跌破天價當日的最低點
condition2 = average(volume[1], 5) >= 500;
//前五日的均量有超過500張
ret = condition1 and condition2;
end;

在回測上,因為只是短空策略,所以我設定為進場後五個交易日後出場。我用來回測的是不大賺錢的中大型股,它的選股條件有兩個

1.股本超過10億

2.最近三年每年eps都小於0.7元

091113

我拿它來回測過去三年,回測報告如下

091114

其實要符合這些條件的股票並不多,過去三年才出現了91次,其中51次賺錢,40次虧錢,迷人的是,最大區間虧損不到30%,總報酬率是140%,這代表的是,敗相已露的股票,就算反彈,也無法輕易克服上面被套的賣壓。

這是一個勝率雖然不到六成,但多賺小輸的策略。

 

xqlite banner

 

 

雲端策略中心精進版之9~多頭發動午餐奇襲

以前還有在看盤的時候,師兄常常早上一開盤進到操盤室來看一看,然後就離開操盤室,但到了收盤前,他就又跑進來一直看到收盤,我問他原因,他說早盤是看所有昨天多空消息今天在盤面上怎麼反應,收盤前進來看,是因為有很多主力大戶早盤洗完盤之後,收盤前,能洗的都洗出來了,如果有心作多,這時候就差不多該要開始拉了。今天要跟大家介紹的交易策略,就是尋找,在12點之後,主力趁著大家在吃午飯時,偷偷往上拉的股票。

為了挑到這樣的股票,我寫了一個腳本如下:

  input: upRatio(1.5); // 高點幅度
variable: xHigh(0) ;

if barfreq <> "Min" then RaiseRuntimeError("請設定分鐘頻率");

if GetSymbolField("tse.tw","收盤價","d")
 > average(GetSymbolField("tse.tw","收盤價","d"),10)
then begin
//大盤處於多頭格局
if trueall(GetField("收盤價","D")<GetField("收盤價","D")[1]*1.02,5)
then begin
//個股過去五個交易日沒有一天漲幅超過2%

 if Date <> Date[1] then xHigh = 0;
 
 if Time < 120000 then
 xHigh = maxlist(xHigh, High)
 else if xHigh > 0 then
 if Close > xHigh and 
 Close >= Close[1] * (1 + upRatio/100)
//超過12點之後,最新價格超越12點之前的最高價
//而且比前一收盤價漲超過1.5%
 then ret=1; 
end;
end;

 

這個腳本是應用在五分鐘線,停損停利我都設7%,由於主力比較能洗價拉抬的是有量的小股票,所以回測設定裡我用的商品是有量的中小型股。

092105

拿上述的設定去跑過去三年的資料,回測報告如下:

092106

 

在過去三年裡一共有168次出現這種午餐時間急拉,且之前五天漲幅都不到2%的情況,其中92次賺錢,76次虧錢,勝率是54.76%。

我看這策略不work的時候都是在大盤表現很差的時候,因為這時候主力可能拉上去才發現大盤不好沒人跟,只好反手殺,所以在空頭市場這策略的績效很不好,但如果是在多頭市場,這個策略的勝率會超過六成,所以在使用這個策略時,千萬要記得如果大盤仍猶疑不定時,千萬要有風險意識。

 

隨著股票多到1500檔以上,電視牆盯盤操作法已經成為往事,用語法寫策略,讓電腦幫我們盯盤,挑出符合我們要求的股票,會是未來的趨勢,特別是逐筆撮合如果真的實施,看盤會像是在看一個不斷閃爍壞掉的電視,這是一個新操盤時代的來臨,看盤室變成在雲端,盯盤的不是肉眼而是電腦。

 

xqlite banner

雲端策略中心精進版之8~籌碼沈澱突破買進訊號

孫子兵法中,形容一支優秀的軍隊,必須”始如處女,敵人開戶;後如脫兔,敵不及拒。”  股票市場上,我發現,那些平時安安靜靜到快被遺忘的股票,一旦開始站上攻擊發起線,後市往往會出現較大幅度的上揚,我把這種從”其徐如林”要轉成”侵掠如火”的股票,透過語法,寫成了一個交易策略,這個策略,就是今天要介紹的籌碼沈澱後突破。

這個腳本的安排順序如下

1.先用一檔股票的成交量減去當沖量,再除以成交量,算出實質成交比例

2.再算出實質成交比例的變動率

3.分別計算短中長天期的實質成交比例變動率的標準差

4.如果到前一日為止的各天期的標準差,都位於區間最低點,代表當沖客很安靜,沒啥變動。

5.如果今天股價突破前20天的最高價,代表攻勢即將發動了。

根據上述的思維,我寫的腳本如下:

  condition1=false;

if GetSymbolField("tse.tw","收盤價","D")

>average(GetSymbolField("tse.tw","收盤價","D"),10)

then begin
//大盤處於多頭格局時

if v[1] > 0 

then value1 = (v[1] - GetField("現股當沖張數")[1])/v[1];
//實質成交比例

if value1[1] >0
then value2 = 100*value1/value1[1]-100;
//實質成交比例日變動百分比
if currentbar < 1 then return;
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 condition1=true;

if condition1 and close crosses over
highest(high[1],20)
then ret=1;
end;





我拿有量的中小型股去回測過去三年的績效,這邊我停利設7%,沒有設停損,20天後出場

091109

以下是回測報告

092501

 

這個策略應有在有量的中小型股上面,勝率超過七成,在過去三年,207檔有量的中小型股,符合這個交易策略的次數共有273次,其中194次賺錢,79次賠錢 。

我很喜歡這種不動則已,一動就一鳴驚人的股票,因為這種股票平常沒人在作股價安定的措施,也沒有在畫線,作量,短線客也不愛,這種股票如果從平淡轉向絢爛,往往代表背後有新的故事在發生,如果我不設7%停利,直接放滿20天,回測的報告如下:

092502

雖然勝率不如設停利,但總報酬率達到846%,顯示如果不停利擺久一點,有不少次是有踫到大行情。

 

我自己非常喜歡孫子兵法軍爭篇裡「其疾如風、其徐如林、侵掠如火、不動如山、難知如陰、動如雷震」”這段文字,股票市場原就是多空爭戰的戰場,戰場上適用的,往往股市裡也可以拿來參考印證。

xqlite banner

 

雲端策略中心精進版之7~分點進出異常賣出訊號

昨天介紹了籌碼不斷集中的過程中,如果股價出現重挫,主力在接下來的幾天,會試著把股價拉回到其原來的持股成本之上,那反過來呢? 如果籌碼不斷在發散的股票,股價受大盤影響而急拉,會不會讓原本就在賣股票的主力大戶公司派賣的更用力呢? 這就是我們今天要探討的主題。

根昨天一樣,我們用來判斷籌碼發散還集中的根據,是買進與賣出分公司家數的變化趨勢。

當最近十天買進分公司家數的趨勢是往上,代表愈來愈多分公司有客戶在買進這檔股票,同樣的,當最近十天賣出分公司家數的趨勢往下,代表就是小數的分點在供應籌碼,如果這兩件事同時發生,代表的就是籌碼從少數人手中往多數不特定散戶的手裡發散。

如果在這種情況發生時剛好出現股價上揚,後市會怎麼走呢?

跟昨天一樣,我們可以寫一個交易策略腳本如下:

input:period(10);
value1=GetField("分公司賣出家數")[1];
value2=GetField("分公司買進家數")[1]; 
if GetSymbolField("tse.tw","收盤價","D")
<average(GetSymbolField("tse.tw","收盤價","D"),10)
then begin
if linearregslope(value1,period)<0
//賣出的家數愈來愈少
and linearregslope(value2,period)>0
//買進的家數愈來愈多

and value2>300
and close>close[period]*1.05
//但這段期間股價在漲
and
close>close[1]*1.025
//今天又漲超過2.5%
then ret=1;
end;

這是一種邊拉邊出的概念,當股價出現這樣的情況時,我們把這個策略以下面的回測設定來跑三年的資料

091108

 

由於主力會染指的,基本上是屬於有流動性且股本較小的股票,所以我們用有量的中小型股來跑,

回測報告

091107

 

在設定進場後五天出場的情況下,如果作空,在大盤空頭市場的情況下,勝率也超過六成。

 

從昨天跟今天的實證數字來看,籌碼的流向,確實是我們在研判短線後市時,一個很重要的參考,特別是壓低進貨及拉高出貨時。

 

xqlite banner

 

 

 

雲端策略中心精進版之6~分點進出異常買進訊號

在研究籌碼的過程中,我發現,如果一檔股票出現籌碼被持續收集的情況,但這時候股價出現重挫,籌碼收集者往往會覺得機不可失,股價也因此短期出現回升的情況,今天要跟大家介紹的,就是如何讓電腦在這種股票出現時,可以在第一時間就通知我們。

要挑出這種股票,兩大篩選條件

1.籌碼被吸納。

2.短線重挫

我試著寫了一個腳本,希望能符合下列四點

1.用線性迴歸的函數,去尋找過去十天分公司賣出家數愈來愈多,但分公司買進家數愈來愈少的股票。

2.在十天內股價下跌超過5%且今天又比昨天下跌超過3%

3.賣出的分公司超過300家

4.大盤屬於多頭格局

以下就是我根據上述四點所寫的腳本

input:period(10);
value1=GetField("分公司賣出家數")[1];
value2=GetField("分公司買進家數")[1]; 
if GetSymbolField("tse.tw","收盤價","D")
>average(GetSymbolField("tse.tw","收盤價","D"),10)
then begin
if linearregslope(value1,period)>0
//賣出的家數愈來愈多
and linearregslope(value2,period)<0
//買進的家數愈來愈少

and value1>300

and close*1.05<close[period]
//但這段期間股價在跌
and
close*1.03<close[1]
//今天又跌超過3%
then ret=1;
end;

接下來我把這個腳本拿去跑三年的回測,我設定股票是那些市值大於100億元,但少於800億元的股票,因為這些股票比較不會受外資及主力騙線的左右,另外我出場設定為進場後十天,因為基本上這還是算是短線的交易策略。

091111

以下是回測報告

091112

符合這麼嚴苛條件的交易次數並不多,過去三年一共才48次,平均一年只有16次,但勝率超過六成。

 

顯示這樣的思考方向是可行的,當主力在吸納籌碼的過程中,股價出現明顯回挫時,代表主力過往買進的成本比市價高,主力處於被套牢的狀況,在接下來的兩週,主力持續買進並且把股價往成本區靠近的機率是相對大的。

各位不妨再調整一下計算的期間或跌幅,試著找出最合適您自己的參數

 

xqlite banner

 

 

 

雲端策略中心精進版之5~股價突破開盤委買大單成本區

“開盤委買張數”是一個很值得留意的數據,它代表經過一個晚上所有多空因素的沈澱之後,隔一日到底有多少委託張數,願意在開盤時,站在買方,我們常說反常必有妖,如果這個數字跟開盤委賣張數相比,拉開比平常還大的差距,就很值得我們留意。

為了找到符合上述情況的股票,我們寫了一個腳本如下

if GetSymbolField("tse.tw","收盤價","D")
>average(GetSymbolField("tse.tw","收盤價","D"),10)
//大盤處於多頭格局
then begin
value1=GetField("開盤委買","D");
value2=GetField("開盤委賣","D");
value3=value1-value2;
//開盤委買張數減去開盤委賣張數
if trueall(value3[1]<150,5)
//過去五天差距都小於150張
and value3>=300
//今天差距超過300張
and close<close[3]*1.07
//股價比三天前漲幅不到7%
then ret=1;
end;

我用市值適中的股票(總市值大於100億但小於800億)去跑回測,持有兩天後出場,回測報告如下:

091106

值得留意的是勝率達到58%,代表開盤委買減去委賣的差額,一旦比平常大,在多頭市場時,往往是短線轉強的一個跡證。

 

 

 

xqlite banner