Объединение сигналов — 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 = "___")