Продолжаем связывать данные из терминалов на бирже с тем, как это видят роботы.
Сегодня поговорим про свечи. В Вашем вёб-терминале Вы видите их примерно так:
Свеча представляет собой вертикально расположенный прямоугольник, по центру от которого вверх и вниз выступают линии, именуемые тенями. По сути каждая свеча является агрегатором информации о поведении цены за определенный интервал времени.
В основном Вы видите на графике Японские свечи. Про них и поговорим ниже. Однако свечей есть великое множество и по ним у нас есть отдельная серия статей. За более глубокими знаниями сюда: https://smart-lab.ru/company/os_engine/blog/1028089.php
Шаг первый. Выбор источника цен.
Для цен, из которых можно формировать свечи, берут несколько различных типов данных. Это могут быть:
Шаг второй. Выбор длинны свечи по времени.
Это называется выбор Таймфрейма. На английском TimeFrame. Это промежуток времени, за который мы будем распределять цены инструмента внутри свечи.
5ть минут. 15 минут. 1 час. 1 день и т.д.
Шаг третий. Распределение цен внутри свечи.
Далее мы должны распределить цены внутри свечи, обозначив четыре точки: Open, High, Low, Close. Ака: Открытие, Вершина, Низина? Закрытие. Или в простонародье OHLC. Кроме того, если свечи строятся из данных ленты сделок, параллельно мы можем посчитать объём, который прошёл за период. Тогда это OHLCV.
Основные компоненты японской свечи:
1. Open (Открытие): Цена инструмента в начале периода.
2. High (Максимум): Максимальная цена, достигнутая за период.
3. Low (Минимум): Минимальная цена, достигнутая за период.
4. Close (Закрытие): Цена инструмента в конце периода.
5. Volume (Объём): Объём, прошедший за период.
В результате формируется Японская свеча, показывающая основные четыре показателя (OHLC) за выбранный интервал времени.
Если свеча зелёная, значит закрытие (Close) было выше открытия (Open). Свеча растущая, и цена за период стала выше, чем была.
Если свеча красная, значит закрытие (Close) было ниже открытия (Open). Свеча падающая, и цена за период стала ниже, чем была.
В итоге Вы видите у себя в терминале свечной график:
Каждая свеча с графика выше при попадании в OsEngine преобразуется в класс Candle. Либо же OsEngine сам собирает эти самые свечи из ленты сделок.
В проекте OsEngine на ГитХаб этот класс находится здесь: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Candles/Candle.cs
Внутри проекта это здесь:
Сам же класс, если Вы его откроете, выглядит следующим образом:
TimeStart – публичное свойство типа DateTime. Временная метка, которая указывает на время начала свечи.
Open – общедоступное поле типа decimal. Хранит цену открытия свечи.
High – общедоступное поле типа decimal. Хранит наивысшую цену, достигнутую в свече.
Close – общедоступное поле типа decimal. Хранит цену закрытия свечи.
Low – общедоступное поле типа decimal. Хранит наименьшую цену, достигнутую в свече.
Volume – общедоступное поле типа decimal. Хранит объем, проторгованный в рамках свечи.
State – общедоступное поле типа CandleState. Содержит информацию о текущем состоянии свечи. Возможны следующие варианты:
GetPoint – публичный метод в качестве параметра принимает строку с типом запрашиваемых данных. Допустимы следующие строки: «Close», «High», «Low», «Open», «Median», «Typical». Возвращает метод соответствующее значение свечи.
Trades – публичное свойство. Возвращает список всех сделок, проторгованных в этой свече.
IsUp – публичное свойство типа bool. Указывает, является ли свеча растущей. Если цена закрытия свечи больше цены открытия, возвращается истина. Иначе ложь.
IsDown – публичное свойство типа bool. Указывает, является ли свеча падающей. Если цена закрытия свечи меньше цены открытия, возвращается истина. Иначе ложь.
IsDoji – публичное свойство типа bool. Указывает, является ли свеча доджи. Если цена закрытия свечи равна цене открытия, возвращается истина. Иначе ложь.
ShadowTop – публичное свойство типа decimal возвращает размер верхней тени свечи.
ShadowBottom – публичное свойство типа decimal возвращает размер нижней тени свечи.
ShadowBody – публичное свойство типа decimal возвращает размер всей свечи с учетом теней.
Body – публичное свойство типа decimal возвращает размер тела свечи от открытия до закрытия.
BodyPercent – публичное свойство типа decimal возвращает размер тела свечи в процентах по отношению к открытию.
Center – публичное свойство типа decimal возвращает цену середины свечи.
Volatility – публичное свойство типа decimal рассчитывает и возвращает значение волатильности свечи.
SetCandleFromString – общедоступный метод принимает строку, содержащую данные по всем полям, парсит ее и инициализирует состояние объекта.
ToolTip – публичное свойство типа string формирует строковое представление свечи для отображения в качестве всплывающей информации на графике при наведении курсора мыши на свечу.
StringToSave – публичное свойство типа string формирует строковое представление свечи для дальнейшего размещения в хранилище.
Большинство роботов в публичных примерах OsEngine так или иначе используют свечи в качестве сигналов на вход или выход из позиции.
Ниже будут ссылки на свежие примеры:
Что касается того, как именно в коде можно подписаться на обновление графика свечей, то в первом примере выше (Три солдата) это сделано так:
Удачных алгоритмов!
Комментарии открыты для друзей!
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php