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

Объединение сигналов — II

В предыдущем упражнении вы приближённо воспроизвели сигнал sigFormula, сравнивая значения двух других сигналов. В этом финальном упражнении вы пойдёте дальше и воспользуетесь функцией sigFormula() для генерации сигнала типа sigFormula.

Цель упражнения проста. Вы хотите входить в позицию в тот момент, когда оба сигнала — longfilter и longthreshold — одновременно принимают значение true. Логика следующая: не нужно открывать позицию при каждом выполнении условий, но нужно удерживать её во время отката в условиях восходящего тренда.

Создать функцию sigFormula так же просто, как написать аргумент оператора "if" в базовом R внутри функции formula(). В данном случае вам нужно создать сигнал с меткой longentry, который принимает значение true, когда оба сигнала — longfilter и longthreshold — одновременно пересекают порог в сторону true.

Выполнив это упражнение, вы получите полное представление о том, как работают сигналы в quantstrat!

Это упражнение является частью курса

Финансовый трейдинг на R

Посмотреть курс

Инструкции к упражнению

  • Используйте add.signal(), чтобы создать сигнал sigFormula, который принимает значение true, когда оба сигнала longfilter и longthreshold истинны.
  • Установите cross равным TRUE.
  • Присвойте новому сигналу метку longentry.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Add a sigFormula signal to your code specifying that both longfilter and longthreshold must be TRUE, label it longentry
add.signal(strategy.st, name = "___",
           
           # Specify that longfilter and longthreshold must be TRUE
           arguments = list(formula = "___ & ___", 
                            
                            # Specify that cross must be TRUE
                            cross = ___),
           
           # Label it longentry
           label = "___")
Редактировать и запускать код