getbaroffset取值問題

  •   237 
  • 最後發表   charlie1234  2023 四月 11
charlie1234 發文於   2023/04/01

小幫手好

寫了一個選股腳本,想要計算這次除權息當天開盤價到下次除權息前一天收盤價的價差,然後一次統計10年

但發生以下問題

1. 出場日期應該比進場日期晚,但像國票金跟元大金,卻出現出場日期比進場日期早的問題

2. 明明有除權息,但卻取不到正確的值

以合庫金為例,10"進"場日期是取得往前第11次的除權息日的開盤價20130814,10"出"場日期是取得往前第10次的除權息日的收盤價,但這個日期顯示為20210723,

但如果看9"進"場日期20140819,這個日期是往前第10次的除權息日當天的開盤價,表示2014年是有除權息的,所以10出場,應該要是20140818,卻顯示20210723

1的問題,改用除息日,似乎可以解決,但2的問題,還是是同樣會發生,麻煩小幫手協助

 

附加文件

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

Hello charlie1234,

 

小幫手這邊測試確實有您描述的狀況發生,會請相關人員確認問題原因。

感謝。

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

Hello charlie1234,

 

1. 除權息日期的排序順序是依照除權息公布日排序,所以可能會發生先公布的日期卻是比較遠的未來的狀況。(ex.先公布除權接著再公布除息,但除息卻比較快發生)

這樣就會有 getfield("除權息日期")[0] (後公布的除息日) 反而小於 getfield("除權息日期")[1] (先公布的除權日) 的狀況。

 

2. getbaroffset 需要腳本正常執行足夠筆數才能夠取得正確的相對位置。

當您的腳本往前執行時若 getfield("除權息日期")[10] 在沒有10筆前期值之前都會發生錯誤。

等到資料足夠時腳本才能夠正常運算,所以 getbaroffset 最早就會是取到這邊開始的位置。

建議您可以使用 GetFieldStartOffset 來確認資料筆數。

發表回覆
Close