2016-12-04 27 views
1

我在使用quantstrat編寫R策略,需要在每個月的第15天關閉任何未結頭寸。特定月份日的關閉位置

我已經嘗試使用add.signalsigTimespan,但它似乎只適用於時間,而不是日期。也許我沒有把正確的數據格式傳遞給它的參數timespan。它要求基於POSIXct的對象,所以我這樣寫道:

add.signal(strategy = strategy, 
      name = 'sigTimestamp', 
      arguments = list(timestamp = as.POSIXct('2016-11-15 17:00:00')) 
      label = 'timestamp') 

...並且它不起作用。即使這樣做,這個信號只會用於關閉那個月的頭寸。

一個可能的解決方案是通過使用delaytimespan參數來放置延遲的訂單,以便在打開的同一時間段內關閉頭寸,但我也無法使其工作。這是我試過的:

add.rule(strategy = strategy, name = 'ruleSignal', arguments = 
      list(sigcol = 'long', 
       sigval = TRUE, 
       orderqty = 'all', 
       ordertype = 'market', 
       orderside = 'long', 
       replace = FALSE, 
       prefer = preferredPrice, 
       timestamp = as.POSIXct('2016-11-15 17:00:00')), 
     type = 'exit', label = 'Timestamp Position Close') 

有什麼想法?

我在Ubuntu 16.04.1 LTS下運行R 3.3.2和quantstrat 0.9.1739,數據爲5分鐘。

回答

1

我創建了一個函數,它可以在調用quantstrat的applyStrategy函數之前,在特定的時間戳上生成交易信號並將其應用於我的OHLC數據。這個信號,連同退出規則都有訣竅。

+0

由於我還沒有找到任何quantstrat內置解決方案,我現在將其標記爲公認的答案。 –

相關問題