2016-12-04 3 views
1

Я нахожу стратегию в R, используя квантстрат, который должен закрывать любую открытую позицию на 15-й день в течение каждого месяца.Закрытое положение по определенному месяцу

Я уже пробовал использовать add.signal с sigTimespan, но, похоже, он работает только со временем, а не с датами. Возможно, я не передаю правильный формат данных в аргумент timespan. Он просит объекта на основе POSIXct, поэтому я написал это так:

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

... и он не работает. И даже если бы это было так, сигнал был бы полезен только для закрытия позиции в этом месяце.

Возможное решение заключается в том, чтобы поместить задержанный заказ, чтобы закрыть позицию в то же время, пока он открыт, используя аргументы delay или timespan, но мне также не удалось заставить его работать. Вот что я пробовал:

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') 

Любые мысли?

Я запускаю R 3.3.2 и квантстрат 0.9.1739 под Ubuntu 16.04.1 LTS с 5-минутными данными.

ответ

1

Я создал функцию, которая генерирует торговый сигнал на определенную метку времени и применяет ее по моим данным OHLC, прежде чем вызывать функциюквантстрата. Этот сигнал вместе с правилом выхода сделал трюк.

+0

Поскольку я еще не нашел какое-либо встроенное решение квантстрата, на данный момент я отмечаю это как принятый ответ. –