結合訊號 - II
在前一個練習中,你透過比較另外兩個訊號的值,近似出一個 sigFormula 訊號。這個最後的練習要更進一步,直接使用 sigFormula() 函式產生一個 sigFormula 訊號。
本題目標很單純:當 longfilter 和 longthreshold 同時變成 true 時就進場建倉。概念是這樣:你不想在條件持續為真時一再進場,但在多頭趨勢中出現拉回時,你「確實」想持有部位。
撰寫 sigFormula 和在 base R 的 formula() 函式中撰寫「if 陳述式」的條件引數一樣簡單。這裡你要建立名為 longentry 的訊號,當 longfilter 與 longthreshold 在同一時間同向跨越為 true 時,此訊號為真。
完成本練習後,你就完整掌握 quantstrat 中各種訊號的運作方式!
本練習屬於課程
R 的金融交易
練習說明
- 使用
add.signal()建立一個sigFormula訊號,當longfilter和longthreshold皆為 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 = "___")