淨值資料錯誤

  •   90 
  • 最後發表   RS168  2024 一月 19
RS168 發文於   2024/01/13

第一種寫法

value1 = getField("每股淨值(元)", "Q");

value2 = getField("每股淨值(元)", "Q")[1];

condition1 = value1 < 5 and value2 >=5;

第二種寫法

value1 = getField("每股淨值(元)", "Q");

condition1 = value1 < 5 and value[1] >=5;

 

請問有哪裡不同 回測跑出來的結果會不同

且我把淨值outputfield顯示出來

淨值欄位常常變成0

 

請問是我哪裡有錯誤嗎?還是淨值資料錯誤?

 

謝謝

XQ小幫手 發文於   2024/01/19

Hello, RS168.

這主要是腳本執行頻率跟資料頻率的差異,

 下列的寫法,比較安全,

value1 = getField("每股淨值(元)", "Q");
value2 = getField("每股淨值(元)", "Q")[1];
condition1 = value1 < 5 and value2 >=5;

而以下的寫法,value[1]取到的資料,其實是前一根K棒所取得的資料,以選股來說就是前一天,

 如果這幾天都沒有新的"每股淨值(元)"更新,所以 value1 會和 value1[1] 一樣,

value1 = getField("每股淨值(元)", "Q");
condition1 = value1 < 5 and value[1] >=5;

至於 getField("每股淨值(元)", "Q") 這個欄位,應該只有在更新當天才有可能暫時取到0的狀況(且這個狀況目前已經在排修正),

若您有發生此狀況,麻煩提供匯出檔勾選(包含)策略腳本、有問題的商品以及發生的日期時間、XQ Log 來檢驗。

 

謝謝。

發表回覆
Close