OS_Engine_team

Читают

User-icon
171

Записи

257

Сделки по собственному счёту. Класс 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. Что такое Ордер (Заявка) на бирже?

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

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

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



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

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

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

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

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

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

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

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

 

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

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

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

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


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

Сделки. Обезличенная лента сделок. Класс Trade. Примитивы в OsEngine #2

Сегодня поговорим про ленту сделок.

В Вашем вёб-терминале Вы видите ленту сделок где-то здесь. Обычно это таблица:

Сделки. Обезличенная лента сделок. Класс Trade. Примитивы в OsEngine #2 

1. Что такое Лента сделок и трейд?

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

Как обезличенная сделка появляется:

  1. Клиент биржи выставил ордер на продажу 100 акций сбербанка по цене 200 рублей.
  2. Затем другой клиент биржи выставил ордер на покупку 100 акций сбербанка по цене 200 рублей.
  3. Ядро биржи увидело, что ордера можно «свести» / «сматчить» и удовлетворила их оба. У одного клиента списалось 100 акций у другого появилось 100 акций.
  4. В этот момент ядро сгенерировало в том числе и запись в ленту сделок по сбербанку. В данном случае это был один трейд по цене 200 рублей объёмом в 100 акций сбербанка, активная сторона – покупатель.


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

Введение. Примитивы в OsEngine #1

Всё, что Вы видите у себя в вёб-терминале биржи или в QUIK, является базовым типом данных для роботов. И роботы должны их уметь анализировать. А до этого в них должен разобраться программист, который хочет этого робота создать. Этот минисборник про примитивы Вам с этим поможет.

Введение. Примитивы в OsEngine #1

В OsEngine существуют классы, моделирующие эти сущности, которые необходимы для работы программы. К основным типам относятся: Trade, Candle, MarketDepth, MyTrade, Order, Portfolio, PositionOnBoard, Position. Для эффективной работы вам необходимо полное понимание устройства этих объектов, поэтому далее мы подробно рассмотрим предназначение каждого из них.

Часть из вышеописанных примитивов хранятся в каталоге OsEngine\project\OsEngine\Entity. Для наглядности можно посмотреть на снимок обозревателя решений, на котором описываемые типы подчеркнуты красными линиями:



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

Первый взгляд на проект OsEngine от программиста. Пространства имен (директивы using).

Первое, что Вы увидите, открыв OsEngine, обозреватель решения с папками справа. Главное в этот момент не испугаться.

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

Первый взгляд на проект OsEngine от программиста. Пространства имен (директивы using).

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

Во время разработки торговых роботов в OsEngine нужно примерно представлять откуда и что берётся. Где хранятся те или иные сущности в проекте. Рассмотрим базовые пространства, которые Вам точно пригодятся.

 

1 Часть. Теория.

Начнём с того, что посмотрим, что такое пространство имён в исходном коде на примере почти любого робота, доступного в платформе. В файле с кодом пространство задается при помощи ключевого слова namespace:



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

Как скачать OsEngine как программист? Запускаем проект для разработки. Обновляем NuGet пакеты.

Сегодня скачаем OsEngine как программист, а не пользователь. До этого у Вас уже должна быть установлена Visual Studio, что мы обсуждали в прошлой статье на тему. И Вы должны быть полны решимости научиться писать торговых роботов самому!

Ну а в этой статье скачаем свежий билд OsEngine с ГитХаб, откроем проект, как программисты это делают. А также обновим некоторые библиотеки, которые нужно подтянуть через Nuget, чтобы всё заработало.

ВАЖНО! Не забывайте про наш ГАЙД по алготрейдингу, там вы найдёте все нужные Вам инструкции и туториалы по проекту в одном месте: smart-lab.ru/company/os_engine/blog/1024149.php

Как скачать OsEngine как программист? Запускаем проект для разработки. Обновляем NuGet пакеты.

 

1. Скачиваем OsEngine.

Чтобы скачать OsEngine, нужно перейти по ссылке на ГитХаб. Это международное хранилище для ПО с открытым кодом.

Нажмите на зеленую кнопку Code:



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

Среда разработки роботов для OsEngine.

Для программирования (не для запуска, а именно для разработки) торговых роботов в OsEngine вам понадобится среда разработки. Иначе они называются IDE. Это нужно для того, чтобы не писать исходный код в текстовых файлах, а делать это с комфортом и быстро.

Существует несколько программ, подходящих для этих целей. К таковым относятся Visual Studio, Rider, Visual Studio Code и другие, менее известные варианты.

Каждый выбирает то, что ему больше нравится, но, если вы затрудняетесь в выборе, мы настоятельно рекомендуем остановиться на Visual Studio Community. И в этом посте мы поговорим о том, как её установить. Программа полностью бесплатная, как и наш OsEngine.

Среда разработки роботов для OsEngine. 

Выбор Visual Studio будет идеальным вариантом, который закроет все ваши потребности.

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



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

Требования к ПК и оборудованию для программирования торговых роботов на OsEngine.

Переходим к вопросам программирования на OsEngine. И эта история более ресурсоёмкая, чем просто торговля. В этом процессе Вам понадобиться установить несколько очень прожорливых программ, таких как Visual Studio. Поэтому, в отличие от торговли, здесь Вам понадобиться железо посерьёзнее.

Требования к ПК и оборудованию для программирования торговых роботов на OsEngine.


1. Желательно, стационарный ПК.

В основном, чтобы не ослепнуть. Ибо на маленьких мониторах Вы рискуете потерять зрение, занимаясь программированием.

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

 

2. Желательно делать упор на процессор.

Если вдруг Вы будете подбирать ПК именно для разработки торговых роботов, то про видеокарту забудьте. Она нам не нужна совсем.

Вот сборка, на которой в нашем офисе ведутся разработки и оптимизации:



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

UPDONW
Новый дизайн