在 add.rule() 中指定 sigcol
做得很好!尽管 add.rule() 命令看起来很复杂,但每个参数都很简单。为便于理解该命令,您将逐一了解各个参数。
首先,add.rule() 接受参数 sigcol,用于指定策略中的信号列。与信号和指标类似,所有规则都会引用策略中已经存在的一列。规则依赖于信号,因此必须引用策略中的信号列。
在本练习中,您将为 add.rule() 调用提供 sigcol 的取值,并将其设为 filterexit(用来引用上一章中创建的 filterexit 信号)。具体来说,filterexit 信号指的是在您的策略中,50 日 SMA 下穿 200 日 SMA 的条件。为该信号创建一条规则,表示当出现这一情况时您希望退出,因为此时的市场环境已不再有利于您的持仓。
与之前一样,strategy.st 已预加载在您的工作空间中。
本练习是课程的一部分
R 中的金融交易
练习说明
- 再次查看您工作空间中的
add.rule()命令。 - 通过指定
sigcol,基于filterexit创建一条退出规则。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Fill in the sigcol argument in add.rule()
add.rule(strategy.st, name = "ruleSignal",
arguments = list(sigcol = "___", sigval = TRUE, orderqty = "all",
ordertype = "market", orderside = "long",
replace = FALSE, prefer = "Open"),
type = "exit")