我正在尝试luxor.4.paramset.timespan.R
来找到luxor策略的最佳输入时间,并且脚本运行没有错误。但是,当我使用tradeGraphs()
检查结果时,最大Net.Trading.PL
只有大约20k,而使用nFast = 1的luxor.1.basic.strategy.R
,没有时间跨度优化的nSlow = 44会产生106k。我没有在上面运行完整的24x24小时扫描,而是使用了.nSamples = 80
和:
.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 :(得分:0)
如果您不提供reproducible example,则很难提供帮助,尤其是当您对代码进行了更改时。您可能会认为,&#34;并没有真正改变代码中的任何内容,但您并不知道您所改变的所有方式都会影响输出。
按原样运行演示并不会在您提到的值附近产生P&amp; L结果,并且根据您在问题中提到的一些事项猜测您所改变的内容,我无法接近这些P&amp; L值。
尽管如此,我认为您对时间跨度优化P&amp; L的期望是非常不切实际的。如果您将交易时间限制为每天仅4小时,那么期望类似的P&amp; L(或更高的P&amp; L均值)可能是不合理的,这就是时间跨度优化所做的事情。
我觉得完全合理的是,你的P&amp; L在一天中仅交易时间的16%,大约是你在一天24小时内交易的P&amp; L的16%。