請教一下:TB在每個TICK到來時到底如何調用公式應用? [開拓者 TB]
- 咨詢內容:
我最近在實盤中遇到多次類似“公式應用[****]在主商品[IF1411]上出現交易訊號消失,可能導致您的持倉不匹配,請檢查公式算法!”的提示。
多次檢查自己的公式應用,尚未發現明顯錯誤。
記得某個文檔里說過,在盤中交易過程中,每來一個新的TICK(一條新行情數據),TB都會用此數據在最后一個BAR上調用一次公式應用,但是之前的“舊BAR”,就不會再調用了(歷史已成歷史,不需要再去重算,可以理解)。
因為行情數據可能會來得很快,來不及處理。或者因為網絡擁塞,使多個TICK“堆積”而突然同時到達,所以TB不能保證針對每個TICK都調用一次公式應用,只會用一批TICK當中最后一個調用一次公式應用。但是可以保證每次執行公式應用都會完整地執行,也就是說不會在執行過程中突然“KILL”我。
我的問題是:
1.漏掉的TICK會不會事后“補執行”?如果會,就可能導致它之后的TICK對應的指標值發生改變(大多數指標都依賴歷史數據)。從而使我收到“信號消失”的提示。
2.針對同一個TICK,系統會不會執行公式應用兩次或者兩次以上(比如用戶縮放、平移窗口,導致整個圖像重繪)?這也可能導致前述現象。
3.具體到TICK圖中(BarType == 2 && BarInterval == 0),每來一個TICK都會創建一個BAR。如果漏處理一個TICK,圖上是否還出現這個BAR?如果出現,我的指標值怎么辦?因為你根本沒來得及調用我,它的指標值無從談起?當然就更影響后續BAR的指標值的確定性了!
如果不執行,為什么我用FileAppend寫出的盤中數據,和盤后清除掉再重新上線獲取的數據,是一致的?只是TIME字段有別(詳解我的另一個帖子:http://bbs.tb18.net/thread-50902-1-1.html)。
也就是盤中的Tick數和盤后重新回測的Tick數一致。按說如果有丟包、拋棄,我自己記錄的Tick應該少一些,而且此時我一直不斷被提示“交易信號消失”。
按照我的粗淺理解:歷史已成歷史,不論算幾遍,應該都是確定的。
如果我的交易信號是在CurrentBar == 123這個Tick計算出的,之后你也不會用它再來執行公式應用,在此Bar及其以前的指標值都已是“既成事實”,怎么可能“消失”。
到了CurrentBar == 124及其以后,就算得出不同的信號,那也是我自己應該考慮和處理的問題。比如“快均線”在“慢均線”附近不停來回擺動,這是每一個交易系統都必須面對的問題。
難道系統只是“善意”地提醒?認為CurrentBar == 200或更遠之后的交易信號改變是合理的?而CurrentBar == 124就突然出現信號改變就不合理?
粗淺認識,如有冒犯,還望海涵!如蒙賜教,不勝感激!!
希望TB越做越好! - TB技術人員:
我覺得把,每個tick上是應該帶有某種時間戳的,這樣的話,TB根據現在的時間,自然不會去處理“漏掉”的tick。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 1145508240 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容