Вывод дополнительной информации в ThinkScript

Как вам уже известно индикатор – это программа получает одни данные, методом расчета, по написанным формулам, преобразует эти данные и выводит на график уже в другом виде. Основным способом вывода является какая-либо диаграмма на графике, линия, точки, гистограмма … Но есть еще несколько способов вывести информацию.

Способ первый.

Вывод сообщения в верхний левый угол графика.

Для этого используется функция AddLabel

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

AddLabel(boolean visible, Any text, CustomColor color);

boolean visible – условие отображать сообщение или нет.

Any text – Текст который необходимо отобразить.

CustomColor color – Цвет сообщения. (по умолчанию красный)

Если имеется параметр по умолчанию, это значит, что параметр можно опустить.

Напишем простой пример, выведем сообщение на графике и напишем в нем текст ПРИВЕТ.

AddLabel(yes, “ПРИВЕТ”);

Теперь будем разбираться. Сложного тут ничего нет. Первый параметр это условие, пишем yes что значит условие выполняется, а значит сообщение показать, причем показывать его всегда. Второй параметр наш текст. Вот и все.

Что еще нужно знать, так это как вывести несколько слов. Можно просто в кавычках написать несколько слов.

AddLabel(yes, “ПРИВЕТ МИР”);

Но мы разберемся с тек как соединять отдельные слова, это нам пригодится чуть позже.

AddLabel(yes, “ПРИВЕТ” + “ “ + “МИР”);

Этот код выводит тоже самое что и выше, но как видите все слова мы соединили символом “+”, это нам пригодится, если мы хотим вывести не просто слова, а еще и значения переменных.

Давайте выведем в сообщения цену закрытия свечки.

AddLabel(yes, “Цена закрытия = ” + close);

Теперь в сообщении у нас написано, например, так “Цена закрытия = 1.10457”

Так мы можем составить любое предложение и использовать разные переменные.

def oh = open – close;
AddLabel(yes, “Цена закрытия = ” + close + “ Цена открытия = ” + open + “ Открытие - Закрытие = ” + oh);

Как видите можно писать и свои переменные.

Иногда нам нет необходимости всегда видеть сообщение, а только если происходит что-то интересное.

AddLabel(close > 1.15, “Цена закрытия = ” + close + “ Цена открытия = ” + open + “ Открытие - Закрытие = ” + oh);

Теперь сообщение будет только если цена закрытия поднимется выше 1,15.

Ну и последнее что мы сделаем, это добавим параметр цвет, который просто опускали.

AddLabel(yes, “Цена закрытия = ” + close + “ Цена открытия = ” + open + “ Открытие - Закрытие = ” + oh, Color.BLACK);

Теперь сообщение черное, а не красное.

И вот что еще рассмотрим. Давайте попробуем менять цвет сообщения, а не просто его назначим.

def oh = open – close;
AddLabel(yes, “Цена закрытия = ” + close + “ Цена открытия = ” + open + “ Открытие - Закрытие = ” + oh, if oh > 0 Then Color.BLACK else Color.DARK_RED);

В этом примере если открытие минус закрытие больше 0, то сообщение черное, иначе темно-красное.

Способ второй.

Использование функции AddChartBubble.

Эта функция позволяет выводить текст на каждой свечке.

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

AddChartBubble(boolean time condition, double price location, Any text, CustomColor color, boolean up);

boolean time condition – Условие для отображения.

double price location – Цена на которой отображать сообщение. Это можно представить, как координата Y на графике. Координата X – это свечка, а сообщение может отображаться внизу, вверху, и где угодно, вот тут мы указываем цену. Например, можем написать high, значит отображается на каждой свечки и на уровне цены high этой свечки.

Any text – Текст сообщения.

CustomColor color – Цвет сообщения. (по умолчанию красный)

boolean up – У сообщения имеется указатель. Какое это сообщение, верхнее или нижнее. (по умолчанию yes)

Напишем такой пример.

AddChartBubble(yes, high, close);

Теперь на каждой свечке, на уровне high, написана цена закрытия этой свечки.

Те же правила применяются и тут, можно склеивать строки, использовать условия…

Допишем параметры, которые не использовали, это цвет и изменим сообщение с верхнего на нижнее.

AddChartBubble(yes, low, close, Color.CYAN, no);

Отобразили нижнее сообщение и расположили его на low свечки.

Способ третий.

Нарисовать вертикальную линию, функция AddVerticalLine.

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

AddVerticalLine(boolean visible, Any text, CustomColor color, int stroke);

boolean visible – Условие для отображения.

Any text – Текст. (по умолчанию «»)

CustomColor color – Цвет линии. (по умолчанию красная)

int stroke – Стиль линии. (по умолчанию Curve.SHORT_DASH)

AddVerticalLine(close > open AND close[1] > open[1] AND close[3] > open[3], "РОСТ");

Этот пример нарисует вертикальную линию, если встретит 3 растущих свечки подряд и напишет на линии слово «РОСТ».

Изменим цвет и тип линии

AddVerticalLine(close > open AND close[1] > open[1] AND close[3] > open[3], "РОСТ", Color.BLUE, Curve.FIRM);

Так же мы можем использовать и дополнительные условия, как и в примерах выше.

Способ четвертый.

Использование облаков, функция AddCloud.

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

AddCloud(IDataHolder data1, IDataHolder data2, CustomColor color1, CustomColor color2);

IDataHolder data1 – Первое значение для сравнения

IDataHolder data2 – Второе значение для сравнения

CustomColor color1 – Цвет где data1 больше data2 (по умолчанию желтый)

CustomColor color2 – Цвет где data1 меньше data2 (по умолчанию красный)

Эта функция рисует облака на графике в зависимости от условия.

AddCloud(open, close, color.RED, color.GREEN);

Этот пример рисует красные облака пока цена падает и зеленые, когда растет.

Более наглядно рисует облака следующий пример

AddCloud(Average(close,20), Average(close,50), Color.VIOLET, Color.PINK);

Как вы уже догадались, это просто 2 линии на графике, а между этими линиями пространство закрашивается в указанные цвета, в зависимости от того какая линия выше. Этот пример рисует 2 скользящие средние разного периода и закрашивает диапазон между линиями.

На этом мы закончим эту главу. В результате у нас получился следующий индикатор.

def oh = open – close;
AddLabel(yes, “Цена закрытия = ” + close + “ Цена открытия = ” + open + “ Открытие - Закрытие = ” + oh, if oh > 0 Then Color.BLACK else Color.DARK_RED);
AddChartBubble(yes, low, close, Color.CYAN, no);
AddVerticalLine(close > open AND close[1] > open[1] AND close[3] > open[3],  "РОСТ", Color.BLUE, Curve.FIRM);
AddCloud(Average(close,20), Average(close,50), Color.VIOLET, Color.PINK);

 

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

avatar
1 Цепочка комментария
0 Ответы по цепочке
1 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
1 Авторы комментариев
Дмитрий Авторы недавних комментариев

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

  Subscribe  
Новые Старые Популярные
Подписаться на
Дмитрий
Гость
Дмитрий

Привет. В третьем способе ошибка: вместо [3] надо [2]