Продолжаем разбираться с BotTabSimple, источником, предоставляющим функционал для торговли одним инструментом.
Разбираем методы управления ордерами внутри позиции. Отмена ордера, смена его цены.
В OsEngine есть пример, который использует все нижеперечисленные способы управления ордерами. Вместо торговой логики у данного робота в окне параметров кнопки, нажимая которые можно попасть в обработчики, где выставляются определённого рода заявки, и потом ордера по ним отзываются или модифицируются.
Обязательно откройте этого робота и посмотрите, как это выглядит в исходном коде!
Его исходный код на ГитХаб находится здесь: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/BotsFromStartLessons/Lesson9Bot5.cs
Робот-пример находится здесь:
Методы, обсуждаемые ниже, в источнике BotTabSimple находятся здесь:
1. Отозвать все ордера по позиции.
public void CloseAllOrderToPosition(Position position)
Параметры:
- Position position – позиция, по которой будут отозваны все ордера.
Механика:
- По позиции, которую передали в метод, будут отозваны все ордера со статусом Active. Как ордера на открытие, так и ордера на закрытие.
2. Отозвать все ордера по позиции с указанием сигнала на закрытие.
public void CloseAllOrderToPosition(Position position, string signalType)
Параметры:
- Position position – позиция, по которой будут отозваны все ордера.
- string signalType – тип закрытия для позиции, который будет записан в поле позиции SignalTypeClose.
Механика:
- По позиции, которую передали в метод, будут отозваны все ордера со статусом Active. Как ордера на открытие, так и ордера на закрытие.
- Данная модификация метода запишет в поле позиции SignalTypeClose переменную signalType.
3. Отозвать все ордера по источнику с биржи.
public void CloseAllOrderInSystem()
Механика:
- Все позиции в источнике проверяются на наличие ордеров со статусом Active. И если ордера со статусом Active есть, то они отзываются.
4. Отозвать все ордера по источнику с биржи с указанием сигнала на закрытие.
public void CloseAllOrderInSystem(string signalType)
Параметры:
- string signalType – тип закрытия для позиции, который будет записан в поле позиции SignalTypeClose.
Механика:
- Все позиции в источнике проверяются на наличие ордеров со статусом Active. И если ордера со статусом Active есть, то они отзываются.
- Данная модификация метода запишет в поле позиции SignalTypeClose переменную signalType.
5. Отозвать ордер.
public void CloseOrder(Order order)
Параметры:
- Order order – ордер, который нужно отозвать с рынка.
Механика:
- После передачи ордера в метод он высылается на биржу с пометкой о том, что его нужно снять.
6. Смена цены ордера.
public void ChangeOrderPrice(Order order, decimal newPrice)
Параметры:
- Order order – ордер, по которому нужно сменить цену.
- decimal newPrice – новая цена для ордера.
Механика:
- Метод позволяет сменить у ордера цену без его предварительного отзыва.
- Новая цена ордера берётся из newPrice.
- Не каждый коннектор это поддерживает. Нужно убедиться, что подключение, через которое вы торгуете, это позволяет.
Удачных алгоритмов!
Комментарии открыты для друзей!
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