在 add.rule() 中指定 sigcol
做得很好!雖然 add.rule() 指令看起來很複雜,但每個引數其實都很單純。為了理解這個指令,你會逐一探索每個引數。
首先,add.rule() 需要引數 sigcol,用來指定策略中的訊號欄位。和 signals、indicators 一樣,所有 rules 都會參照策略中既有的欄位。Rules 仰賴 signals,因此必須參照你策略裡的訊號欄位。
在這個練習中,你要在 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")