開始使用免費開始

執行你的策略

恭喜你在 quantstrat 中建立了策略!複習一下,你的策略使用了 3 個指標與 5 個訊號。這個策略要求 DVO_2_126 指標的臨界值低於 20,且 SMA50 大於 SMA200。當 DVO_2_126 向上穿越 80,或 SMA50 向下穿越 SMA200 時,策略會賣出。

為了讓這個策略正確運作,你設定了 5 個獨立的訊號:

  1. sigComparison:檢查 SMA50 是否大於 SMA200
  2. sigThresholdcross 設為 FALSE,檢查 DVO_2_126 是否小於 20;
  3. sigFormula:把上述條件綁在一起,並將 cross 設為 TRUE
  4. sigCrossover:檢查 SMA50 是否小於 SMA200;以及
  5. sigThresholdcross 設為 TRUE,檢查 DVO_2_126 是否大於 80。

策略會在每筆交易投入 $100,000(你的 initeq),若 DVO_2_126 在 20 附近震盪,可能會出現少量的平均攤平買入(不過相較於初始配置,影響大多可忽略)。

在本章最後,你會學到如何檢視投資組合的實際結果。不過在產生結果之前,你需要先執行策略,並補上一些樣板程式碼,讓 quantstrat 能完整記錄所有內容。這個練習中的程式碼,未來你也會需要複製貼上使用。

本練習屬於課程

R 的金融交易

檢視課程

練習說明

  • 使用 applyStrategy() 將你的策略(strategy.st)套用到你的投資組合(portfolio.st)。將結果存為物件 out
  • 執行必要的函式來記錄策略結果,包括 updatePortf(),並設定 daterange,以及 updateAcct()updateEndEq()
  • 根據這些資訊,試著找出最後一筆交易的日期。

動手互動練習

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

# Use applyStrategy() to apply your strategy. Save this to out
out <- applyStrategy(strategy = ___, portfolios = ___)

# Update your portfolio (portfolio.st)
updatePortf(___)
daterange <- time(getPortfolio(___)$summary)[-1]

# Update your account (account.st)
updateAcct(___, daterange)
updateEndEq(___)
編輯並執行程式碼