台指期結算日說明與注意事項
操作期貨的朋友應該都要了解期貨有結算日機制,不只有台指期,全球期貨不管指數期貨、商品期貨、能源期貨等等皆依照交易所規定之特定日期為結算日。台灣指數期貨則為每月第三個星期三為期貨結算日,針對結算日我們也有一些注意事項,下面一一告訴大家。
以Multicharts為例,如果策略內有針對結算日收盤前做出場者,可以忽略本篇文章,而如果是使用函數SetExitOnClose來進行自然結算的MR用戶,就必須注意你的圖表在結算後,有些週期倉位不會歸0的問題。
首先我們必須了解,函數SetExitOnClose是使用 QuoteManager 中設定的交易結束時段資訊,所以結算日是13:30分就已經結算Multicharts並不會知道,如果策略有留倉位自然結算,會直到下一個時段第一個報價收到後,Multicharts才會知道前一根K棒已經出場結算,然後才在圖表標示出場訊號並輸出倉位為0。
台指期結算日對MR的影響、注意事項
如果你的投資組合當中有純日盤的策略也有全時段的策略,純日盤的下一個Tick已經是隔天08:45開盤,代表的是圖表在隔天開盤才會知道已經結算將倉位歸0;而全時段策略卻是在結算日當天下午15:00就會收到新的Tick而將倉位歸0,對MR而言,這會產生什麼問題?
1、若使用同步下單,MR有Check倉位機制,結算日當天的夜盤時段,實際帳戶庫存與策略不一致時,會發出警示。
2、因為MR是整合下單,若有策略圖表沒有歸0,實際卻已經結算歸0,則會影響其他策略的比例計算。
為了解決上面的問題,幾個注意事項請大家注意:
- MR在輸出文字檔的程式(MR_Strategy_Output)內有作一些手腳,如下圖,程式碼內有此區塊,由於新版已整併國內與海外策略共用輸出,故此參數僅國內策略使用,TWHotTimeTradeOnly為台指期結算日專用,區分純日盤策略與全時段策略之判定標籤,掛載輸出指標或是訊號時,台指期策略僅交易純日盤請設定1,全時段交易請設定0。
———————————————舊版請參考此區塊———————————————
- MR在輸出文字檔的程式(*_OutputByTick)內有作一些手腳,如下圖,程式碼內有此區塊,bIsNightTrade為區分純日盤策略與全時段策略之判定標籤,掛載輸出指標或是訊號時,純日盤交易策略請設定0,全時段交易策略請設定1。
———————————————舊版請參考此區塊———————————————
- 如下圖,結算日當天13:40之後一直到隔天08:45開盤前,該輸出不會管圖表是否還存有部位,皆會強制輸出策略倉位為0,避免影響其他策略部位計算,其餘時間皆依照正常策略倉位輸出。但因為程式碼currentTime是抓取本機時間,有些用戶電腦時間沒有固定校正,比報價主機時間慢,導致結算日當天報價主機時間已經開盤送出報價了,本機時間可能還在08:44:50秒,這時候就會符合程式碼定義(結算日以及本機時間<0845以及本機時間>1340)將倉位輸出為0。所以,本程式碼因為有使用到本機時間,所以請確保交易機上的校時工具有常駐,MR官網下載區有提供電腦校時工具,交易機請記得常駐。
- 針對前項本機時間問題,如果擔心電腦時間校正後仍與報價主機不一致,Multicharts報價接收到的時間在08:45分之前,也可試著將交易時段延後1分鐘,一來可避免開盤時段交易的滑價,二來可確保Multicharts已經收到報價,下單機不會在開盤前送單。
其他推薦文章
2分鐘了解程式交易是什麼?
推薦程式交易教學網站
https://meet.bq995.com/mc