Поговорим про инструменты и как они представлены внутри OsEngine. Они Вам обязательно в какой-то момент пригодятся, т.к. из них можно получить очень много полезной информации, такой как гарантийное обеспечение, точность цены, максимальную цену покупки и т.д.
В терминале мы видим их где-то здесь, картинка выше.
1. Что такое биржевой инструмент?
Любой торговый инструмент в OsEngine описывается классом Security. В объекте хранятся важные параметры инструмента, которые часто бывают необходимы в торговом алгоритме.
Кроме того, биржевым инструментом может быть и индекс. Т.е. торговать его нельзя, но информацию по нему получать можно.
2. Класс Security в OsEngine.
За предоставление информации по инструментам в OsEngine отвечает класс Security. Посмотреть на него на ГитХаб можно здесь.
В самом проекте он находится тут:
А сам класс выглядит так:
Рассмотрим все члены данного класса.
Security – общедоступный конструктор.
Name – короткое название инструмента.
NameFull – полное наименование торгового актива.
NameClass – класс актива. Существует множество классов: акции, облигации, свопы, фьючерсы, опционы, валюты, криптовалютные пары и другие. Данное поле указывает, к какой группе принадлежит бумага.
NameId – уникальный идентификатор в рамках всех инструментов на бирже.
Exchange – название биржи, на которой данный инструмент торгуется.
State – содержит значение перечисления SecurityStateType. Возможны следующие значения:
1. Activ – торги по бумаге разрешены;
2. Close – торговля активом запрещена;
3. UnKnown – состояние не определено;
PriceStep – шаг цены, минимально возможное изменение цены инструмента.
Lot – количество единиц акции или актива, покупаемого за один контракт. Например, для акций Сбербанка это 100. Т.е. купив один контракт Сбера на MOEX, Мы получаем 100 акций. На биржах криптовалют это обычно единица.
PriceStepCost – денежная стоимость движения цены за один шаг. Другими словами, это размер прибыли, который будет получен, если купить один лот и продать по цене на один шаг дороже без учета комиссии.
Go – гарантийное обеспечение для одного контракта, размер денежных средств, который будет заблокирован при открытии позиции.
SecurityType – содержит значение перечисления SecurityType, которое указывает тип торгового актива. Возможны следующие значения:
1. None - не задано.
2. CurrencyPair – валютная, криптовалютная пара.
3. Stock – акция.
4. Bond – облигация.
5. Futures – фьючерс.
6. Option – опцион.
7. Index – биржевой индекс.
ShowDialog – публичный метод, который открывает окно настроек. Данное окно позволяет вручную настроить значимые поля объекта.
Decimals – указывает количество знаков после запятой в цене инструмента. Если цена кратна единице, содержит значение ноль.
MinTradeAmount – минимально допустимый объем операции по инструменту.
DecimalsVolume - количество знаков после запятой в минимальном объеме.
PriceLimitLow – минимальная цена инструмента, ниже которой запрещено выставлять заявки.
PriceLimitHigh - максимальная цена инструмента, выше которой запрещено выставлять заявки.
OptionType – если инструмент принадлежит к классу опционов, поле указывает тип опциона.
1. None - не задано;
2. Put – пут опцион;
3. Call – колл опцион;
Strike – указывает фиксированную цену страйка, если инструмент принадлежит классу опционов.
Expiration – дата завершения обращения срочного контракта, если инструмент принадлежит классу фьючерсов и опционов.
LoadFromString - общедоступный метод, принимает строку, содержащую данные по всем полям, парсит ее и инициализирует состояние объекта.
GetSaveStr - общедоступный метод, не принимающий параметров. Возвращает строку, в которую записаны все поля объекта для дальнейшего сохранения в текстовый файл.
3. Обязательные поля Security.
Надо понимать, что не все поля, обозначенные в классе, будут доступны по всем коннекторам в OsEngine. В зависимости от АПИ мы можем иметь набор совершенно разных данных.
Обязательные поля, которые есть везде:
1. Name
2. NameFull
3. NameClass
4. NameId
5. Exchange
6. Price Step
7. Lot
8. PriceStepCost
9. SecurityType
10. Decimals
11. DecimalsVolume
Поддержка OsEngine: https://t.me/osengine_official_support
Комментарии