程序化交易行情數據從哪里來?都要做哪些計算?
2018-9-7 / 已閱讀:2470 / 上海邑泊信息科技
程序化交易行情數據是研究開發期貨程序化策略和執行策略進行實時分析交易的基礎,從金融交易市場開始運行并積累起來的市場行情數據已經有幾十年,從海量的數據里獲取、加工和提取需要用到的數據需要一個全面的技術解決方案。同時,在進行實時行情驅動的策略分析、策略執行和風險控制,實時流動的數據流驅動計算和從歷史數據堆里一次獲取再批量計算的計算模型也完全不一樣。合適的數據建模、數據架構規劃、數據處理流程和數據拼接可以最好地無縫連接開發的策略在歷史測試的性能表現和實時交易時的實際效果。
在策略研究開發階段,用到最多的程序化交易行情數據是歷史數據,最基礎原始采集到的行情數據是交易所直接推送的Tick數據,正常情況每秒鐘2個或4個,除了做高頻策略的一般很少直接用到這個數據。日內交易策略一般會用到分鐘線數據,可以通過對原始Tick數據的加工獲得分鐘線數據,也可以在外邊買現成的數據,省掉了自己加工處理Tick數據的步驟。同時,幾十年的Tick數據也很大,分鐘數據相對小很多。有了1分鐘基礎數據后,自己再根據實際需要加工成其它各種分鐘的數據就好辦了。對于長期趨勢分析,一般用到的程序化交易行情數據是日線以上數據,可以購買歷史全部日線數據,然后根據實際需要加工成周、月、季度、年線數據。
到了策略實時分析和執行階段,則需要實時采集交易所過來Tick數據,并實時加工成分鐘程序化交易行情數據。這個階段的數據量相對于歷史幾十年的數據量就少很多了,但是對實時性和可靠性要求則更高。因此雙機熱備或多機異地熱備就顯得很有必要了,否則由于系統故障導致的當日數據缺失不僅是影響到當時的交易策略的執行,也影響到當日后續時間段的策略準確分析。這里的雙機熱備不僅僅是一個宕機后,另一個能準時切換上去,也需要在宕機的重新啟動恢復運行后能從另一個自動同步中間缺失的行情數據,保證后續提供當日行情查詢服務時數據的完整性。
在實際應用中的程序化交易行情數據,除了交易合約的數據外,還需要拼接得到主力連續合約的數據和計算得到指數合約的數據。這兩種數據是實際策略研究開發和執行用到的最多的數據。主力連續合約最大的缺陷是拼接后數據的不連續性,在主力合約切換時,會影響策略的執行效果。而指數合約,則是一個虛擬的合約,沒有一個實際合約和它對應,要么使用主力合約作為近似合約,要么就要使用更復雜的交易技術,按照實際不同合約的權重組合,發出一籃子合約的買賣交易指令,并要保證按照預先比例全部成交,來模擬指數合約的持倉情況。前面一種適合小資金規模的,后面一種適合大資金規模的。