開始使用免費開始

使用 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 = "___")
編輯並執行程式碼