Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
24 июля 2024, 19:22

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

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

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

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

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

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

 

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

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

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


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

Это сделано почти во всех языках программирования для того, чтобы мы (программисты) могли сначала группировать какие-то классы вместе. А ещё для того, чтобы можно было в другие классы быстро добавлять много кода (классов) из других пространств имён.

Когда Вы пишите код класса (ну или робота в OsEngine), нужные пространства можно импортировать при помощи директивы using в начале класса робота:

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

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

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

 

2 Часть. Что точно надо знать о пространствах имён OsEngine.

Посмотрим на те пространства имён, которые точно Вам понадобятся во время создания роботов.

1 Entity

Пространство имён, которое содержит примитивы, повсеместно используемые в роботах:

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

  1. Extensions – расширения и специфические математические операции.
  2. MarketDepth – стакан котировок.
  3. MyTrade – мой трейд. Результат сведения двух ордеров на бирже.
  4. Order – ордер… Или заявка. Как хотите.
  5. Portfolio – портфель для торговли.
  6. Position – позиция у робота.
  7. PositionOnBoard – позиция по портфелю.
  8. Security – инструмент для торговли.
  9. StrategyParameter – параметры стратегии и всё, что с этим связано.
  10. Trade – сделка. Единичная запись в ленте сделок.

 

2 OsTrader.Panels

Содержит в себе базовую инфраструктуру роботов:

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

1 BotPanel – интерфейс для всех роботов. Штука, став наследником от которой, любой класс становится роботом.

 

3 OsTrader.Panels.Attributes

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

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

 

4 OsTrader.Panels.Tab

Данное пространство имён содержит все источники, которые есть в OsEngine. Его тоже Вам придётся добавлять в каждого робота:

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

 

3 Часть. Где лежат примеры роботов.

Конечно же, первым делом также захочется посмотреть примеры. Внутри проекта они находятся вот здесь:

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

Роботы располагаются в проекте в папке Robots. Порядок, который предлагаем мы:

  1. Роботы на паттернах. По ним есть классные серии постов с разбором что это и зачем. И что такое свечи.
  2. Скринеры. Роботы для одновременной торговли десятков бумаг. Это обязательно захочется в какой-то момент.
  3. Индексные арбитражи. Примеры того, как торговать от индекса. По этому направлению также есть хорошая серия статей.

Удачных алгоритмов!

Комментарии открыты для друзей!

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

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

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

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн