Первое, что Вы увидите, открыв OsEngine, обозреватель решения с папками справа. Главное в этот момент не испугаться.
В этих папках хранится весь проект, но для создания роботов Вам нужно примерно знать всего несколько. Ну а сами папки, по сути, можно называть «Пространства имён», которые Вы должны научиться использовать. Про это сегодня и поговорим.
Пространства имен — это способ группировки кода, который позволяет организовать логическую и удобную структуру проекта. Как правило, типы, связанные общей идеей и схожей функциональностью, содержатся в общем пространстве.
Во время разработки торговых роботов в OsEngine нужно примерно представлять откуда и что берётся. Где хранятся те или иные сущности в проекте. Рассмотрим базовые пространства, которые Вам точно пригодятся.
Начнём с того, что посмотрим, что такое пространство имён в исходном коде на примере почти любого робота, доступного в платформе. В файле с кодом пространство задается при помощи ключевого слова namespace:
Рис. 1. Пространство имен у робота.
В итоге получается, что пространство имён, это открывающие и закрывающие кавычки в каком-то файле, внутри которых содержатся классы.
Это сделано почти во всех языках программирования для того, чтобы мы (программисты) могли сначала группировать какие-то классы вместе. А ещё для того, чтобы можно было в другие классы быстро добавлять много кода (классов) из других пространств имён.
Когда Вы пишите код класса (ну или робота в OsEngine), нужные пространства можно импортировать при помощи директивы using в начале класса робота:
Рис. 2. Включение пространств имен.
Альтернативой добавлению пространств имён вверху файла является использование нужного пространства при объявлении переменной. Но в таком случае нужно знать проект наизусть, что немного сложно:
Рис. 3. Вариант использования пространства имен.
Посмотрим на те пространства имён, которые точно Вам понадобятся во время создания роботов.
1 Entity
Пространство имён, которое содержит примитивы, повсеместно используемые в роботах:
2 OsTrader.Panels
Содержит в себе базовую инфраструктуру роботов:
1 BotPanel – интерфейс для всех роботов. Штука, став наследником от которой, любой класс становится роботом.
3 OsTrader.Panels.Attributes
Пространство имён с одним классом, позволяющим упрощать создание робота через атрибут. Не переживайте, скоро Вы поймёте зачем это:
4 OsTrader.Panels.Tab
Данное пространство имён содержит все источники, которые есть в OsEngine. Его тоже Вам придётся добавлять в каждого робота:
Конечно же, первым делом также захочется посмотреть примеры. Внутри проекта они находятся вот здесь:
Роботы располагаются в проекте в папке Robots. Порядок, который предлагаем мы:
Удачных алгоритмов!
Комментарии открыты для друзей!
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка 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