這兩個寫法差異

  •   376 
  • 最後發表   George L  2022 九月 01
George L 發文於   2022/08/26

目標:找出從今天起算,往前50~60天,這10天之中的收盤價之最高價

下面這兩種哪個是正確的 

這兩個運算的結果會有甚麼不一樣

謝謝

highest(close,10)[50];

highest(close[50],10);

排序方式: 標準 | 最新
musashi 發文於   2022/08/27

兩個結果都一樣,但是執行邏輯方式不同,我的理解是以下解釋,

highest(close,10)[50]; 是highest()所在的頻率往前50根K棒,然後在第50根K棒在執行 highest(close,10)

highest(close[50],10); 是抓取close所在的頻率往前50根K棒的close值,然後放到 highest()裡面運算,而由於close是序列值,所以highest會用當下的close值得J棒往前找出10根K棒最高值。

以上解釋如果有誤請依XQ小編為準

XQ小幫手 發文於   2022/09/01

Hello George L,

 

由於 highest 函數是用節省效能的寫法,所以 highest(close,10)[50]; 這種運用方式可能會導致計算錯誤。

highest(close[50],10); 這種是可行的。

另外,simplehighest 是較耗效能但能保證正確性的函數, simplehighest(close,10)[50] 和 simplehighest(close[50],10) 兩者計算出來應該會相同。

兩者的運算邏輯都可以在XS編輯器裡的內建函數腳本中看到。

 

感謝 musashi 的熱心回覆。

發表回覆
Close