如何使用XS選股腳本撰寫KD已經黃金交叉後,選出K值連續三根K線在80以上的台股商品?

 

首先,選股條件是

1. 先達到KD已經黃金交差

2. K值連續三根K線均在80以上

 

因此,選股腳本的範例程式碼如下,提供參考: 

input:
    KDLength(9),
    RSVt(3), 
    Kt(3);

SetInputName(1, "KD天期");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");

variable: rsv(0), k(0), _d(0);

SetTotalBar(maxlist(KDLength,6) * 3);       //  設定資料讀取範圍
Stochastic(KDLength, RSVt, Kt, rsv, k, _d); //  計算K值與D值
if  K cross over _d then value1 = 1;
if  K cross below _d then value1 = 0;


//  KD已經黃金交叉後,選出K值連續三根K線在80以上的台股商品
if  value1 = 1 and trueall(K > 80, 3) then ret = 1;


//  選股清單呈現 K、K[1]、K[2] 的數值與取得資料的日期
outputfield(1, getfielddate("close"), 0, "K的日期");
outputfield(2, K, 2, "K");
outputfield(3, getfielddate("close")[1], 0, "K[1]的日期");
outputfield(4, K[1], 2, "K[1]");
outputfield(5, getfielddate("close")[2], 0, "K[2]的日期");
outputfield(6, K[2], 2, "K[2]");

 

上述的部分程式碼,資料讀取範圍設置 與 計算KD指標的部分,以及判斷【KD已經黃金交叉後】的條件,

如何寫出kd已經黃金交叉與收盤價站上布林通道上軌的選股腳本 的部分程式碼、撰寫方法與說明相同,

因此 Jack 在這部分就不予贅述,

 

 

程式碼說明:

程式碼第19行,... trueall(K > 80, 3) ...

trueall函數語法 為當期間內所有條件皆成立時,回傳True;其他狀況則回傳False,

trueall(K > 80, 3) 為判斷K棒是否連續三期均大於80,如果是的話回傳ture。

 

程式碼第 23 ~ 28 行,

使用 outputfieldgetfielddate 語法,將計算出來的K值與取得K值的時間點,

記錄在選股清單中,方便檢閱查看。

 

 

請大家注意資料更新轉檔時間,而今日(07/28 早上11:00) 執行結果,如下圖:

 

 

以上,提供給大家參考。