關於自動交易期貨結算問題

  •   374 
  • 最後發表   KiddingChen  2021 十二月 23
KiddingChen 發文於   2021/12/15

小幫手你好!目前實單自動交易小台指大約一個多月大致上沒什麼問題,基本想法是自動交易的好處是不用看盤,基本上除非有錯誤修正才會去理他

就在今天期貨結算日發現,我商品是使用:小型台指近月(代號:FIMTXN*1)

但邏輯上發現每月還是必須手動換倉一次,因沒找到可以在到期日自動換合約的方法

所以"第一個問題"是有沒有什麼方法可以自動轉倉?


 

因為今天沒注意到是換倉日,所以沒理他被平倉囉!

結果...自動交易在下午15:00開盤疑似沒偵測到庫存已是0,觸發了腳本裡面平倉的setposition(0,market);指令,變成做空一口(並非觸發做空指令)

所以"第二個問題"是,假如無法自動轉倉,又忘了手動轉倉被平倉的狀況下,是否要先停止腳本再重新開啟才會更新庫存?

"第三個問題"是,有沒有以平倉買賣的語法,以避免錯誤?

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/12/17

Hello KiddingChen,

 

1.自動交易中心沒有自動轉倉的功能。您需要手動平倉,或是在腳本中作判斷。

2.是的,每個啟動中的策略有自己的庫存,不會受到外部的影響。

  您手動平倉的話,策略的庫存是不會變動的。

  若您選擇依庫存的話,關閉策略後重啟是會抓到新的庫存沒錯,在啟動策略前會顯示庫存數量可以確認。

3.舉例來說,您可以在腳本中判斷當日是否為結算日,如果是結算日的話就平倉不動作。

  只要使用 DayOfWeek 跟 WeekOfMonth 即可判斷。

https://xshelp.xq.com.tw/XSHelp/?HelpName=DayOfWeek&group=DATEFUNC

https://xshelp.xq.com.tw/XSHelp/?HelpName=WeekOfMonth&group=DATEFUNC

  舉例來說,將這行放在腳本最前面:

  if dayofweek(date) = 3 and weekofmonth(date) = 3 then begin

      if position <> 0 then setposition(0, market);    //平倉

      return;     //執行中斷

      end;

  這樣小台指結算日(每個月的第三個星期三)當天就不會有交易(除了出掉手上部位以外)。

KiddingChen 發文於   2021/12/21

好的,感謝小幫手!很受用~

畢竟自動交易還是希望策略ok的話,除非錯誤或斷線外能夠盡量不去動他,以避免人為的錯誤去影響績效,

據我所知,m牌好像是可以自動換倉的,但我愛用國貨,希望你們可以考慮這塊,加油

XQ小幫手 發文於   2021/12/23

Hello KiddingChen,

 

感謝您的建議,小幫手會轉告相關人士作參考。

發表回覆
Close