打造個股儀表板

By | 2017-05-04

 

前幾天介紹了大盤儀表板,然後聰明的朋友就舉一反三的問我,那有沒有個股儀表板? 我試寫了幾天,總算寫出一個自己覺得還不錯的腳本,今天就來野人獻曝一下,大家對於尋找個股的買點,都有各自的獨門絕活,可以使用類似的寫法,建構自己的進場儀表板。

大盤儀表板的概念,是在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這個函數,目的是濾掉那些近期重覆出現的買進訊號,函數的說明如以下的連結

barslast

 

寫完腳本後必須設定好繪圖的格式,在技術分析設定中的主圖疊圖頁籤中選個股儀表板之後,調整繪圖的型式,樣式,顏色及座標軸,如下圖,即可完成個股儀表板的制作了。

20170504

每個人對於進場點的選擇,可能有很多種方法,透過這個寫法,可以清楚的看到不同方法的進場點,也可以更進一步的,把出場點也標示出來,這麼一來,操作上就可以更進退有據了。