老師父們一向很重視一檔股票今天有多少成交量是在盤上成交,他們認為,盤上成交代表的是買盤勇於用比前一天收盤價更高的價格來買進,這是一種積極性買盤的表徵,我試著以這樣的邏輯,建構出一個勝率還不錯的交易策略。
要算盤上成交的比例,XS有內建一個欄位叫上漲量,所以我就寫了一個簡單的自訂指標腳本
value1=GetField("上漲量","D"); if volume<>0 then value2=value1/volume; plot1(average(value2,5));
但寫完之後覺得這樣似乎完全沒有考慮到當天分時交易的多空拼搏,所以我又另外用一分鐘線最後是收在昨日收盤價之上與否,來決定是否把那一分鐘的成交量納入累積的盤上成交量,根據這個原則,寫了另一個自訂指標腳本如下
array: x[240](0); var:i(0); for i=1 to 240 begin if GetField("收盤價","1")[i-1]>close[1] then x[i]=GetField("成交量","1")[i-1] else x[i]=0; end; value1=array_sum(x,1,240); if volume<>0 then value2=value1/volume; value3=average(value2,5); plot1(value3);
這個腳本我是宣告一個陣列來代表每天的240根1分鐘線我要被加計進量的成交量,如果當根1分鐘線的收盤價大於前一天日線的收盤價,那麼當根1分鐘線的成交量就被算進來,不然陣列的那一格就是0,然後我再用array_sum這個把陣列裡每個值全部都加總起來的函數來計算這240格的總和,這就是當天1分鐘線收在盤上的成交量總和。
然後再把這兩個指標跟加權指數擺在一起看,會如下圖
從這張圖我們可以明顯的看到,當這個值由低檔往上走的時候,代表積極性的買盤,佔整個買盤的比重在成長,這往往是止跌回昇的前兆,而用1分鐘線來計算的盤上累計成交量,由於考慮到每一分鐘多空拼搏的角力,其數字對多空趨勢又比單純用上漲量來得敏感許多,所以我就用1分鐘線的累積盤上成交量作為策略的核心,寫了下面這個腳本
array: x[240](0); var:i(0); for i=1 to 240 begin if GetField("收盤價","1")[i-1]>close[1] then x[i]=GetField("成交量","1")[i-1] else x[i]=0; end; value1=array_sum(x,1,240); if volume<>0 then value2=value1/volume; value3=average(value2,5); if value3 cross over 0.2 and GetSymbolField("tse.tw","收盤價","D") >average(GetSymbolField("tse.tw","收盤價","D"),10) and volume>average(volume,20)*1.2 then ret=1;
要特別說明的是,我依然只跑有量中小型股,停利用10%,停損用6%
這部份的回測蠻花時間,所以我試跑了最近三個月,回測報表如下
各位不妨也試試看用盤上成交比例這樣的概念來開展自己的交易策略。