GetBarOffset回傳值問題

  •   164 
  • 最後發表   Frank7489  2023 二月 24
Frank7489 發文於   2023/02/20

我在選股腳本裡測試GetBarOffset,只有以下程式碼

SetFirstBarDate(20150101);

outputfield(1,GetBarOffset(20180103),"1");

ret = 1;

可是怎麼會有的股票回傳值是0 ?

再請幫忙解答,感謝

 

附加文件

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

Hello Frank7489,

 

當該商品資料中沒有辦法取得 20180103 這一天時 (ex. 資料長度不足),GetBarOffset 會回傳0。

至於有些商品不足 1249 的原因則是因為這些商品中間有發生過暫停交易的狀況。

Frank7489 發文於   2023/02/22

Hi 小幫手,

感謝您的說明,我還有另一個問題如下

我在執行選股腳本的時候發現執行得很慢,就寫的一個程式測試

程式碼如下

input: Datestart(20200101,"開始日期");

input: Datestop(20221231,"結束日期");

input: FirstBarDate(20180101,"FIRSTBAR");

SetFirstBarDate(FirstBarDate);

variable: m(0),d(0);

d = getBarOffset(Datestart);

m+=1;

outputfield(1,m,"1");

ret=1;

 

輸出的m是1499,看起來應該SetFirstBarDate的原因,請問有辦法讓他只執行一次而且d計算的offset是正確嗎?

附加文件

XQ小幫手 發文於   2023/02/24

 Hello Frank7489,

 

您可以參考 islastbar 函數,讓其只在最後一根Bar執行。

需注意就您這個範例之中如果 m += 1 也被 islastbar 控制的話,那麼 m 就只會是1。 (因為只執行一次)

發表回覆
Close