НачатьНачать бесплатно

Запуск стратегии

Поздравляем с созданием стратегии в 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(___)
Редактировать и запускать код