昨天有網友希望我寫外盤量相關的交易策略,我這個標準差魔人第一時間想到的就是用bbnad,試寫了一下,效果還可以,敬呈批閱。
我的思考邏輯是
1.拿外盤量這個欄位來計算(因為用getfield語法,這欄位只support日線以上,所以用日線)
2.計算外盤量佔總量的比重
3.因為一天的暴量有可能是一日行情,所以外盤量比重取三日移動平均
4.拿外盤量比重三日平均算bband
5.如果bbandwidth從底部翻揚,代表從平凡要轉向絢爛
6.如果外般量比重三日平均突破bband上限,代表這個轉向是往多頭轉
根據上述的邏輯,我寫了以下的指標,
1var:bv(0),bva(0); 2if volume<>0 then 3bv=GetField("外盤量")/volume*100; 4bva=average(bv,3); 5 6input:length(20); 7variable:up1(0),down1(0),mid1(0),bbandwidth(0); 8up1 = bollingerband(bva, Length, 1); 9down1 = bollingerband(bva, Length, -1 ); 10mid1 = (up1 + down1) / 2; 11bbandwidth = 100 * (up1 - down1) / mid1; 12plot1(up1); 13plot2(down1); 14plot3(bva); 15plot4(bbandwidth);
我用郭董最近講的很豪邁的2317鴻海來作例子
各位可以發現,在郭董說話的前一陣子,外盤買進佔成交量的比重就出現我上面說到的多頭訊號
1.bbandwidth 向上翻揚
2.外盤量三日均線突破bband上限
我就把這個指標改寫成交易策略如下:
1var:bv(0),bva(0); 2if volume<>0 then 3bv=GetField("外盤量")/volume*100; 4bva=average(bv,3); 5 6input:length(20); 7variable:up1(0),down1(0),mid1(0),bbandwidth(0); 8up1 = bollingerband(bva, Length, 1); 9down1 = bollingerband(bva, Length, -1 ); 10mid1 = (up1 + down1) / 2; 11bbandwidth = 100 * (up1 - down1) / mid1; 12if bbandwidth cross over 20 13and bva cross over up1 14then ret=1;
拿這策略拿有量的中小型股去回測半年,一年,兩年及三年,回測報告分別如下:
當然這個策略還可以有進一步優化的空間,但初步的結果,應該算是一個可以拿來好好運用的方法。
