如何將加權指數(日資料)的KD值加入策略雷達

  •   538 
  • 最後發表   WilliamL  2023 四月 06
WilliamL 發文於   2019/08/26

大家好:

分享如何用警示腳本撰寫,將加權指數的KD值加入判斷。

 

大致撰寫邏輯:

1.使用Stochastic函數內容,得知所需資料

2.使用GetSymbolField語法,指定抓取加權指數"TSE.TW"之所需資料

3.新增自訂函數:取名為TSE_Stochastic,將Stochastic的資料內容,修改為加權指數資料。

4.將新自訂函數TSE_Stochastic進行後續應用。

TSE_Stochastic範例語法如下:

SetBarMode(2);

// Stochastic function (for KD/RSV相關指標)
//
// Input: length, rsvt, kt
// Return: rsv_value, k_value, d_value
//
input:
    length(numericsimple), rsvt(numericsimple), kt(numericsimple),
    rsv(numericref), k(numericref), d(numericref);

variable:
    maxHigh(0), minLow(0);

maxHigh = Highest(GetSymbolField("TSE.TW","high","D"), length);
minLow = Lowest(GetSymbolField("TSE.TW","low","D"), length);

if maxHigh <> minLow then
    rsv = 100 * (GetSymbolField("TSE.TW","close","D") - minLow) / (maxHigh - minLow)
else
    rsv = 50;

if currentbar = 1 then
  begin
    k = 50;
    d = 50;
  end
else
  begin
    k = (k[1] * (rsvt - 1) + rsv) / rsvt;
    d = (d[1] * (kt - 1) + k) / kt;
  end;  

tse_stochastic= 1;

警示範例如下:

input: Length_D(9, "日KD期間"),rsvt(3,"K平滑期數"), kt(3,"D平滑期數");

value1 = tse_Stochastic(Length_D,rsvt,kt,value2,value3,value4);

if value3 cross over value4  //如果大盤K值向上超過大盤D值
    then begin
    if close>high[1]  //收盤價>前一根最高價
    then ret=1 ;
    end;

 

附加文件

  • 按讚來自於
  • moaibear
排序方式: 標準 | 最新
JJJJJ 發文於   2023/03/26

Williaml你好,

這函數我想改成由日改為週, 如何改?

感恩

XQ小幫手 發文於   2023/04/06

Hello JJJJJ,

 

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

 

您只需要將 TSE_Stochastic 函數裡面使用日頻率的資料 (ex. GetSymbolField("TSE.TW","high","D")...etc) 修改為週頻率 (ex. GetSymbolField("TSE.TW","high","W")...etc) 即可。

需注意KD本身是需要前期值的指標,如果您用預設的長度 (9) 在週頻率的話,會需要運算 9*3=27 週的資料才能夠得出正確的數值。

若使用在分鐘頻率上的話會超出預讀筆數可以計算的範圍,小幫手不建議您這樣作。

發表回覆
Close