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

By | 2016-09-29

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

以前有位股市名嘴發明了開盤八法,我自己用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

 

 

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