開始使用免費開始

結合訊號 - II

在前一個練習中,你透過比較另外兩個訊號的值,近似出一個 sigFormula 訊號。這個最後的練習要更進一步,直接使用 sigFormula() 函式產生一個 sigFormula 訊號。

本題目標很單純:當 longfilterlongthreshold 同時變成 true 時就進場建倉。概念是這樣:你不想在條件持續為真時一再進場,但在多頭趨勢中出現拉回時,你「確實」想持有部位。

撰寫 sigFormula 和在 base R 的 formula() 函式中撰寫「if 陳述式」的條件引數一樣簡單。這裡你要建立名為 longentry 的訊號,當 longfilterlongthreshold 在同一時間同向跨越為 true 時,此訊號為真。

完成本練習後,你就完整掌握 quantstrat 中各種訊號的運作方式!

本練習屬於課程

R 的金融交易

檢視課程

練習說明

  • 使用 add.signal() 建立一個 sigFormula 訊號,當 longfilterlongthreshold 皆為 true 時,此訊號為真。
  • cross 設為 TRUE
  • 將這個新訊號標記為 longentry

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Add a sigFormula signal to your code specifying that both longfilter and longthreshold must be TRUE, label it longentry
add.signal(strategy.st, name = "___",
           
           # Specify that longfilter and longthreshold must be TRUE
           arguments = list(formula = "___ & ___", 
                            
                            # Specify that cross must be TRUE
                            cross = ___),
           
           # Label it longentry
           label = "___")
編輯並執行程式碼