在XScript編輯器,內建的選股腳本,已有【布林通道超買】與【KD黃金交叉】的內建選股腳本,
但是【布林通道超買】的內建策略是,當時最高價站到上軌之上,
而【KD黃金交叉】的內建策略是,當時的K值向上穿越D值,
並不符合,KD已經黃金交叉與收盤價站上布林通道上軌的選股腳本。
因此,將內建策略微調後,並將此兩條件結合為一個選股腳本,腳本程式碼如下
input:
BollinLength(20),
KDLength(9),
UpperBand(2),
RSVt(3),
Kt(3);
SetInputName(1, "布林通道天期");
SetInputName(2, "KD天期");
SetInputName(3, "布林通道標準差");
SetInputName(4, "RSVt權數");
SetInputName(5, "Kt權數");
variable: rsv(0), k(0), _d(0);
SetTotalBar(maxlist(KDLength,6) * 3);
Stochastic(KDLength, RSVt, Kt, rsv, k, _d);
if K cross over _d then value1 = 1;
if K cross below _d then value1 = 0;
if value1 = 1 and close >= bollingerband(Close, BollinLength, UpperBand) then ret = 1;
程式碼大概說明如下:
程式碼第16行是,資料讀取範圍設置(SetTotalBar),若在此腳本沒有設置資料讀取範圍,則會出現讀取不到資料的錯誤,導致沒有選出任何商品。
程式碼第17行是,KD函數語法(Stochastic),計算K值與D值。
程式碼第18行是,若K值向上穿越(Cross Over)D值時,則 Value1 = 1; ,紀錄KD已經黃金交叉。
程式碼第19行是,若K值向下跌破(Cross below)D值時,則 Value1 = 0; ,Value1歸零,紀錄KD已經死亡交叉。
程式碼第20行是,若 Value1 = 1(KD已經黃金交叉) ,並且 收盤價站上布林通道(bollingerband)上軌 ,則選出商品清單。
以上說明與腳本程式碼,提供給大家參考,若有問題歡迎隨時指教,謝謝。