ПочатиПочніть безкоштовно

Запуск вашої стратегії

Вітаємо зі створенням стратегії в quantstrat! Нагадаємо: ваша стратегія використовує три окремі індикатори та п'ять окремих сигналів. Вона вимагає, щоб поріг індикатора DVO_2_126 був нижче 20 і водночас SMA50 був вищим за SMA200. Стратегія продає, коли DVO_2_126 перетинає рівень 80 знизу вгору або коли SMA50 перетинає SMA200 зверху вниз.

Щоб стратегія працювала, ви задали п'ять сигналів:

  1. sigComparison для перевірки, що SMA50 більший за SMA200;
  2. sigThreshold з cross = FALSE для DVO_2_126 менше 20;
  3. sigFormula, щоб поєднати їх і встановити cross = TRUE;
  4. sigCrossover для випадку, коли SMA50 менший за SMA200;
  5. sigThreshold з cross = 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(___)
Редагувати та запускати код