前幾天介紹了大盤儀表板,然後聰明的朋友就舉一反三的問我,那有沒有個股儀表板? 我試寫了幾天,總算寫出一個自己覺得還不錯的腳本,今天就來野人獻曝一下,大家對於尋找個股的買點,都有各自的獨門絕活,可以使用類似的寫法,建構自己的進場儀表板。
大盤儀表板的概念,是在K線圖上,標示出各種不同大盤指標的進場點,使用者每天打開這個儀表板,就知道有那些條件出現了買進訊號,如果近幾日不同的條件都出現買進的訊號,那就代表後市上漲的機率上昇。
個股儀表板也是類似的概念,我是使用彼此沒有相關性的資料,來建構不同的買進訊號,並且濾掉近期重覆出現的訊號,我使用的資料分別有以下十個指標或欄位
1.KD
2.內外盤量
3.淨力指標(計算開高低收之間的差距)
4.分公司買進賣出家數
5.三大法人買賣超
6.MACD
7.資金流向
8.總成交次數
9.強弱指標
10.主力買張
我在K線圖上,標出利用這十個數據所建構的進場點,就如下圖般
每天把觀察名單拿來一檔一檔的用這個儀表板看一遍,就可以找出自己想要買的股票,進場點到了沒?
要畫出像上面的這張圖,對應腳本如下:
condition1=false; condition2=false; condition3=false; condition4=false; condition5=false; condition6=false; condition7=false; condition8=false; condition9=false; condition10=false; switch(close) begin case >150: value5=low*0.9; case <50 : value5=low*0.98; default: value5=low*0.95; end; //==========日KD黃金交叉================ input: Length_D(9, "日KD期間"); input: Length_M(5, "周KD期間"); variable:rsv_d(0),kk_d(0),dd_d(0),c5(0); stochastic(Length_D, 3, 3, rsv_d, kk_d, dd_d); c5=barslast(kk_d crosses over dd_d); if c5=0 and c5[1]>20 then condition1=true; if condition1 then plot1(value5,"月KD高檔鈍化且日KD黃金交叉"); //============內外盤量比差==================== var:c3(0); value6=GetField("內盤量");//單位:元 value7=GetField("外盤量");//單位:元 if volume<>0 then begin value8=value7/volume*100;//外盤量比 value9=value6/volume*100;//內盤量比 end; value10=average(value8,5); value11=average(value9,5); value7=value10-value11+5; c3=barslast(value7 crosses over 0); if c3=0 and c3[1]>20 then condition2=true; if condition2 then plot2(value5,"內外盤量比差"); //===========淨力指標============== var:c4(0); input:period2(10,"長期參數"); value12=summation(high-close,period2);//上檔賣壓 value13=summation(close-open,period2); //多空實績 value14=summation(close-low,period2);//下檔支撐 value15=summation(open-close[1],period2);//隔夜力道 if close<>0 then value16=(value13+value14+value15-value12)/close*100; c4=barslast( value16 crosses over -4); if c4=0 and c4[1]>20 then condition3=true; if condition3 then plot3(value5,"淨力指標"); //===========多頭起漲前的籌碼收集================ var:c2(0); value1=GetField("分公司買進家數"); value2=GetField("分公司賣出家數"); value3=value2-value1; value4=countif(value3>20,10); c2=barslast(value4>6 ); if c2=0 and c2[1]>20 then condition4=true; if condition4=true then plot4(value5,"籌碼收集"); //===========法人同步買超==================== variable: v1(0),v2(0),v3(0),c1(0); v1=Getfield("外資買賣超"); v2=Getfield("投信買賣超"); v3=Getfield("自營商買賣超"); c1= barslast(maxlist2(v1,v2,v3)>100); if c1=0 and c1[1]>20 then condition5=true; if condition5=true then plot5(value5,"法人同步買超"); //========DIF-MACD翻正============= input: FastLength(12), SlowLength(26), MACDLength(9); variable: difValue(0), macdValue(0), oscValue(0); MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue); var:c6(0); c6=barslast(oscValue Crosses Above 0); if c6=0 and c6[1]>20 then condition6=true; if condition6 then plot6(value5,"DIF-MACD翻正"); //========資金流向====================== var: m1(0),ma1(0),c7(0); m1=GetField("資金流向"); ma1=average(m1,20)*1.5; c7=barslast(m1 cross over ma1 and close>close[1]); if c7=0 and c7[1]>20 then condition7=true; if condition7 then plot7(value5,"資金流向"); //=========總成交次數================ var: t1(0),mat1(0),c8(0); t1=GetField("總成交次數","D"); mat1=average(t1,20)*1.5; c8=barslast(t1 cross over mat1 and close>close[1]); if c8=0 and c8[1]>20 then condition8=true; if condition8 then plot8(value5,"成交次數"); //=========強弱指標================== var:s1(0),c9(0); s1=GetField("強弱指標","D"); c9=barslast(trueall(s1>0,3)); if c9=0 and c9[1]>20 then condition9=true; if condition9 then plot9(value5,"強弱指標"); //============主力買張================ var:b1(0),mab1(0),c10(0); b1=GetField("主力買張"); mab1=average(b1,10); c10=barslast(b1 cross over mab1); if c10=0 and c10[1]>10 then condition10=true; if condition10 then plot10(value5,"主力買張");
裡頭有用了barslast這個函數,目的是濾掉那些近期重覆出現的買進訊號,函數的說明如以下的連結
寫完腳本後必須設定好繪圖的格式,在技術分析設定中的主圖疊圖頁籤中選個股儀表板之後,調整繪圖的型式,樣式,顏色及座標軸,如下圖,即可完成個股儀表板的制作了。
每個人對於進場點的選擇,可能有很多種方法,透過這個寫法,可以清楚的看到不同方法的進場點,也可以更進一步的,把出場點也標示出來,這麼一來,操作上就可以更進退有據了。