Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
Вчера в 19:27

Свечи. Класс Candle. Примитивы в OsEngine #3

Продолжаем связывать данные из терминалов на бирже с тем, как это видят роботы.

Сегодня поговорим про свечи. В Вашем вёб-терминале Вы видите их примерно так:

Свечи. Класс Candle. Примитивы в OsEngine #3 

1. Что такое Свечи?

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

В основном Вы видите на графике Японские свечи. Про них и поговорим ниже. Однако свечей есть великое множество и по ним у нас есть отдельная серия статей. За более глубокими знаниями сюда: https://smart-lab.ru/company/os_engine/blog/1028089.php 

 

2. Как биржа собирает Японские свечи?

Шаг первый. Выбор источника цен.

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

  1. Цены ленты сделок, совершаемых на бирже. В таком случае свечи строятся из таблицы обезличенных сделок.
  2. Цены стакана. Иногда свечи строят из центра стакана. В большинстве случаев это необходимость. Например, на некоторых рынках лента сделок недоступна (форекс) или ликвидность на рынке слишком мала, чтобы построить свечи из ленты сделок. А центр стакана, биды и аски, обычно есть.

 

Шаг второй. Выбор длинны свечи по времени.

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

5ть минут. 15 минут. 1 час. 1 день и т.д.

 

Шаг третий. Распределение цен внутри свечи.

Далее мы должны распределить цены внутри свечи, обозначив четыре точки: Open, High, Low, Close. Ака: Открытие, Вершина, Низина? Закрытие. Или в простонародье OHLC. Кроме того, если свечи строятся из данных ленты сделок, параллельно мы можем посчитать объём, который прошёл за период. Тогда это OHLCV.

Основные компоненты японской свечи:

Свечи. Класс Candle. Примитивы в OsEngine #3 

1. Open (Открытие): Цена инструмента в начале периода.

2. High (Максимум): Максимальная цена, достигнутая за период.

3. Low (Минимум): Минимальная цена, достигнутая за период.

4. Close (Закрытие): Цена инструмента в конце периода.

5. Volume (Объём): Объём, прошедший за период.

В результате формируется Японская свеча, показывающая основные четыре показателя (OHLC) за выбранный интервал времени.

Если свеча зелёная, значит закрытие (Close) было выше открытия (Open). Свеча растущая, и цена за период стала выше, чем была.

Если свеча красная, значит закрытие (Close) было ниже открытия (Open). Свеча падающая, и цена за период стала ниже, чем была.

В итоге Вы видите у себя в терминале свечной график:

Свечи. Класс Candle. Примитивы в OsEngine #3 

 

3. Класс Candle. Как выглядит свеча в OsEngine?

Каждая свеча с графика выше при попадании в OsEngine преобразуется в класс Candle. Либо же OsEngine сам собирает эти самые свечи из ленты сделок.

В проекте OsEngine на ГитХаб этот класс находится здесь: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Candles/Candle.cs

Внутри проекта это здесь:

Свечи. Класс Candle. Примитивы в OsEngine #3

Сам же класс, если Вы его откроете, выглядит следующим образом:

Свечи. Класс Candle. Примитивы в OsEngine #3

TimeStart – публичное свойство типа DateTime. Временная метка, которая указывает на время начала свечи.

Open – общедоступное поле типа decimal. Хранит цену открытия свечи.

High – общедоступное поле типа decimal. Хранит наивысшую цену, достигнутую в свече.

Close – общедоступное поле типа decimal. Хранит цену закрытия свечи.

Low – общедоступное поле типа decimal. Хранит наименьшую цену, достигнутую в свече.

Volume – общедоступное поле типа decimal. Хранит объем, проторгованный в рамках свечи.

State – общедоступное поле типа CandleState. Содержит информацию о текущем состоянии свечи. Возможны следующие варианты:

  • Finished – свеча является завершенным объектом.
  • Started – объект создан и находится в процессе формирования.
  • None – состояние не определенно.

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 формирует строковое представление свечи для дальнейшего размещения в хранилище.

 

4. Как можно использовать свечи в роботах на OsEngine?

Большинство роботов в публичных примерах OsEngine так или иначе используют свечи в качестве сигналов на вход или выход из позиции.

Ниже будут ссылки на свежие примеры:

  1. Три солдата. Классический и самый простой пример.
  2. Три солдата и три вороны, адаптирующиеся к усреднённой внутридневной волатильности.
  3. Пин Бар паттерн для широкого рынка.
  4. ПампДамп детектор, определяющий быстрые движения на рынке за счёт анализа нестандартных свечных серий.

Что касается того, как именно в коде можно подписаться на обновление графика свечей, то в первом примере выше (Три солдата) это сделано так:

Свечи. Класс Candle. Примитивы в OsEngine #3 

  1. Робот ThreeSoldier в проекте.
  2. Подписываемся на событие завершения свечи.
  3. Обработчик события завершения свечи. В него приходит массив свечей, который как-то можно анализировать.

Удачных алгоритмов!

Комментарии открыты для друзей!

Свечи. Класс Candle. Примитивы в OsEngine #3

OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка 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

Свечи. Класс Candle. Примитивы в OsEngine #3

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн