rss

Профиль компании

Блог компании Os_Engine

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3

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

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3 

На текущий момент у нас есть робот, который видит OsEngine и в который можно подключить данные:



( Читать дальше )

Ваш первый робот на моноисточнике. Быстрый старт в программировании OsEngine #2

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

Ваш первый робот на моноисточнике. Быстрый старт в программировании OsEngine #2 

Шаг 1. Создаём в проекте класс MyFirstSimpleBot.



( Читать дальше )

Быстрый старт в программирование роботов на OsEngine. Введение и оглавление. #1

Это введение по минисерии статей про то, как быстро научиться делать роботов для OsEngine. Здесь не будет долгих и занудных объяснений всего и вся (это будет чуть позже в этом блоге или было раньше). А в данной серии мы сконцентрируемся на практике.

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

Быстрый старт в программирование роботов на OsEngine. Введение и оглавление. #1

1. Что в сборнике?

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

  1. Источник с одним инструментом. BotTabSimple. В конце у Вас будет робот для моноторговли одного инструмента.
  2. Источник с индексом. BotTabIndex. Вы поймёте, как добавить в своего робота автоиндекс, чтобы понимать, куда идёт рынок в данный момент в целом, и улучшать прибыльность своих стратегий.


( Читать дальше )

OsEngine изменения. 2774 – 2839. Импортозамещаем.

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

OsEngine изменения. 2774 – 2839. Импортозамещаем.

Приближаемся к продакшен-реди версии. Около нового года можно будет об этом говорить. Поэтому фокус смещается на инструкции и удобство работы с проектом для начинающих.

 

МегаГАЙД по OsEngine, алготрейдингу и программированию.

Сам ГАЙД здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php

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

Новые статьи за месяц:

1)      Облегчение загрузки ЦП на удалёнке: https://smart-lab.ru/company/os_engine/blog/1033734.php

2)      Слой создания свечей. CandleFactory: https://smart-lab.ru/company/os_engine/blog/1033931.php

3)      Слой создания свечей. Реализации и их использование в проекте: https://smart-lab.ru/company/os_engine/blog/1034352.php



( Читать дальше )

Позиции роботов. Класс Position. Примитивы в OsEngine #9

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

На картинке ниже, изображена разница между позицией на бирже (PositionOnBoard) и позициями (Positioin) у роботов. Из этой картинки Вы должны понять, что у роботов по одному инструменту может быть много позиций (и даже в разные стороны), а в портфеле на бирже она всегда одна:

Позиции роботов. Класс Position. Примитивы в OsEngine #9 

1. Что такое позиция у робота?

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

Когда робот хочет выйти из какого-то актива, то робот должен закрыть позицию.

Для тех, кто торговал много лет только в Quik, данная концепция болезненна. Однако, это пришло в OsEngine из WealthLab, а это является мировым стандартом написания роботов уже много лет. Придётся очень плотно работать с этим классом и привыкать к такой абстракции.



( Читать дальше )

Биржевой портфель и позиции на бирже. Класс Portfolio и PositionOnBoard. Примитивы в OsEngine #8

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

Сегодня поговорим про портфель на бирже. Это Ваш «кошелёк», на котором хранятся деньги (активы) и позиции по акциям и деривативам. В вёб-терминале это выглядит как-то так:

Биржевой портфель и позиции на бирже. Класс Portfolio и PositionOnBoard. Примитивы в OsEngine #8

1. Что такое портфель на бирже?

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

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

 

2. Класс Portfolio в OsEngine.

Внутри терминала OsEngine данная сущность хранится в классе Portfolio.

На ГитХаб данный класс хранится по адресу: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Entity/Portfolio.cs



( Читать дальше )

Биржевой инструмент. Класс Security. Примитивы в OsEngine #7

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

В терминале мы видим их где-то здесь:

Биржевой инструмент. Класс Security. Примитивы в OsEngine #7

1. Что такое биржевой инструмент?

Любой торговый инструмент в OsEngine описывается классом Security. В объекте хранятся важные параметры инструмента, которые часто бывают необходимы в торговом алгоритме.

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

 

2. Класс Security в OsEngine.

За предоставление информации по инструментам в OsEngine отвечает класс Security. Посмотреть на него на ГитХаб можно здесь: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Entity/Security.cs

В самом проекте он находится тут:



( Читать дальше )

Сделки по собственному счёту. Класс MyTrade. Примитивы в OsEngine #6

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

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

Сделки по собственному счёту. Класс MyTrade. Примитивы в OsEngine #6 

1. Что такое моя сделка на бирже?

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

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

Итого, процесс генерации моей сделки выглядит так:

  1. Вы выставляете ордер на покупку или продажу.
  2. Ордер исполняется. Полностью или частично.
  3. Об этом генерируется запись биржей.
  4. Нам высылается MyTrade. Сделка по нашему счёту. Одна или несколько по одному ордеру.


( Читать дальше )

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5

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

Сегодня поговорим про стакан или книгу заявок, как ещё это иногда называют. Почти в любом вёб-терминале он имеет такой вид:

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5 

1. Что такое стакан на бирже?

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

Абсолютно все сделки после валидации попадают в ядро биржи, в котором специальный алгоритм сводит покупателей с продавцами.

У книги заявок есть два сортированных списка. Первый называют бидами (Bids), хранит все лимитные заявки на покупку, лучшим в списке считается ордер с наивысшей ценой. Второй называют асками (Asks). Список хранит все заявки на продажу, в котором лучшей заявкой считается ордер с наименьшей ценой.

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



( Читать дальше )

Заявки на бирже. Класс Order. Примитивы в OsEngine #4

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

Сегодня поговорим про Ордера (Заявки). Мы их создаём в момент, когда хотим открыть позицию:

Заявки на бирже. Класс Order. Примитивы в OsEngine #4 

1. Что такое Ордер (Заявка) на бирже?

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

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

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



( Читать дальше )

....все тэги
UPDONW
Новый дизайн