XS_自動交易腳本_取得當日的開盤價

  •   457 
  • 最後發表   expe  2024 九月 19
expe 發文於   2024/09/10

Once(GetInfo("IsRealTime")=1 and GetField("成交量", "Tick")<>0 and CurrentTime>=090000) begin
    Rec_O=GetField("開盤價", "D");
    Rec_I=GetField("參考價", "D");
    Alert("Rec_O",Rec_O,"Rec_I",Rec_I," s_in=",MaxList(Rec_O,Rec_I)*(1+0.01*p1),"數量",Floor(amount*10/Close)," 估_停損價=",MaxList(Rec_O,Rec_I)*(1+0.01*LossP)," 估_停利價=",MaxList(Rec_O,Rec_I)*(1+0.01*p1)*(1-0.01*FixedP));
end;

使用上述的語法來取得當日的開盤價價格,可是發現所取得的價格資料與實際的開盤價格(測試時間是2024/09/10),兩者並不相符

(例如2024/09/10的3017的開盤價應為548,2353的開盤價應為41.65)

印象中在改版之前,程式碼沒有變更也是採用這樣寫,不曉得問題出在哪邊 ?  會不會是版本更新到7.14.01之後才變成這樣?  又或是程式碼更怎麼做更改修正?

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/09/10

3017與2353的開盤價明顯地是抓到前一個交易日9/9的開盤價。

expe 發文於   2024/09/10

感謝教授提醒,另外檢查其他檔個股,發現很多也都是抓到前一個交易日的開盤價,

其中

3006這一檔有正確的抓到今日(9/10)的開盤價70.2

但是...這個結果為什麼會這樣才是令我還想不透的地方...

還請XQ小幫手 or XQ團隊 or 各路好手 幫忙  看要怎麼修改才能解決@@

感謝大家

expe 發文於   2024/09/13

後來嘗試多加了 GetFieldDate("開盤價", "D")=CurrentDate 這個條件,才有能正確取得開盤價,給大家參考~

XS小編 發文於   2024/09/19

Hello expe,

 

小編認為可能是您洗價時該商品當天的Tick尚未進來,故印出了當下最後一根 (也就是昨日) K棒的資訊。

如果您在 print 的時候同時印出date的話應該會更容易觀察。

因此加上 GetFieldDate("開盤價", "D")=CurrentDate 的條件後就可以排除洗價當下尚未有今日資訊的狀況。

發表回覆
Close