使用 sigCrossover
虽然需要有一个多头过滤器,但这还不足以在本策略中开仓。然而,一旦该条件不再成立,策略就不应持有任何头寸。在本练习中,您将使用 sigCrossover() 函数实现上述规则的反向条件。
与 sigComparison() 不同,后者会始终判断条件是否成立,sigCrossover() 只会在信号首次出现的那一刻给出阳性结果,此后不再重复。这非常适合用于触发交易的信号,因为在大多数情况下,您只希望有一次交易,而不是反复触发多次交易。
在这里,您将实现 sigCrossover() 函数,指定 SMA50 下穿 SMA200。请将该信号标记为 filterexit,因为当均线过滤器表明当前环境不适合持仓时,它将用于退出头寸。
本练习是课程的一部分
R 中的金融交易
练习说明
- 使用
add.signal()添加一个sigCrossover,指定SMA50下穿SMA200。 - 将该信号标记为
filterexit。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
# We're interested in the relationship between the SMA50 and the SMA200
arguments = list(columns = c("___", "___"),
# The relationship is that the SMA50 crosses under the SMA200
relationship = "___"),
# Label it filterexit
label = "___")