有關SetTotalBar的問題

  •   376 
  • 最後發表   CHCCHC  2023 五月 12
CHCCHC 發文於   2023/05/04

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

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/05/05

Hello CHCCHC,

 

就小幫手所知這是當初開發的人員測試出來適合的所需預讀筆數。

CHCCHC 發文於   2023/05/05

"至於最大引用筆數這個參數,在XS選股系統內由於執行時已經事先讀取了全部的資料,所以使用者不需要再做設定。" =>這段話是在官方教學裡寫到的


這邊如果length是9的話, settoalbar是不是設9就可以了? 

XQ小幫手 發文於   2023/05/09

Hello CHCCHC,

 

資料讀取筆數 (settotalbar) 和 資料引用筆數 (setbackbar) 是不相同的。

讀取筆數的部分是腳本會實際運算的,引用筆數腳本並不會運算。

細節可以參考 資料讀取範圍與腳本執行的關係

KD需要的是前期運算值而不是歷史資料,所以設9會計算出和指標線圖不同的值。

應該要設為您上方截圖的 SetTotalBar(maxlist(Length,6) * 3); 才會運算出正確的值。

CHCCHC 發文於   2023/05/10

抱歉, 看完後還是不太了解這邊的case, 可以說明一下為什麼需要maxlist(Length,6) * 3才可以嗎? 看起來KD裡面會用到的前值應該就是前一天的KD值吧?
謝謝~

XQ小幫手 發文於   2023/05/12

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等指標。

當然您要設得更短也是可以,只是出來的值就可能會和指標畫出來的不同。

 

CHCCHC 發文於   2023/05/12

了解, 感謝小幫手的說明

發表回覆
Close