Форматирование выходных данных в ThinkScript

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

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

Начнем с самого простого, напишем индикатор SMA (простая скользящая средняя).

Вы помните, что зарезервированное слово plot сообщает нашему индикатору не просто объявить переменную sma, а значения этой переменной отобразить на графике в виде точек. Так наш индикатор и поступит, а вот вид этих точек, а также линию, которая соединит все эти точки мы настраиваем отдельно.

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

Настройка линий индикатора ThinkOrSwim

Настройка линий индикатора ThinkOrSwim

Открываете настройки индикатора (2 клика на индикаторе) и видите такую картину как выше. Имеются наши 2 переменные price и length – это входные параметры индикатора. Ниже развернута вкладка Plot, которая содержит переменные объявленные с помощью зарезервированного слова plot, эти настройки можно вносить вручную, а можно сразу запрограммировать, что бы при добавлении все уже было настроено.

Настройка plot

Value – Данные в переменной. Если мы хотим вывести числовую переменную, то есть содержащую много разных чисел (1.15; 1.20; 1.24; 1.18; 1.30 …) тогда нужно выбрать Numerical. Если наша переменная содержит только 0 или 1, например, наш индикатор должен рисовать стрелки, а стрелка либо есть, либо ее нет, значит и переменная содержит либо 1, либо 0, тогда нужно выбрать Boolean.

Draw as – тип линии. Это могут быть, точки, квадратики, треугольники, палочки горизонтальные, гистограммы и т. д. выбирайте то, что больше подходит.

Style – стиль линии. Сплошная или пунктир, так же выбираете сами что больше подходит.

Width – ширина или толщина линии.

Color – цвет линии.

Теперь все эти настройки будем программировать.

Value и Draw as – эти два параметра я объединил потому что настройка их производится с помощью одной и той же функции SetPaintingStrategy.

Итак, допишем в наш код следующую строку

Настройка любой переменной начинается с самого имени переменной, пишем имя переменной sma (только если она объявлена с помощью слова plot), потом ставим точку и пишем функцию, а в функцию передаем нужный нам параметр. Для скользящей средней лучше всего подойдет параметр линия (PaintingStrategy.LINE).

Параметры, которые принимает функция SetPaintingStrategy:

Обратите внимание на то, где находятся стрелки, они находятся именно на уровне значение которое имеет переменная sma. Линия напоминает скользящую среднюю.

А вот тут стрелки уже не рисуют нам линию скользящей средней. Дело в том, что это тип BOOLEAN, а это значит, что стрелка либо есть, либо ее нет. Так как наша переменная имеет значения на каждой свечке, то и стрелки есть на всех свечках. Сами стрелки располагаются так. Стрелки вниз — чуть выше high, стрелки вверх — чуть ниже low, точки — на цене закрытия свечки.

Горизонтальная линия не на весь график слева на право, а лишь только на ширину свечки, в отличии от DASHES эти линии немного шире.

HISTOGRAM – для скользящей средней совсем не подходит, но этот пример я показываю для того чтобы было видно, как выглядит гистограмма в ThinkOrSwim.

Обратите внимание, SQUARED_HISTOGRAM немного шире чем HISTOGRAM, что дает перекрытие.

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

Style – стиль линии устанавливается с помощью функции SetStyle.

Допишем наш код:

Будет простая линия.

Параметры, которые может принимать функция SetStyle:

Width — Теперь установим ширину или толщину линии с помощью функции SetLineWeight.

Установим самую тонкую линию.

Функция SetLineWeight может принимать только числа от 1 до 5, где 1 самая тонкая линия, а 5 самая толстая.

Color – цвет линии можно установить с помощью функции SetDefaultColor.

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

Настройка цвета в thinkScript обширная тема, так что тут объяснил только как установить цвет по умолчанию, в одной из следующих глав рассмотрим цвет отдельно более подробно.

Рассмотрим еще пару функций. Бывает необходимо скрыть некоторые линии на графике и для этого есть 2 функции hide и SetHiding.

Первая функция может просто скрыть линию, если честно я не очень понимаю зачем она, но она есть. Если вы ее напишите линия исчезнет с графика.

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

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

Для примера допишем такой код

Не переживайте что не понятны функции, это все мы разберем постепенно. Опишу словами что они делают. AbsValue – возвращает абсолютное значение, то есть отбрасывает знак минус, к примеру 10 – 15 = -5 и 15 – 10 = 5 а AbsValue(10-15) = 5 и AbsValue(15-10) = 5. Функция TickSize возвращает тик того инструмента, на который установлен индикатор. Например, EUR/USD тик равен 0.00001. В итоге получаем что если цена от нашей SMA уйдет на 50 или больше тиков в любую сторону, то вся линия исчезнет.

Хочу особое внимание обратить на слово «вся», да, именно так, исчезает вся линия целиком, а не участок на графике, но как только цена вернется и окажется поблизости к sma. То вся линия снова появится.

Функции, которая бы скрыла лишь часть линии, нет.

В итоге у нас получился вот такой индикатор

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

avatar

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

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