IServerRealization #5. Метод SendOrder. Что там и чего там быть не должно. Коннекторы к OsEngine #91

Пост о том, как сделать отсылку ордера в реализации коннектора. Как это делать правильно и где взять нормальный пример.*серия постов «Коннекторы к OsEngine» — для программистов. Если Вы пользуетесь OsEngine как пользователь, можете дальше не читать. 1. Открываем исходники коннектора BitGet. Далее, находим метод SendOrder: 2. SendOrder.В общем случае должен состоять из следующих частей:Ограничитель на кол-во запросов к методу. Класс RateGate, настроенный на кол-во возможных запросов к методам работы с ордерами.Формирование тела запроса на выставление ордера и его отсылка в торговую систему.В случае выставления ордера больше ничего в этом методе делать не нужно. Ордер выставился – всё хорошо. Миссия закончена.Если ордер не выставился, и была какая-то явная ошибка, о которой нам с биржи пришёл ответ, записываем код ошибки и выставляем ордер, у которого нужно было выставить статус FAIL. Это делается в данном случае в методе CreateOrderFail. 3. Не следует указывать статус ордера в этом методе как Active или Done.Иногда покажется логичным сделать статус ордера Active в случае успешного запроса на выставление ордера. Однако делать этого не следует.Сообщение о том, что ордер был успешно выставлен и ожидает своего исполнения или исполнился, приходят в других местах коннектора. Исключение для этого правила тоже бывают. Но только в том случае если АПИ брокера выдаёт нам номер ордера на бирже, как это делает Т-Инвест АПИ. В таком случае можно указать статус ордера как Active, ибо номер по нему уже известен и уже можно его отзывать: Удачных алгоритмов!Комментарии открыты для друзей!OsEngine: https://github.com/AlexWan/OsEngine Поддержка OsEngine: https://t.me/osengine_official_support

Май 7, 2025 - 20:18
 0
IServerRealization #5. Метод SendOrder. Что там и чего там быть не должно. Коннекторы к OsEngine #91

Пост о том, как сделать отсылку ордера в реализации коннектора. Как это делать правильно и где взять нормальный пример.

*серия постов «Коннекторы к OsEngine» — для программистов. Если Вы пользуетесь OsEngine как пользователь, можете дальше не читать.

IServerRealization #5. Метод SendOrder. Что там и чего там быть не должно. Коннекторы к OsEngine #91


1. Открываем исходники коннектора
BitGet.

IServerRealization #5. Метод SendOrder. Что там и чего там быть не должно. Коннекторы к OsEngine #91

Далее, находим метод SendOrder:

IServerRealization #5. Метод SendOrder. Что там и чего там быть не должно. Коннекторы к OsEngine #91

2. SendOrder.

В общем случае должен состоять из следующих частей:

IServerRealization #5. Метод SendOrder. Что там и чего там быть не должно. Коннекторы к OsEngine #91

  1. Ограничитель на кол-во запросов к методу. Класс RateGate, настроенный на кол-во возможных запросов к методам работы с ордерами.
  2. Формирование тела запроса на выставление ордера и его отсылка в торговую систему.
  3. В случае выставления ордера больше ничего в этом методе делать не нужно. Ордер выставился – всё хорошо. Миссия закончена.
  4. Если ордер не выставился, и была какая-то явная ошибка, о которой нам с биржи пришёл ответ, записываем код ошибки и выставляем ордер, у которого нужно было выставить статус FAIL. Это делается в данном случае в методе CreateOrderFail.

 

3. Не следует указывать статус ордера в этом методе как Active или Done.

Иногда покажется логичным сделать статус ордера Active в случае успешного запроса на выставление ордера. Однако делать этого не следует.

Сообщение о том, что ордер был успешно выставлен и ожидает своего исполнения или исполнился, приходят в других местах коннектора.

Исключение для этого правила тоже бывают. Но только в том случае если АПИ брокера выдаёт нам номер ордера на бирже, как это делает Т-Инвест АПИ. В таком случае можно указать статус ордера как Active, ибо номер по нему уже известен и уже можно его отзывать:

IServerRealization #5. Метод SendOrder. Что там и чего там быть не должно. Коннекторы к OsEngine #91

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

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

IServerRealization #5. Метод SendOrder. Что там и чего там быть не должно. Коннекторы к OsEngine #91

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support