R / quantmod: как указать цвет полос Боллинджера? - PullRequest
3 голосов
/ 08 декабря 2011

Это может быть в более общем смысле. Как изменить цвета темы?Или, может быть, цвета TA не контролируются темой?

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

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

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

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

2 голосов
/ 14 декабря 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)
...