GetSymbolField("OTC.TW","開盤價","D") 資料錯誤

  •   444 
  • 最後發表   GaryChiang  2022 十一月 11
GaryChiang 發文於   2022/11/11

如圖一, 這支程式有濾網, OTC 開盤價要低於昨日收盤價!

今天(11/11)的盤, 是大漲的行情, 一開盤OTC就大漲了, 所以, 程式是不可能會下單的!

但, 它還是下單了! 就在 9:00:03 時就觸發了, 顯然是第一個tick就觸發訊號了!

此時, 真能取得OTC的開盤價嗎?

雖然, OTC 的第一個Tick是寫9:00:00

但......很多股票的第一個Tick都在這個時間之後, 如8933, 它的第一個tick時間顯示是9:00:03, 如果這是對的!

那OTC第一個tick的資料是對的嗎?

我大膽猜一下, 9:00:00 這根的資料是不是 9:00:04.9999 結束之後才計算的!

而在9:00:05之前取OTC的值, 都有可能是錯的?

log 檔:

https://drive.google.com/file/d/1d9FI6fLLkh9MFhzvo6_Sd525BiZLsvnq/view?usp=sharing

 

XQ小編 發文於   2022/11/11

你好: 

交易所每天9:00:00時, 針對所有的指數商品(TSE.TW, OTC.TW, TSE11.TW等), 都會傳送第一筆tick. 可是這一筆tick的價格都是前一日的收盤價(成交量也是0). 為了讓指數K線的開盤價有意義, 所以我們的處理方式是忽略這一筆tick (成交明細內會揭示), 一直等到下一筆指數資料收到時(約09:00:05)才開始累積當日的K線. 

 

從腳本觸發的時間點看起來, 在09:00:03左右腳本去抓OTC的日K棒時, 此時因為OTC的"開盤價"還沒有收到, 而跨商品的定義是如果那個商品目前沒資料的話就往前抓, 所以GetSymbolField("OTC.TW", "開盤價", "D")會抓到昨日日線的開盤價, 而GetSymbolField("OTC.TW", "收盤價", "D")[1]則是更早一天的.

針對這樣子的現象, 我們建議可以多加上以下判斷式來確認跨商品時兩個商品的日線是對齊的.

GetSymbolFieldDate("OTC.TW", "開盤價", "D") = Date

以上是目前行為的說明. 因為文件內沒有特別highlight這樣子的情形, 造成您的腳本異常我們感到非常的抱歉. 如果尚有任何問題或是建議的話, 請再跟我們說. 

 

發表回覆
Close