開始使用免費開始

在 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")
編輯並執行程式碼