LoslegenKostenlos loslegen

Deine Strategie ausführen

Glückwunsch zur Erstellung einer Strategie in quantstrat! Zur Wiederholung: Deine Strategie verwendet drei separate Indikatoren und fünf separate Signale. Die Strategie verlangt, dass sowohl der Schwellenwert des Indikators DVO_2_126 unter 20 liegt als auch die SMA50 größer ist als die SMA200. Die Strategie verkauft, wenn DVO_2_126 über 80 kreuzt oder die SMA50 unter die SMA200 fällt.

Damit diese Strategie korrekt funktioniert, hast du fünf separate Signale definiert:

  1. sigComparison für SMA50 größer SMA200;
  2. sigThreshold mit cross auf FALSE für DVO_2_126 kleiner 20;
  3. sigFormula, um beide zu verknüpfen, und dabei cross auf TRUE setzen;
  4. sigCrossover mit SMA50 kleiner SMA200; und
  5. sigThreshold mit cross auf TRUE für DVO_2_126 größer 80.

Die Strategie investiert 100.000 $ (dein initeq) in jeden Trade und kann geringes Cost Averaging in Dollar aufweisen, wenn DVO_2_126 um 20 pendelt (der Effekt ist im Vergleich zur Anfangsallokation jedoch meist vernachlässigbar).

In diesem letzten Kapitel lernst du, wie du die tatsächlichen Ergebnisse deines Portfolios ansiehst. Zuerst musst du jedoch, um Ergebnisse zu erzeugen, deine Strategie ausführen und etwas Boilerplate-Code ergänzen, damit quantstrat alles erfasst. Den Code in dieser Übung wirst du dir künftig kopieren und einfügen.

Diese Übung ist Teil des Kurses

Finanzhandel in R

Kurs anzeigen

Anleitung zur Übung

  • Verwende applyStrategy(), um deine Strategie (strategy.st) auf dein Portfolio (portfolio.st) anzuwenden. Speichere das Ergebnis im Objekt out.
  • Führe die erforderlichen Funktionen aus, um die Ergebnisse deiner Strategie zu erfassen, einschließlich updatePortf() und Setzen des daterange sowie updateAcct() und updateEndEq().
  • Versuche auf Basis dieser Informationen, das Datum des letzten Trades zu finden.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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(___)
Code bearbeiten und ausführen