Продолжаем связывать данные из терминалов на бирже с тем, как это видят роботы.
Сегодня поговорим про сделки по нашему счёту. Они появляются в момент исполнения наших ордеров. В своих вёб-терминалах мы видим их примерно так:
В одной из предыдущих статей мы говорили об обезличенных сделках, которые доступны всем участникам торгов. В этой поговорим про собственные сделки, которые отличаются от обезличенных расширенным набором информации и доступны только их владельцу.
Как мы знаем, все сделки генерируются в момент исполнения ордеров, следовательно, каждая собственная сделка в дополнение к полям, присутствующим в обезличенных трейдах, будет содержать номер своего ордера-родителя.
Итого, процесс генерации моей сделки выглядит так:
Продолжаем связывать данные из терминалов на бирже с тем, как это видят роботы.
Сегодня поговорим про стакан или книгу заявок, как ещё это иногда называют. Почти в любом вёб-терминале он имеет такой вид:
Неотъемлемым атрибутом любой торговой площадки является такая сущность, как книга заявок.
Абсолютно все сделки после валидации попадают в ядро биржи, в котором специальный алгоритм сводит покупателей с продавцами.
У книги заявок есть два сортированных списка. Первый называют бидами (Bids), хранит все лимитные заявки на покупку, лучшим в списке считается ордер с наивысшей ценой. Второй называют асками (Asks). Список хранит все заявки на продажу, в котором лучшей заявкой считается ордер с наименьшей ценой.
При наличии нескольких заявок с одинаковой ценой лучшей из них считается та, которая была получена раньше остальных. На основании книги заявок строится агрегированный стакан котировок, который мы привыкли видеть во всех терминалах и интерфейсах бирж. К примеру, в популярной бирже он выглядит так:
🤖 Название советника: Aura White
📦 Версия: 1.1
💻 Торговая платформа: MT4
📈 Стратегия: Скальпинг
⏰ Таймфрейм: H1
🌍 Торговые пары: EURUSD, GBPUSD, EURGBP, USDCAD
🌓 Время торговли: Круглосуточно
⏳ Тестовый период: 2020.01.01 — 2024.01.19
🏛 Тиковая история брокер: Darwinex (TDSv2)
🧭 GMT: +2; DST: US
Real spread: ✅
Slippage: ❌
Продолжаем связывать данные из терминалов на бирже с тем, как это видят роботы.
Сегодня поговорим про Ордера (Заявки). Мы их создаём в момент, когда хотим открыть позицию:
В одной из прошлых статей мы говорили о сделках, но сама по себе сделка не может существовать без такого понятия, как заявка.
Ордер (биржевая заявка, приказ) – это поручение, направляемое на биржу, которое выражает намерение трейдера совершить торговую операцию купли или продажи финансового инструмента. Существует несколько разновидностей ордеров, отличающихся типом заказа, особенностью исполнения и дополнительными ограничениями. По типу исполнения выделяют рыночные, лимитные и условные заявки.
Рыночный ордер исполняется сразу после поступления на биржу при наличии контрагентов в виде лимитных заявок. Такой ордер не требует установки цены. Итоговая цена исполнения будет рассчитана на основании средней цены сделок, которые появятся в результате удовлетворения заявки.
Продолжаем связывать данные из терминалов на бирже с тем, как это видят роботы.
Сегодня поговорим про свечи. В Вашем вёб-терминале Вы видите их примерно так:
Свеча представляет собой вертикально расположенный прямоугольник, по центру от которого вверх и вниз выступают линии, именуемые тенями. По сути каждая свеча является агрегатором информации о поведении цены за определенный интервал времени.
В основном Вы видите на графике Японские свечи. Про них и поговорим ниже. Однако свечей есть великое множество и по ним у нас есть отдельная серия статей. За более глубокими знаниями сюда: https://smart-lab.ru/company/os_engine/blog/1028089.php
Шаг первый. Выбор источника цен.
Для цен, из которых можно формировать свечи, берут несколько различных типов данных. Это могут быть:
Сегодня поговорим про ленту сделок.
В Вашем вёб-терминале Вы видите ленту сделок где-то здесь. Обычно это таблица:
Обезличенная сделка или трейд – все эти термины описывают факт взаимодействия между покупателем и продавцом (через сведение ордеров), результатом которого является атомарная операция передачи ценных бумаг из одних рук в другие. Записи об этом мы и видим в таблице обезличенных сделок.
Как обезличенная сделка появляется:
Почти ровно полгода назад мы закончили формирование социального лифта для начинающих программистов, желающих войти в IT рядом с алготрейдингом. Ссылка: https://smart-lab.ru/company/os_engine/blog/982134.php
Двое из них со следующего месяца выходят на пенсию (в поддержку OsEngine), которую так жаждут сторонники FIRE на СмартЛабе. Никита Буйда и Егор Ярных. Целых полгода они изучали OsEngine и работали, теперь можно и на пенсию! СЧИТАЮ, ЗАСЛУЖЕННО!
Один из камрадов, участвующих в проекте, переходит внутри своей организации из менеджеров в программисты, с повышением ЗП.
Один перешёл в наш отдел разработки роботов на заказ.
Ну и все, кто справился, конечно же получили от нашей команды наши последние разработки в сфере роботостроения, включая арбитраж 12 поколения и агрегаторы бумаг по стадиям волатильности с фильтром пилы.
Очень коротко напомню. Основная статья здесь, тут супер подробно.
У нас Open Source и его можно и нужно разрабатывать коллективно!
Кстати. Мы тут в очередной раз взялись переписывать туториалы для программистов начинающих. Возможно кто-то заметил, возможно нет. Если Вы давно хотели научиться делать роботов – велком!
Выкладываем это всё в нашем мегагайде на СмартЛабе: https://smart-lab.ru/company/os_engine/blog/1024149.php
Листайте вниз вот до этой части, это прям для самых маленьких, кто хочет научиться править скрипты, а потом уже и роботов самому делать. Знание языка СиШарп нужно минимальное:
И вместе с новыми туториалами учитесь уже работать с программой. Статьи будут выходить по 1 — 2 в течении пары месяцев в этот раздел. Постараемся старт для Вас заложить хороший. Дать базу.
Обсудить и попросить что-то добавить в гайд, о чем вам непонятно, прям мимо кассы, можно в группе поддержки: https://t.me/osengine_official_support
Вся наша команда и я там сутками. Можно позадавать вопросы и пообщаться.
Комментарии открыты для друзей.
Удачных алгоритмов!
Всё, что Вы видите у себя в вёб-терминале биржи или в QUIK, является базовым типом данных для роботов. И роботы должны их уметь анализировать. А до этого в них должен разобраться программист, который хочет этого робота создать. Этот минисборник про примитивы Вам с этим поможет.
В OsEngine существуют классы, моделирующие эти сущности, которые необходимы для работы программы. К основным типам относятся: Trade, Candle, MarketDepth, MyTrade, Order, Portfolio, PositionOnBoard, Position. Для эффективной работы вам необходимо полное понимание устройства этих объектов, поэтому далее мы подробно рассмотрим предназначение каждого из них.
Часть из вышеописанных примитивов хранятся в каталоге OsEngine\project\OsEngine\Entity. Для наглядности можно посмотреть на снимок обозревателя решений, на котором описываемые типы подчеркнуты красными линиями: