戦略を実行する
quantstratで戦略を作成できたこと、おめでとうございます!復習すると、この戦略は3つの異なるインジケーターと5つの異なるシグナルを使います。DVO_2_126の閾値が20未満であり、かつSMA50がSMA200より大きいことがエントリー条件です。DVO_2_126が80を上抜ける、またはSMA50がSMA200を下抜けると戦略は売却します。
この戦略を正しく機能させるため、以下の5つのシグナルを指定しました。
SMA50がSMA200より大きいことを判定するsigComparison;crossをFALSEにして、DVO_2_126が20未満であることを判定するsigThreshold;- それらを結び付け、
crossをTRUEに設定するためのsigFormula; SMA50がSMA200より小さいことを判定するsigCrossover;crossをTRUEにして、DVO_2_126が80より大きいことを判定するsigThreshold。
この戦略では、各トレードに$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(___)