Створіть власний індикатор — I
Досі ви використовували повністю заздалегідь написані індикатори через функцію add.indicator(). Тепер час написати й застосувати власний індикатор.
Ваша функція індикатора обчислюватиме середнє двох різних індикаторів, щоб утворити RSI 3,5. Ось як:
- Прийміть ціновий ряд.
- Обчисліть RSI 3.
- Обчисліть RSI 4.
- Поверніть середнє між RSI 3 і RSI 4.
Такий RSI можна вважати RSI 3,5, адже він довший за RSI 3 і коротший за RSI 4. Усередненням цей індикатор враховує вплив даних чотириденної давнини, водночас реагує швидше, ніж простий RSI 4, і зменшує шум як RSI 3, так і RSI 4.
У цій вправі ви створите функцію для цього індикатора під назвою calc_RSI_avg() і додасте її до своєї стратегії strategy.st. Усі потрібні пакети вже завантажено для вас.
Ця вправа є частиною курсу
Фінансовий трейдинг в R
Інструкції до вправи
- Створіть і назвіть функцію
calc_RSI_avgіз трьома аргументамиprice,n1таn2саме в такому порядку. - Обчисліть RSI з вікном
n1та назвіть йогоRSI_1. - Обчисліть RSI з вікном
n2та назвіть йогоRSI_2. - Обчисліть середнє між
RSI_1іRSI_2. Назвіть йогоRSI_avg. - Встановіть назву стовпця для
RSI_avgякRSI_avgза допомогою colnames() і повернітьRSI_avg. - Додайте цей індикатор до своєї стратегії з параметрами
n1 = 3іn2 = 4. Позначте цей індикатор якRSI_3_4.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Write the calc_RSI_avg function
calc_RSI_avg <- function(price, n1, n2) {
# RSI 1 takes an input of the price and n1
RSI_1 <- RSI(price = price, n = ___)
# RSI 2 takes an input of the price and n2
RSI_2 <- RSI(price = price, n = ___)
# RSI_avg is the average of RSI_1 and RSI_2
RSI_avg <- (___ + ___)/2
# Your output of RSI_avg needs a column name of RSI_avg
colnames(RSI_avg) <- "___"
return(___)
}
# Add this function as RSI_3_4 to your strategy with n1 = 3 and n2 = 4
add.indicator(strategy.st, name = ___, arguments = list(price = quote(Cl(mktdata)), n1 = ___, n2 = ___), label = ___)