能不能有個策略,開盤五分鐘就能決定要買什麼,進場後停損停利設好,就可以不必一直盯著盤看呢? 這樣的需求,自從我開始寫程式來決定交易策略之後,一直不斷的被提起,這樣的需求,有兩個特點,一是希望開盤五分鐘就決定今天的交易標的,二是希望這樣的 交易最好是當沖或隔日沖,不想放太長,因應這樣的需求,我設計了一個開盤五分鐘三創新高的交易策略,並且在這次精進版裡,做了更多的優化,以下是這個策略的介紹。
以前有位股市名嘴發明了開盤八法,我自己用excel去跑過往多年的開盤數據,發現開盤前五分鐘,如果1分鐘線大多能收紅棒時,當天收高的機會很大,因著這樣的觀察,我試著去尋找要符合什麼樣的條件,開盤走高後比較容易收高。
我試著設了一些條件並且加以回測,最後我發現,符合以下條件,當天收高的機率比較大
1.開高。
2.五日均量大於1000張
3.中小型股
4.一分鐘線,開盤後扣除第一根之外的五根裡,至少有三根高點比前一根的高點高,而且收盤比前一根的收盤高
5.前三天的漲幅不大
6.這五根一分鐘線的成交量達到五日均量的一定比例
7.大盤屬於多頭格局
follow上述的條件,對應的腳本如下:
1input: volumeRatio(0.1, "分鐘量暴量比例"); 2input: changeRatio(3, "最近3日最大上漲幅度"); 3input: averageVolume(1000, "5日均量"); 4 5variable:KBarOfDay(0), BreakHigh(false); 6 7KBarOfDay+=1; 8if date<>date[1] then begin 9 KBarOfDay=1; 10 BreakHigh = false; 11end; 12 13condition1 = KBarOfDay = 6; 14//一分鐘線每天的第六根 15condition2 = Countif(High > High[1] and Close > Close[1] ,5) >=3; 16//近五根裡至少三根最高價比前一根高且收盤比前一根高 17if KBarOfDay = 1 18and close > getfield("close", "d")[1] then BreakHigh = true; 19//開高 20value1 = average(GetField("Volume", "D")[1], 5); 21//五日均量 22condition3 = value1 > averageVolume; 23//五日均量大於某張數 24value2 = rateofchange(GetField("Close", "D")[1], 3); 25condition4 = AbsValue(value2) < changeRatio; 26//前三日漲帳幅小於一定標準 27condition5 = summation(volume, 5) > value1 * volumeRatio; 28//前五根一分鐘線成交量的合計大於五日均量某個比例 29condition6=GetSymbolField("TSE.TW","收盤價","D") 30>average(GetSymbolField("TSE.TW","收盤價","D"),10); 31//大盤屬於多頭結構 32ret = condition1 and condition2 and condition3 33and Condition4 and Condition5 and BreakHigh 34and condition6;
回測設定裡我用有量的中小型股來跑,停損停利都設為6%,這樣的比例,約莫屬於隔日沖的交易策略
最近三個月的回測報告如下,三個月裡的交易次數有67次,平均一天一次。
勝率五成多,平均每個月差不多是賺5%。
如果把回測時間拉長到兩年,勝率更高,以下是兩年的回測
以前我有機會跟幾個市場有名的短線大戶相聚,這些人很愛把股票拉漲停,我曾問他們,怎麼決定今天要拉那一檔,他們的答案是,”拉今天開盤最強的,有出量的,前兩天沒啥動的”,這樣的說法,跟今天的策略有點像,這也算是我們股民的集體智慧吧。
