怎麼判斷K棒已經結束

  •   486 
  • 最後發表   HAO123  2022 五月 25
HAO123 發文於   2022/05/12

請問小幫手,我想要知道我設定的分K頻率,例如設定兩分K,但是我要怎麼判斷目前這跟K棒已經完成開始進行下一根?

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/05/16

Hello HAO123,

 

如果您是使用非逐筆洗價的話,那麼一根Bar只會計算一次。

若是非逐筆洗價的話,您可以使用 intrabarpersist 的變數來記錄time,接著再與下次的time比較。

舉例來說:

var: intrabarpersist _next_bar(0);

 

condition1 = _next_bar <> 0 and _next_bar <> time;  //如果time不相同的話,代表換bar了

if _next_bar <> time then _next_bar = time;    //換bar的話就更新time

condition1 就會是這次洗價是否有換Bar。

 

HAO123 發文於   2022/05/16

你好,因為我是盤中使用自動交易,但是我有需求是只有當下的K棒發生相應的條件,才會觸發進出場,想請教逐筆洗價的話,應該要怎麼判斷呢

貓老大 發文於   2022/05/17

我能想到的就是用 CurrentTime 去趨近(判斷到秒數), 這個邏輯在流動性差的商品裡, 很可能會失效

XQ小幫手 發文於   2022/05/19

Hello HAO123,

 

您沒辦法預知該筆洗價(交易)是否會是該分鐘最後一筆交易,所以沒辦法在該筆洗價當下就知道該根Bar結束。

一定是要到下一根Bar開始後,您才能夠確認前一根Bar已經結束。

所以小幫手上面的寫法才會是當time變動時判斷前根Bar剛結束。

需注意time代表的是該根Bar開始的時間 (有變就代表換Bar),和currenttime是當下的本機時間不同。

 

感謝 貓老大 的熱心回覆。

HAO123 發文於   2022/05/20

 但是我想知道的是 "逐筆洗價" 的狀況下,我要怎麼知道已經是下一根bar了呢

 

XQ小幫手 發文於   2022/05/24

Hello HAO123,

 

如同小幫手上面寫的範例:

ar: intrabarpersist _next_bar(0);

 

condition1 = _next_bar <> 0 and _next_bar <> time;  //如果time不相同的話,代表換bar了

if _next_bar <> time then _next_bar = time;    //換bar的話就更新time

 

如果 condition1 為 True 的話就是換Bar,condition1 為 False 的話就是同一根Bar。

您可以在執行時將condition1 print出來即可了解。

 

需注意XQ 的 time 是 Bar 的開始時間,所以在同一根Bar內的時候都會是相同數字。

舉例來說,1分鐘逐筆的狀況下,只要是成交在 09:00 ~ 09:01 這段時間的交易,time回傳的數字都會是090000。

HAO123 發文於   2022/05/25

謝謝小幫手回復

發表回覆
Close