請問像是下面這個KD指標的case, settotalbar是用maxlist((Length,6)*3)去做設定, 這邊是怎麼決定這樣設定的呢?

請問像是下面這個KD指標的case, settotalbar是用maxlist((Length,6)*3)去做設定, 這邊是怎麼決定這樣設定的呢?

Hello CHCCHC,
就小幫手所知這是當初開發的人員測試出來適合的所需預讀筆數。
"至於最大引用筆數這個參數,在XS選股系統內由於執行時已經事先讀取了全部的資料,所以使用者不需要再做設定。" =>這段話是在官方教學裡寫到的
這邊如果length是9的話, settoalbar是不是設9就可以了?
Hello CHCCHC,
資料讀取筆數 (settotalbar) 和 資料引用筆數 (setbackbar) 是不相同的。
讀取筆數的部分是腳本會實際運算的,引用筆數腳本並不會運算。
細節可以參考 資料讀取範圍與腳本執行的關係。
KD需要的是前期運算值而不是歷史資料,所以設9會計算出和指標線圖不同的值。
應該要設為您上方截圖的 SetTotalBar(maxlist(Length,6) * 3); 才會運算出正確的值。
抱歉, 看完後還是不太了解這邊的case, 可以說明一下為什麼需要maxlist(Length,6) * 3才可以嗎? 看起來KD裡面會用到的前值應該就是前一天的KD值吧?
謝謝~
Hello CHCCHC,
會需要 maxlist(Length,6) * 3 的資料預讀比數是因為KD計算方法的關係。
https://rich01.com/what-is-kd-indicator/
如果您看過KD指標的計算方式或是stochastic 內建函數的話就知道K和D是會用到前期值來計算的 (k[1], d[1]),而這會導致隨著計算起點不同,計算出來的值會有差異。
但這差異會隨著計算過越多的K棒縮小。
將預先運算筆數設為 maxlist(Length,6) * 3 就是要讓這差異縮小到可忽略的地步。
這和XS語法沒關係,是原本指標的計算方式導致要設的這麼長,其他類似的有RSI, MACD 和 EMA等指標。
當然您要設得更短也是可以,只是出來的值就可能會和指標畫出來的不同。
了解, 感謝小幫手的說明
6 評論