2016-09-09 5 views
0

luxor 전략에 가장 적합한 입력 시간을 찾기 위해 luxor.4.paramset.timespan.R을 시도했지만 오류없이 스크립트가 실행되었습니다. 그러나 tradeGraphs()을 사용하여 결과를 조사한 결과 최대 값 Net.Trading.PL은 약 20k 였지만, nFast = 1, nSlow = 44를 사용하는 luxor.1.basic.strategy.R은 106k로 시간 경과 최적화가 적용되지 않았습니다. 나는 위의 전체 24x24 시간 검사를 실행, 대신 .nSamples = 80을 사용하지 않고 :quantstrat 데모 luxor.4.paramset.timespan 최적화

.timespans<-c('T06:00/T10:00', 'T07:00/T11:00', 'T08:00/T12:00', 
    'T09:00/T13:00', 'T10:00/T14:00', 'T11:00/T15:00', 'T12:00/T16:00') 

나는 luxor.timespan.24x24.2002-2008.RData의 전체 검사 버전에서 결과를 확인하고 NetTrading.PL 같은 20K에 대해도했다.

나는 꽤 혼란 스럽다. 또는 전략에 시간 분포 분포를 더한 다음 apply.parmaset() 실제로는 Net.Trading.PL이 감소합니까?

누구든지 나를 도와 줄 수 있습니까?. 미리 감사드립니다.

저는 R을 배우기 시작했으며 실제로 코드에서 아무 것도 변경하지 않았습니다. 여기에 파일을 여기 luxor.2.add.paramsets.R

## Timespan paramset 

add.distribution(strategy.st, 
    paramset.label = 'Timespan', 
    component.type = 'enter', 
    component.label = 'EnterLONG', 
    variable = list(timespan = .timespans), 
    label = 'EnterLong' 
) 

add.distribution(strategy.st, 
    paramset.label = 'Timespan', 
    component.type = 'enter', 
    component.label = 'EnterSHORT', 
    variable = list(timespan = .timespans), 
    label = 'EnterShort' 
) 

add.distribution(strategy.st, 
    paramset.label = 'Timespan', 
    component.type = 'exit', 
    component.label = 'Exit2LONG', 
    variable = list(timespan = .timespans), 
    label = 'ExitLong' 
) 

add.distribution(strategy.st, 
    paramset.label = 'Timespan', 
    component.type = 'exit', 
    component.label = 'Exit2SHORT', 
    variable = list(timespan = .timespans), 
    label = 'ExitShort' 
) 

add.distribution.constraint(strategy.st, 
    paramset.label = 'Timespan', 
    distribution.label.1 = 'EnterLong', 
    distribution.label.2 = 'EnterShort', 
    operator = '==', 
    label = 'EnterTimespan' 
) 

add.distribution.constraint(strategy.st, 
    paramset.label = 'Timespan', 
    distribution.label.1 = 'ExitLong', 
    distribution.label.2 = 'ExitShort', 
    operator = '==', 
    label = 'ExitTimespan' 
) 

add.distribution.constraint(strategy.st, 
    paramset.label = 'Timespan', 
    distribution.label.1 = 'EnterLong', 
    distribution.label.2 = 'ExitShort', 
    operator = '==', 
    label = 'EnterExitTimespan' 
) 

과의 하위 섹션은 파일에서 하위 섹션입니다 luxor.4.paramset.timespan.R

require(doParallel) 
registerDoParallel(detectCores()) 

results <- apply.paramset(strategy.st, paramset.label = 'Timespan', 
portfolio.st = portfolio.st, account.st = account.st, 
nsamples = .nsamples, verbose = TRUE) 

stats <- results$tradeStats 
print(stats) 
save(stats, file='luxor.4.paramset.timespan.RData') 

답변

0

그것은 당신이 변경 한 특히, 당신이 reproducible example를 제공하지 않는 경우 도움이 정말 어렵다 코드에. "코드에서 실제로 아무 것도 변경하지 않았습니다"라고 생각할 수도 있지만 변경 한 내용이 출력에 영향을 미칠 수있는 모든 방법을 알지 못합니다. 데모를 실행

있는 그대로 어디서나 당신이 언급 한 값 근처 P & L의 결과를 생성하지 않으며, 당신은 당신이 당신의 질문에 언급 몇 가지를 기반으로 변경된 것을 추측하여 가까운 사람들 P & L 값을 얻을 수 없다 .

그럼에도 불구하고 나는 시간 경과 최적화 P & L에 대한 귀하의 기대가 매우 비현실적이라고 생각합니다. 거래를 하루 4 시간으로 제한하면 timespan 최적화가 수행하는 것과 비슷하게 유사한 P & L (또는 그 이상이 더 높음)을 기대하는 것이 타당하지 않을 수 있습니다.

귀하의 P & L 거래가 하루 중 16 %만이 P & L의 약 16 % 일 것입니다. 하루 24 시간 내내 거래하면됩니다.

+0

나를 올바른 방향으로 안내해 주셔서 감사합니다. 나는 시간 창을 8 시간으로 넓혔으며 전략은 시간 창없이 전략보다 더 나은 P & L을 산출했다. –