把股性拿來作為過濾條件

By | 2016-05-12

我們在設定個股的買進策略時,有時候會踫到假的訊號,例如震盪型指標踫到盤整時,就容易出現假訊號,就算嚴格執行停損,還是會因為過度交易,浪費交易成本而必影響獲利,今天來跟大家考論一個概念,如果我在寫一個股性轉變的濾網,當策略出現買進訊號時,透過這個濾網來觀察股性是否真的有明顯改變,只有真的有明顯改變時才觸發訊號,這麼做應該可以避免過度交易的情況

我曾經跟大家分享過我有十二個衡量股性的標準

衡量股性的指標

我試著用計分卡的方式寫了一個衡量股性的腳本如下:

input:day(20);
input:ratio(10);
var:count(0),x(0);
value1=GetField("總成交次數","D");
value2=average(value1,day);
value3=GetField("強弱指標");
value5=GetField("外盤均量");
value6=average(value5,day);
value7=GetField("主動買力");
value8=average(value7,day);
value9=GetField("開盤委買");
value10=average(value9,day);
value11=GetField("資金流向");
value13=countif(value3>1,day);
value14=average(value13,day);//比大盤強天數
value16=GetField("法人買張");

count=0;
if value1>value2*(1+ratio/100)
then count=count+1;
if value13>value14*(1+ratio/100)//比大盤強的天數
then count=count+1;
if value5>value6*(1+ratio/100)
then count=count+1;
if value7>value8*(1+ratio/100)
then count=count+1;
if value9>value10*(1+ratio/100)
then count=count+1;
if truerange> average(truerange,20)//真實波動區間
then count=count+1;
if truerange<>0
then begin
if close<=open
then
value15=(close-low)/truerange*100
else
value15=(open-low)/truerange*100;//計算承接的力道
end;
if value15>average(value15,day)*(1+ratio/100)
then count=count+1;
if volume<>0
then value17=value16/volume*100;//法人買張佔成交量比例

if value17>average(value17,10)*(1+ratio/100)
then count=count+1;

if value11>average(value11,10)*(1+ratio/100)
then count=count+1;
x=0;
value18=summationif(close>=close[1]*1.02,x,5);
if value18>=2 
then count=count+1;//N日來漲幅較大的天數



value19=GetField("融資買進張數");
value20=GetField("融券買進張數");
value21=(value19+value20);
value22=average(value21,day);
if value21<value22*0.9 //散戶作多指標
then count=count+1;

plot1(average(count,3),"股性綜合分數指標");
plot2(average(count,day),"移動平均");

從以下幾檔這個月逆勢上漲的股票,我們可以發現,股票有大行情時,股性會有明顯的變化

051201

 

051202

 

各位不妨以這個例子為基礎,發展各自不同的股性過濾腳本,這樣就可以減少過度交易及盤整時出現假訊號的機率