每次當我們在探討選股策略時,總是會踫到一個問題: “選出來的股票到底要什麼時候進場?” 基本面操作者喜歡計算本益比及PB,尋找相對低價的進場點,技術分析操作者喜歡尋找指標黃金交叉的進場點,今天我想跟大家分享的是,從分時走勢圖上的變化,所出現的進場點。
一般來說,我們習慣於透過一些選股條件挑出一份觀察名單,然後透過自己相信的價格衡量標準,來決定是否進場,之後,當股市一開盤,最簡單的方法,就是開盤後買進,這 樣的操作手法,對於長線或波段或許可以,但對於短線操作者,最好還是考慮一下這檔股票當天盤中的表現,再來決定是否出手,或是出手的點要設在那裡?
也就是我們在設定程式交易的流程中,除了選股,交易日期之外,還要安排交易的時機。
舉個例子,我們計算籌碼,找到了主力一直在買超的股票,那麼我們是隔天開盤就跳進去嗎? 實際上,有些主力洗盤的時間會長達一兩個月,看到主力持續買超就跳進去,可能會等上好久攻勢都還沒有發動。
但如果我們把主力買超的股票選出 來之後,設為觀察名單,就可以每天用特定交易時機的策略去跑,等到出現買進訊號的時候再進場,這樣資金的應用效率就更高了。
例如以下的腳本
主力買超股
input: Length(5); setinputname(1,"計算天數"); input: limit1(20); setinputname(2,"買超佔成交量比例"); variable: r1(0), volTotal(0),ratio(0); SetBarBack(20); SetTotalBar(25); r1 = summation(GetField("主力買賣超張數"), Length); volTotal = summation(Volume, Length); if voltotal<>0 then begin ratio = r1 / voltotal * 100; if ratio >= limit1 and average(volume,20) > 500 then ret=1; setoutputname1("主力買賣超比重(%)"); outputfield1(ratio); end;
我們寫了上述這個選股策略來挑出主力買超的股票
接下來我們可以用下面這個交易時機策略,每天來跑上述選股策略選出來的股票
開盤後一路走強
if barfreq <> "Min" or Barinterval <>1 then RaiseRuntimeError("請設定頻率為1分鐘"); input:n1(10,"開盤連續幾分鐘"); variable:BarNumberOfToday(0); if Date <> Date[1] then BarNumberOfToday=1 else BarNumberOfToday+=1;{記錄今天的Bar數} if Date =currentdate then begin variable: idx(0),tTime(0); tTime=0; for idx = 0 to n1-1 begin if Close[idx] > Close[idx+1] then tTime+=1; {推升時記1} end; value1=q_DailyHigh; if tTime >=n1*0.75 and q_PriceChangeRatio < 2 {漲幅仍在2%內} and Timediff(Time,Time[BarNumberOfToday-1],"M") =n1{分鐘} {離開盤第1個價15分鐘內} and close=value1//目前是今日最高價 then ret=1; end;
上述這個腳本代表開盤後一路往上走,這代表主力吃完貨,要開始拉,或是有其他的力量要進來參一腳,這時候應該就是進場的時機了
我自己在安排程式交易的時機時,使用的策略有很多種,除了這個開盤一路走高之外,常用的還有
1.突破盤中震盪區間
2.火箭後拉回
3.一分鐘線創N期以來新高
4.破底後又穿頭
5.開高後不拉回
6.開低後迅速站上平盤
以上這些交易時機的策略,可以用OR的方式串在一起,只要盤中這幾個現象出現其中之一,就是符合進場時機
進場時機的策略,是透過盤面的變化,來偵測多空力量是否達到一個失衡的突破口,大部份這種策略,都是用1分鐘線來跑,我建議大家寫幾個進場策略,用來提高資金的使用效率。