2016-12-04 1 views
1

나는 매월 15 일에 열려있는 포지션을 마감해야하는 quantstrat를 사용하여 R로 전략을 작성했습니다.특정 달의 마감 위치

이미 add.signalsigTimespan을 사용해 보았습니다. 날짜가 아니라 시간에 따라 작동하는 것으로 보입니다. 어쩌면 나는 올바른 데이터 형식을 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') 

의견이 있으십니까?

저는 5 분짜리 데이터로 우분투 16.04.1 LTS에서 R 3.3.2와 quantstrat 0.9.1739를 실행 중입니다.

답변

1

특정 타임 스탬프에서 거래 신호를 생성하고 OHSTR 데이터에 적용하여 quantstrat의 applyStrategy 함수를 호출하는 함수를 만들었습니다. 그 신호는 출구 규칙과 함께 트릭을 만들었습니다.

+0

아직 퀀트 스트랫 (quantstrat) 내장 솔루션을 찾지 못했기 때문에 이것을 지금 받아 들였습니다. –