Функция AssignPriceColor в ThinkScript

Синтаксис функции AssignPriceColor:

AssignPriceColor(CustomColor color);

color – Цвет

Описание функции AssignPriceColor:

Данная функция предназначена для окрашивания ценового графика, то есть самих свечей, если у вас выбран свечной график.

Использование функции простое, пример ниже.

AssignPriceColor(Color.BLACK);

Этот код окрасит весь наш график в черный цвет.

Так же допустимо использовать и не сплошной цвет, а добавить условия.

Давайте напишем индикатор, в котором график выше скользящей средней будет зеленым, а ниже скользящей средней будет красный.

Нам понадобятся: собственно, сама скользящая средняя, два цвета для окрашивания графика и условия для окрашивания.

plot avg = Average(close, 48);
avg.SetDefaultColor(Color.BLACK);
avg.DefineColor("price UP SMA", Color.DARK_GREEN);
avg.DefineColor("price DOWN SMA", Color.DARK_RED);
AssignPriceColor(if close > avg Then avg.Color("price UP SMA") else avg.Color("price DOWN SMA"));

Как видите мы создали скользящую среднюю, по умолчанию окрасили ее в черный цвет, и она цвет не меняет. Создали два цвета для окрашивания графика, что бы пользователь мог их изменить. Использовали функцию AssignPriceColor для окрашивания ценового графика с условиями.

Теперь у нас сама скользящая средняя черная, а график красный и зеленый, в зависимости от того где закрылась свечка, над скользящей средней или под ней.

Обратите внимание на то, что цвет по умолчанию теперь изменить нельзя в настройках индикатора. Если хотите изменять цвет скользящей средней, то создайте еще один цвет, например, с именем SMA и установите его по умолчанию… Сделали? Ну что теперь меняется цвет? – Думаю нет, конечно, происходит тоже самое что и с Globals цветами. При изменении цвета сама линия цвет не меняет. Это значит, что установка цвета по умолчанию нам не подходит. Придется воспользоваться другой функцией, давайте используем функцию AssignValueColor.

plot avg = Average(close, 48);
avg.DefineColor("price UP SMA", Color.DARK_GREEN);
avg.DefineColor("price DOWN SMA", Color.DARK_RED);
avg.DefineColor("SMA", Color.BLACK);
#avg.SetDefaultColor(avg.Color("simple")); # - Этот вариант не работает
avg.AssignValueColor(avg.Color("SMA")); # - Используем значит такой вариант
AssignPriceColor(if close > avg Then avg.Color("price UP SMA") else avg.Color("price DOWN SMA"));

Теперь у нас имеется три цвета и все работает.

Постоянная ссылка на это сообщение: https://k-pavel.ru/funkcija-assignpricecolor-v-thinkscript/

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Subscribe  
Подписаться на