R/quantmod: как указать цвет полос Боллинджера?

В более общем плане это может быть как изменить цвета темы? Или, может быть, цвета ТА не контролируются темой?

Это создает полосы Боллинджера с красивым эффектом облака:

chartSeries(bars, theme="white")
addBBands()

(См. пример того, как это выглядит (внизу))

В следующем примере эффект облака темно-серый, поэтому почти незаметен.

chartSeries(bars, theme="black")
addBBands()

Как сделать его, скажем, красивым ярко-красным с ярко-фиолетовым для верхней и нижней линий? (Да, я знаю, -1 за цветовую схему)

Я считаю, что смогу указать цвет из 8 шестнадцатеричных цифр, чтобы указать полупрозрачность. Но могу ли я сделать что-нибудь более экзотическое? Например. было бы неплохо использовать градиент и иметь #ff0000 в центре, плавно переходя к #330000 в верхней и нижней линиях. Есть ли поддержка градиента в диаграммах quantmod?


person Darren Cook    schedule 08.12.2011    source источник


Ответы (2)


Взгляд на chartTheme показывает, что градиент невозможен. , но можно указать цвета вверх/вниз, а также соответствующие цвета границ. Просто определите свою собственную тему в соответствии с примерами. Вы можете начать с предопределенной темы и изменить некоторые отдельные параметры.

person Benjamin    schedule 12.12.2011
comment
Спасибо Бенджамин; это указало мне правильное направление (мои последующие открытия находятся в отдельном ответе). - person Darren Cook; 14.12.2011

Обобщая ответ Бенджамина и мои собственные знания, вот пример:

#bars is an XTS object, OHLC data
library(quantmod)

chartSeries(bars)
addBBands(n=20,sd=2)
addBBands(n=50,sd=1)

Выше показаны две полосы Боллинджера в цветовой гамме по умолчанию. Следующее изменит их на полупрозрачный красный (т.е. красный сильнее там, где они оба присутствуют):

t=chartTheme()
t$BBands$fill="#ff666633"   #20% red (i.e. hex 33 is the transparency)
reChart(theme=t)

Из моего изучения источника это должно было сработать, чтобы изменить цвета линий:

t$BBands$col=c('red','blue','green')

Но это не так. Однако вы можете изменить верхний/нижний цвета на один и тот же цвет с помощью:

t$BBands$col='blue'
reChart(theme=t)

А вот как сделать то же самое с более новой функцией chart_series(), и обратите внимание, что вы можете установить цвета линий индивидуально (примечание. Насколько я вижу, здесь нет функции reChart):

t=chart_theme()
t$bbands$col$fill="#ff000033"
t$bbands$col$upper='red'
t$bbands$col$lower='green'
t$bbands$col$ma='blue'
chart_Series(bars,theme=t)
add_BBands(n=50,sd=1)
add_BBands(n=20,sd=2)

Насколько я знаю, невозможно использовать разные цветовые схемы для каждой из двух полос Боллинджера. Даже такое изменение цветовой схемы не помогает, так как после второй команды оба перерисовываются новыми цветами!

obj=chart_Series(bars)
add_BBands(n=50,sd=1)
obj$Env$theme$bbands$col$fill="#00ff0033"
add_BBands(n=20,sd=2)
person Darren Cook    schedule 14.12.2011