Добавление пользовательского индикатора в ChartSeries Quantmod - PullRequest
0 голосов
/ 27 ноября 2018

Я создал индикатор люстры.Функция:

chandlier_exit_long = function(x,k = 3,  
 n = 22){
 high = rollapplyr(Hi(x), width = n, FUN 
 = max)
 atr = ATR(x, n)[, "atr"]
  z = high - atr
 names(z) = "Chandelier_Exit_Long"
 return(z)
}

Я использовал функцию Quantmod newTA для создания:

  addChandExitLong = newTA(FUN = 
  chandlier_exit_long, preFUN = OHLC, col 
  = "red")

Я получаю сообщение об ошибке enter image description here

1 Ответ

0 голосов
/ 30 ноября 2018

Это предупреждение , а не ошибка.Хотя это указывает на то, что что-то не так.Проблема в том, что rollapplyr не заполняется / не заполняется NA по умолчанию.Поэтому вам нужно изменить свою функцию на:

chandlier_exit_long = function(x, k = 3, n = 22){
  high = rollapplyr(Hi(x), n, FUN = max, fill = NA)  # add `fill = NA`
  atr = ATR(x, n)[, "atr"]
  z = high - atr
  names(z) = "Chandelier_Exit_Long"
  return(z)
}

Или вы можете заменить вызов rollapplyr() на runMax(Hi(x), n).

...