使用 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 = "___")