我的「價格波動率突破系統」係依據「包寧傑帶狀操作法」一書中所述「交易系統I-價格波動率突破」發展出來,本文列出該書原文與本人實作的對照。(以下黑色字為「包寧傑帶狀操作法」一書中的原文,棕色字則為我的注解。)
文後有加入我的XS腳本以及選股範例。
擠壓辨識
價格本身沒有循環,也不能被預測,但價格波動率則存在循環。價格波動率存在著「物極必反」的現象,偏低價格波動醞釀著價格波動轉強的契機。
價格波動率突破系統,首先要辨識「擠壓」(The Squeeze)現象,擠壓最簡單的定義就是當帶寬指標下降到六個月以來的最低水準,就視為產生擠壓現象。
注:你可以用目視的方法見到帶寬變得極窄,但很顯然你不可能每天掃描一遍所有股票的技術線圖,所以借助於電腦程式可能是唯一解決的方法。如不會寫程式,則可參考網路上的資料,但我發現即便是收費網站,大概也找不到這種資料。
電腦首先每天計算帶寬指標【=(帶狀上限-帶狀下限)/帶狀中心價位】,然後判斷是否等於6個月以來的最小數值(改為120個交易日),如果是則視為發生擠壓。
在20天內曾經發生過擠壓且目前帶寬<=最小帶寬*3者視為仍在壓縮狀態,仍在壓縮狀態者列表出來以人工方式繼續追蹤是否符合買進標準(比如在4天內上漲了5%以上)。
買進方法
我們的價格波動率突破系統採用帶寬指標設定前提條件,然後等待突破發生當時建立部位。...
關於方法I,成功操作的最大困難在於假動作——這也是前一章的討論主題之一。這個名詞源自於曲棍球,但也出現在其他類似場合。攻擊者帶著球衝向對方球門;過程中,他轉頭假裝要傳球,一旦防守球員認定他要傳球而展現對應動作之後,他又回過頭來射門。盤勢脫離「擠壓」狀況之後,經常也會展現類似的假動作;首先假裝朝某個方向進行突破,然後又擺頭朝另一個方向展開正式攻擊。在典型的狀況下,首先出現擠壓,然後價格朝帶狀的某一端逼近,按著就回頭朝另一方向攻擊。一般來說,這類走勢都會侷限在帶狀範圍內,直到真正走勢出現之後,才會產生突破訊號。可是,如果你採用的參數使得帶狀寬度變得相對較窄,在真正的走勢產生之前,可能會出現幾次穿越帶狀的反覆訊號。
某些股票或股價指數比較容易產生假動作或假突破。對於所操作的對象,觀察過去的擠壓走勢,評估假突破的發生頻率。一旦曾經欺騙,往後就……。
如果你願意接受非機械性操作方式的話,最簡單的辦法就是等待擠壓狀況發生——前提條件——然後觀察價格突破橫向盤整區間。在走勢轉強的第一天進場建立半數部位,正式突破之後加碼,並且利用拋物線系統或觸及對側帶狀邊緣的停損策略,避免萬一判斷錯誤所造成的傷害太大。如果交易對象很少出現假動作,或者帶狀參數的設定不至於造成假動作的問題,就可以很單純的運用 「方法I」。等待擠壓狀況發生,然後只要看到突破就進場。...
注:包寧傑對於機械性操作法的建議是,「走勢轉強的第一天進場建立半數部位」,這有點抽象,「正式突破之後加碼」,這個正式似乎也是蠻抽象的。我的方法在下面「假動作」一節說明。
輔助指標
在這些情況下,成交量技術指標確實可以提供協助。在假動作或假突破發生之前,觀察盤中強度指標(Intraday Intensity)或承接/出貨指標(Accurnulation Distribution),預先判斷可能的突破方向。資金流量指數(MoneyFlow Index)是另一項值得參考的技術指標,可以提高成功機率,鼓舞交易信心。這些都是成交量指標,屬於第IV篇的討論主題。...
...我們經常見到擠壓現象的運作。一旦行情進入整理,價格交易區間明顯縮小,價格移動平均線的走勢明顯趨於平緩,包寧傑帶狀寬度也緊縮,緊靠著價格均線波動 (圖15.3)。舞台已經搭建妥當。讓我們看看其他技術指標的狀況。行情上漲的日子裡,成交量是否配合放大?承接/出貨指標是否向上反轉?價格下跌的日子裡,交易區間是否更縮小?開盤價與收盤價之間的關係如何?每種現象都有助於我作判斷隨後的行情發展方向。務必特別注意消息面,消息面經常是行情的催化劑。
結合運用各種技術指標
在使用指標的時候,首先要注意的是「多重共線性(multi-collinearity)」陷阱與「狗腿子」陷阱。
所謂「多重共線性」陷阱,意指:採用多個確認指標,絕對可以提高成功機率。但如果這些指標屬於共線性 (collinear)指標,那就有問題了;舉例來說,在特定情況下,動能指標基本上都會提供類似的訊號;所以,如果你看見五種動能指標都出現類似訊號,這並不代表五種相同訊號就比較可靠。
要避開這種可怕的陷阱,每個指標類別(如表一)內只挑選一種技術指標;例如,一種動能指標,一種趨勢指標,一種成交量指標,以及其他等等。成交量指標與人氣指標特別值得考慮,能夠提供額外的資訊,而且不容易造成多重共線性的問題。
|
類別 |
指標 |
本人目前採用 |
|
動能 |
變動率,隨機(KD) |
KD |
|
趨勢 |
線性回歸, MACD, 增加:趨向指標(DMI) |
MACD,DMI |
|
人氣 |
統計調查, 賣權-買權比率 |
X |
|
成交量(開放式) |
盤中強勢(II), 承接/出貨(AD), 增加:修正OBV(VA/D) |
VA/D |
|
成交量(封閉式) |
資金流量指數(MFI), 成交量加權MACD, 增加:成交量比率指標(VR) |
MFI |
|
超買/超賣 |
商品通道指數(CCI), 相對強弱指標(RSI), 增加:威廉指標(W%R) |
RSI,W%R |
注:顯然藉由各種指標來避免假突破才是應該努力方向。包寧傑建議採用成交量技術指標,譬如盤中強度指標(Intraday Intensity)或承接/出貨指標(Accurnulation Distribution) 或資金流量指數(MoneyFlow Index),
然則我使用我的系統上現有的指標都沒有關鍵性效果,我使用MFI>=70,測試結果無甚差異,比較關鍵的因子反而是成交量放大與漲幅。
出場
關於部位的停損或出場,可以採用兩種方法。第一是韋達的拋物線系統,觀念非常簡單而有效。就買進部位來說,起始停損設定在突破排列的稍下方,然後每天向上調整。至於空頭部位,停損設定方法的觀念也相同,但位置剛好相反。拋物線是一套相對保守的系統,如果使用者願意承擔更大風險,嘗試掌握更大的獲利潛能,價格觸及帶狀對邊,可以做為理想的出場訊號後者允許價格出現較大的修正走勢,進行較長期的部位交界,換言之,「價格觸及帶狀下限」可以做為多頭部位的出場訊號:「價格觸及帶狀上限」可以做為空頭部位的出場訊號。
注:我不認同包寧傑所提的出場方法,因為SAR只適用在趨勢明顯的標的,而觸及帶狀對邊的方法不符合風險/報酬原則,也就是風險太大。
時間因子
包寧傑對於出場的建議是「就買進部位來說,起始停損設定在突破排列的稍下方,然後每天向上調整。」我是把它設計為「大量突破日收盤下方7%停損」但是,要加上「時間因子」。因為既然是短線,則其勢不可久,你必須規定它在幾天內有所表現(漲幅超過14%),否則就應該立刻出場,這叫做HOLS_DAYS。我的賣出規則如下:
賣出
1. 收盤跌破選股日收盤價 * 0.93停損。
2. 期間最小跌幅: 7 日(HOLD_DAYS)內若獲利未達 14%(最小獲利)則強迫出場。
3. 浮動停利點:若獲利超過 14%,改用收盤價跌破 ma10 * 0.96出場(不上移)。
假動作
包寧傑指出,關於本系統,「成功操作的最大困難在於假動作...」,他提出兩個方法,1.觀察過去的走勢,是否經常出現假動作。2.分批買進,一開始先只買進一半。由此可見包寧傑也察覺到這種方法的失敗率很高。
觀察過去的走勢,那實在是有點不太科學,因為那不可能寫成回測程式。有沒有辦法解決包寧傑無法解決的問題?我使用以下三個方法來解決:1.試單策略,2. 5日均量,3.企圖心。
試單策略
分3批,每+3%投入一批,但為避免需要整天盯盤,改成「收盤前+3%」。
5日均量
除了要求在突破當天,成交量必須大於10日均量的5倍,另外加上5日均量必須大於5天前的5日均量5倍。(成交量與10日均量的比較是易於快速抓取資料,主要還是判斷5日均量的放大)
註:此條件無法以單純SQL完成判斷,故寫在OpenWinReport.java的isByPass()中。
企圖心
另外一個辨別是否為假動作之方法為,判斷主力的企圖心。如果主力用力拉抬股價突破盤整區,那麼他一定會先急於脫離成本區,所以判斷他不可能立刻洗盤。所以應該至少在4天之內拉抬至少7%以上的漲幅。
XS腳本
|
settotalbar(3); var: i(0),SqueezeDays(0); var: bwlowest(0), ix(0),lowestDate(0),bwCurr(0); //if not (leftStr(Symbol,3) = "233") then return; bwCurr = BollingerBandWidth(Close,20,2,2); bwlowest = bwCurr; lowestDate = GetField("Date"); for i = 1 to 119 begin value1 = BollingerBandWidth(Close[i],20,2,2); if value1 <= bwlowest then begin bwlowest = value1; lowestDate = GetField("Date")[i]; ix = i; end; end; SqueezeDays=0; for i = ix-1 downto 1 begin SqueezeDays += 1; value1 = BollingerBandWidth(Close[i],20,2,2); if value1 / bwlowest >= 2 then return; end; if SqueezeDays <= 10 then return; Ret = 1; SetOutputName1("BW最低日"); OutputField1(lowestDate); SetOutputName2("最低BW"); OutputField2(bwlowest); SetOutputName3("目前BW"); OutputField3(bwCurr); SetOutputName4("壓縮天數"); OutputField4(SqueezeDays); |
XS選股範例
|
策略 |
價格波動率突破 |
||||||||
|
序號 |
代碼 |
商品 |
成交 |
漲幅% |
總量 |
BW最低日 |
最低BW |
目前BW |
壓縮天數 |
|
1 |
力山 |
47.6 |
-3.64 |
1544 |
20240221 |
8.68 |
9.78 |
35 |
|
|
2 |
精剛 |
35.6 |
0.14 |
12086 |
20240321 |
6.17 |
8.75 |
15 |
|
|
3 |
和勤 |
32 |
-1.54 |
179 |
20240314 |
2.03 |
2.36 |
20 |
|
|
4 |
華新 |
38.05 |
-3.91 |
48501 |
20240226 |
5.24 |
9.49 |
32 |
|
|
5 |
杏昌 |
139 |
-0.36 |
37 |
20240325 |
1.02 |
1.23 |
13 |
|
|
6 |
正隆 |
28.35 |
-2.24 |
2276 |
20240304 |
2.11 |
2.9 |
28 |
|
|
7 |
華紙 |
22.1 |
-3.91 |
5067 |
20240226 |
6.26 |
6.97 |
32 |
|
|
8 |
大成鋼 |
36.7 |
0 |
9852 |
20240319 |
3 |
4.23 |
17 |
|
|
9 |
和泰車 |
613 |
-3.46 |
624 |
20240315 |
3.45 |
5.36 |
19 |
|
|
10 |
華邦電 |
25.5 |
-4.32 |
59381 |
20240312 |
5.17 |
7.53 |
22 |
|
|
11 |
威盛 |
137 |
-1.44 |
16501 |
20240112 |
9.12 |
18.11 |
56 |
|
|
12 |
義隆 |
159.5 |
-1.54 |
4008 |
20240327 |
5.45 |
10.73 |
11 |
|
|
13 |
華航 |
19.25 |
-2.78 |
26360 |
20240221 |
3.9 |
5.48 |
35 |
|
|
14 |
長榮航 |
31 |
-2.21 |
90115 |
20240307 |
4.9 |
5.96 |
25 |
|
|
15 |
正德 |
19.45 |
-3.47 |
3139 |
20240325 |
7.24 |
11.09 |
13 |
|
|
16 |
安泰銀 |
13.85 |
-2.12 |
105 |
20240313 |
1.68 |
2.11 |
21 |
|
|
17 |
統領 |
27 |
0 |
62 |
20240313 |
2.1 |
2.47 |
21 |
|
|
18 |
農林 |
20.25 |
-2.88 |
3186 |
20240326 |
4.03 |
6.34 |
12 |
|
|
19 |
穩懋 |
143 |
-2.72 |
3101 |
20240305 |
7.55 |
10.25 |
27 |
|
|
20 |
富榮綱 |
10.45 |
0.48 |
0 |
20240123 |
3.72 |
6.08 |
49 |
|
|
21 |
先益 |
31.2 |
-2.19 |
34 |
20240327 |
5.15 |
8.3 |
11 |
|
|
22 |
廣越 |
109.5 |
-0.45 |
142 |
20240220 |
1.75 |
2.08 |
36 |
|
|
23 |
緯軟 |
135 |
-1.46 |
1191 |
20240102 |
7.73 |
12.34 |
64 |
|
|
24 |
中租-KY |
170 |
-1.73 |
6138 |
20240318 |
3.87 |
5.38 |
18 |
|
|
25 |
合庫金 |
25.7 |
-1.53 |
20302 |
20240311 |
1.78 |
2.63 |
23 |
|
|
26 |
昱泉 |
22 |
-3.3 |
46 |
20240319 |
3.69 |
4.38 |
17 |
|
|
27 |
信昌電 |
43.4 |
-4.19 |
756 |
20240305 |
4.71 |
9.45 |
27 |
|
|
28 |
詩肯 |
41.4 |
-0.72 |
87 |
20240315 |
0.87 |
1.73 |
19 |
|
|
29 |
台灣銘板 |
128.5 |
-7.22 |
1087 |
20240219 |
17.94 |
37.14 |
37 |
|
|
30 |
鑫創電子 |
78.6 |
-1.13 |
10 |
20240327 |
3.3 |
4.71 |
11 |
|
|
31 |
綠界科技 |
396 |
-2.1 |
48 |
20240325 |
4.13 |
6.5 |
13 |
|
|
32 |
綠茵 |
78 |
-1.27 |
40 |
20240314 |
2.54 |
4.25 |
20 |
|
|
33 |
倍力 |
108.5 |
-4.41 |
130 |
20240307 |
7.36 |
11.76 |
25 |
|
|
34 |
致新 |
270 |
-4.42 |
1471 |
20240318 |
6.67 |
10.74 |
18 |
|
|
35 |
大億金茂 |
15.55 |
-0.96 |
77 |
20240307 |
2.44 |
3.75 |
25 |
|
|
36 |
波力-KY |
192 |
-9.86 |
1514 |
20240219 |
11.43 |
20.52 |
37 |
|
|
37 |
大台北 |
32.4 |
0.31 |
135 |
20240115 |
1.1 |
1.24 |
55 |
|
|
38 |
新海 |
54.4 |
0 |
0 |
20240325 |
1.03 |
1.89 |
13 |
