始める無料で始める

戦略を実行する

quantstratで戦略を作成できたこと、おめでとうございます!復習すると、この戦略は3つの異なるインジケーターと5つの異なるシグナルを使います。DVO_2_126の閾値が20未満であり、かつSMA50SMA200より大きいことがエントリー条件です。DVO_2_126が80を上抜ける、またはSMA50SMA200を下抜けると戦略は売却します。

この戦略を正しく機能させるため、以下の5つのシグナルを指定しました。

  1. SMA50SMA200より大きいことを判定するsigComparison;
  2. crossFALSEにして、DVO_2_126が20未満であることを判定するsigThreshold;
  3. それらを結び付け、crossTRUEに設定するためのsigFormula;
  4. SMA50SMA200より小さいことを判定するsigCrossover;
  5. crossTRUEにして、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(___)
コードを編集して実行