Пространства имен. Директива using. OsEngine.

Пространства имен. Директива using. OsEngine.

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

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

 

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

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

 

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

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

Рис. 1. Пространство имен у робота.

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

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

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

Рис. 2. Включение пространств имен.

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

Рис. 3. Вариант использования пространства имен.

 

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

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

1. Entity

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

1. Extensions – расширения и специфические математические операции.

2. MarketDepth – стакан котировок.

3. MyTrade – мой трейд. Результат сведения двух ордеров на бирже.

4. Order – ордер… Или заявка. Как хотите.

5. Portfolio – портфель для торговли.

6. Position – позиция у робота.

7. PositionOnBoard – позиция по портфелю.

8. Security – инструмент для торговли.

9. StrategyParameter – параметры стратегии и всё, что с этим связано.

10. Trade – сделка. Единичная запись в ленте сделок.

 

2.OsTrader.Panels

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

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

 

3. OsTrader.Panels.Attributes

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

 

4. OsTrader.Panels.Tab

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

 

 

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

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

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

1. Роботы на паттернах. По ним есть классные серии постов с разбором что это и зачем. И что такое свечи.

2. Скринеры. Роботы для одновременной торговли десятков бумаг. Это обязательно захочется в какой-то момент.

3. Индексные арбитражи. Примеры того, как торговать от индекса. По этому направлению также есть хорошая серия статей.

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

Поддержка OsEngine

11:56
889
FAQ

Комментарии

Нет комментариев. Ваш будет первым!