Всё, что Вы видите у себя в вёб-терминале биржи или в QUIK, является базовым типом данных для роботов. И роботы должны их уметь анализировать. А до этого в них должен разобраться программист, который хочет этого робота создать. Этот минисборник про примитивы Вам с этим поможет.
В OsEngine существуют классы, моделирующие эти сущности, которые необходимы для работы программы. К основным типам относятся: Trade, Candle, MarketDepth, MyTrade, Order, Portfolio, PositionOnBoard, Position. Для эффективной работы вам необходимо полное понимание устройства этих объектов, поэтому далее мы подробно рассмотрим предназначение каждого из них.
Часть из вышеописанных примитивов хранятся в каталоге OsEngine\project\OsEngine\Entity. Для наглядности можно посмотреть на снимок обозревателя решений, на котором описываемые типы подчеркнуты красными линиями:
Первое, что Вы увидите, открыв OsEngine, обозреватель решения с папками справа. Главное в этот момент не испугаться.
В этих папках хранится весь проект, но для создания роботов Вам нужно примерно знать всего несколько. Ну а сами папки, по сути, можно называть «Пространства имён», которые Вы должны научиться использовать. Про это сегодня и поговорим.
Пространства имен — это способ группировки кода, который позволяет организовать логическую и удобную структуру проекта. Как правило, типы, связанные общей идеей и схожей функциональностью, содержатся в общем пространстве.
Во время разработки торговых роботов в OsEngine нужно примерно представлять откуда и что берётся. Где хранятся те или иные сущности в проекте. Рассмотрим базовые пространства, которые Вам точно пригодятся.
Начнём с того, что посмотрим, что такое пространство имён в исходном коде на примере почти любого робота, доступного в платформе. В файле с кодом пространство задается при помощи ключевого слова namespace:
Сегодня скачаем OsEngine как программист, а не пользователь. До этого у Вас уже должна быть установлена Visual Studio, что мы обсуждали в прошлой статье на тему. И Вы должны быть полны решимости научиться писать торговых роботов самому!
Ну а в этой статье скачаем свежий билд OsEngine с ГитХаб, откроем проект, как программисты это делают. А также обновим некоторые библиотеки, которые нужно подтянуть через Nuget, чтобы всё заработало.
ВАЖНО! Не забывайте про наш ГАЙД по алготрейдингу, там вы найдёте все нужные Вам инструкции и туториалы по проекту в одном месте: smart-lab.ru/company/os_engine/blog/1024149.php
Чтобы скачать OsEngine, нужно перейти по ссылке на ГитХаб. Это международное хранилище для ПО с открытым кодом.
Нажмите на зеленую кнопку Code:
Для программирования (не для запуска, а именно для разработки) торговых роботов в OsEngine вам понадобится среда разработки. Иначе они называются IDE. Это нужно для того, чтобы не писать исходный код в текстовых файлах, а делать это с комфортом и быстро.
Существует несколько программ, подходящих для этих целей. К таковым относятся Visual Studio, Rider, Visual Studio Code и другие, менее известные варианты.
Каждый выбирает то, что ему больше нравится, но, если вы затрудняетесь в выборе, мы настоятельно рекомендуем остановиться на Visual Studio Community. И в этом посте мы поговорим о том, как её установить. Программа полностью бесплатная, как и наш OsEngine.
Выбор Visual Studio будет идеальным вариантом, который закроет все ваши потребности.
Visual Studio имеет в своем арсенале как стандартные инструменты (редактор, отладчик), так и массу приятных дополнительных функций (компиляторы, оптимизаторы кода, графические конструкторы и др.), которые делают процесс разработки более продуктивным, интересным и качественным.
Переходим к вопросам программирования на OsEngine. И эта история более ресурсоёмкая, чем просто торговля. В этом процессе Вам понадобиться установить несколько очень прожорливых программ, таких как Visual Studio. Поэтому, в отличие от торговли, здесь Вам понадобиться железо посерьёзнее.
В основном, чтобы не ослепнуть. Ибо на маленьких мониторах Вы рискуете потерять зрение, занимаясь программированием.
Но, кроме этого, «стандартный» ноутбук использует обрезанный процессор, и Вы лишите себя возможности не только программировать, но и вести оптимизацию.
Если вдруг Вы будете подбирать ПК именно для разработки торговых роботов, то про видеокарту забудьте. Она нам не нужна совсем.
Вот сборка, на которой в нашем офисе ведутся разработки и оптимизации:
В этой публикации мы исследуем, как устроена механика работы отложенных приказов в OsEngine. Мы рассмотрим способы установки стопов и профитов для уже открытых позиций. Сначала мы рассмотрим, как это можно сделать через визуальный интерфейс, а затем рассмотрим, как это реализуется в исходном коде.
Есть позиция Long, купили BtcUsdt по 52 тысячи долларов.
В этой статье разберемся с тем, как открывать позиции при помощи отложенных ордеров.
Например, мы точно уверены, что после пробития уровня 53000 по Биткойну, он будет расти дальше до 55000. Но что же делать, если вечер уже близко, а ночью все-таки хочется спать? В таком случае нам поможет отложенный стоп-ордер, при помощи которого можно открыть позицию.
Идём в панель робота, во вкладку стакана и жмём на кнопку «More»:
Всех приветствую! Сегодня расскажу, как устроен код Плазы в OsEngine. Для понимая достаточно будет минимальных знаний C#, здесь не будет какой-либо сложной логики. Пройдёмся по основному.
OsEngine – проект с открытым кодом, поэтому посмотреть раздел, относящийся к коннектору можно прямо сейчас онлайн по адресу https://github.com/AlexWan/OsEngine
Также можно просто скачать весь проект и открыть его в Visual Studio, чтобы смотреть более наглядно.
В данной статье рассмотрим, как подключать OsEngine к тестовому серверу Мосбиржи через коннектор Plaza II для срочного рынка.
Первым делом нам необходимо запустить роутер. Настройку роутера мы делали в прошлой статье. Роутер ВСЕГДА должен быть запущен.
Всех приветствую! Сегодня разберем, как настроить рабочее место для подключения к тестовому серверу Мосбиржи на коннекторе Plaza II для срочного рынка.
Для установки роутера необходимо зайти в документацию по Плазе на сайте Мосбиржи https://ftp.moex.com/pub/ClientsAPI/Spectra/CGate/test/ .