Перейти к основному содержимому

Создать новый заказ

POST 

/api/v2/order

Размещение ордеров

Этот эндпоинт используется для размещения ордеров. Подробнее о каждом поле см. ниже.

Типы ордеров

Все ордера требуют symbol. Все остальные поля являются необязательными, если не указано иное.

Допустимые значения ordType:

  • Limit: Тип ордера по умолчанию. Укажите orderQty и price.
  • Market: Классический рыночный ордер. Рыночный ордер исполняется до полного исполнения или достижения вашей цены банкротства, после чего он отменяется.
  • Stop: Стоп-рыночный ордер. Укажите orderQty и stopPx. При достижении stopPx ордер будет выставлен в книгу заявок.
    • Для ордеров на продажу ордер срабатывает, если цена триггера ниже stopPx. Для покупки — выше.
    • Примечание: стоп-ордера не используют маржа до момента срабатывания. Убедитесь, что на вашем счете доступна необходимая маржа, чтобы ордер мог полностью исполниться.
    • Стоп-ордера Close не требуют orderQty. См. инструкции по исполнению ниже.
  • StopLimit: Аналогично Stop Market, но выставляется лимитный ордер вместо рыночного. Укажите orderQty, stopPx и price.
  • MarketIfTouched: Похож на Stop, но триггеры срабатывают в противоположном направлении. Полезен для ордеров Фиксация прибыли.
  • LimitIfTouched: Аналогично выше; используется для лимитных ордеров Фиксация прибыли.
  • Pegged: Pegged-ордера позволяют задавать лимитную цену относительно текущей рыночной цены. Укажите pegPriceType и pegOffsetValue.
    • Pegged-ордера должны иметь execInst равный Fixed. Это означает, что лимитная цена устанавливается в момент принятия ордера и не изменяется при изменении базовой цены.
    • PrimaryPeg: Цена устанавливается относительно ближайшей цены (near touch).
    • MarketPeg: Цена устанавливается относительно дальней цены (far touch).
    • pegPriceType, отправленный без ordType, рассматривается как ордер Pegged.

Инструкции по исполнению

Поддерживаются следующие значения execInst. При использовании нескольких указывайте их через запятую (например, LastPrice,Close).

  • ParticipateDoNotInitiate: Также известен как ордер Пассивный. Если такой ордер мог бы исполниться сразу при размещении, он будет отменен. Это предназначено для защиты от движения дальней цены в вашу сторону, пока ордер находится в пути. Это не предназначено для спекуляции на удалении дальней цены после отправки — такое поведение считается злоупотреблением и отслеживается.
  • MarkPrice, LastPrice, IndexPrice: Используются стоп- и if-touched ордерами для определения цены срабатывания. Используйте только одно значение. По умолчанию используется MarkPrice. Также применяется для Pegged-ордеров для определения значения LastPeg. IndexPrice не применяется к спотовым инструментам.
  • ReduceOnly: Ордер ReduceOnly может только уменьшать вашу позицию, но не увеличивать её. Если у вас есть лимитный ордер ReduceOnly, находящийся в книге заявок, и позиция уменьшается другими ордерами, его количество будет уменьшено или ордер будет отменен. Если существует несколько ордеров ReduceOnly, сначала изменяется наименее агрессивный. Не применяется к спотовым инструментам.
  • Close: Close подразумевает ReduceOnly. Ордер Close отменяет другие активные лимитные ордера с той же стороной и символом, если открытый объем превышает текущую позицию. Это полезно для стопов: отменяя эти ордера, стоп Close гарантированно имеет необходимую маржа для исполнения и может исполниться только на полный размер вашей позиции. Если orderQty не указан, ордер Close получает значение orderQty, равное размеру вашей текущей позиции. Не применяется к спотовым инструментам.
    • Обратите внимание, что ордер Close без orderQty требует указания side, чтобы BitMEX мог определить, должен ли он сработать выше или ниже stopPx.
  • LastWithinMark: Используется стоп-ордерами с LastPrice, чтобы разрешить срабатывание только когда:
    • Для Sell Stop Market / Stop Limit ордера
      • Последняя цена &lt= Stop Price
      • Последняя цена &gt= Цена маркировки × (1 - 5%)
    • Для Buy Stop Market / Stop Limit ордера:
      • Последняя цена &gt= Stop Price
      • Последняя цена &lt= Цена маркировки × (1 + 5%)
    • Не применяется к спотовым инструментам.
  • Fixed: Pegged-ордера должны иметь execInst равный Fixed. Это означает, что лимитная цена устанавливается в момент принятия ордера и не изменяется при изменении базовой цены.

Pegged-ордера

Pegged-ордера позволяют задавать лимитную цену относительно текущей рыночной цены. Лимитная цена устанавливается один раз при отправке ордера и не изменяется вместе с базовой ценой. Этот тип ордера не предназначен для спекуляции на удалении дальней цены после отправки — такое поведение считается злоупотреблением и отслеживается.

Pegged-ордера имеют ordType равный Pegged и execInst равный Fixed.

Также необходимо указать pegPriceType и pegOffsetValue:

  • PrimaryPeg — цена устанавливается относительно near touch
  • MarketPeg — цена устанавливается относительно far touch

Трейлинг-стоп Pegged-ордера

Используйте pegPriceType равный TrailingStopPeg для создания трейлинг-стопов.

Цена устанавливается при отправке и обновляется раз в секунду, если базовая цена (last/mark/index) изменилась более чем на 0.1%. Затем stopPx движется по мере удаления рынка от peg и фиксируется, когда рынок движется к нему.

Используйте pegOffsetValue, чтобы задать stopPx вашего ордера. Peg устанавливается на цену срабатывания, указанную в execInst (по умолчанию MarkPrice). Используйте отрицательное смещение для stop-sell и buy-if-touched ордеров.

Требуется ordType: Stop, StopLimit, MarketIfTouched, LimitIfTouched.

Связанные ордера

Связанные ордера — это продвинутая функциональность. Она очень мощная, но требует тщательной разработки и тестирования. Пожалуйста, внимательно следуйте этому документу и используйте Testnet Exchange во время разработки.

BitMEX предлагает четыре продвинутых типа связанных ордеров:

  • OCO: One Cancels the Other. Очень гибкая версия стандартной стратегии Stop / Фиксация прибыли. Несколько ордеров могут быть связаны с помощью одного clOrdLinkID. Укажите contingencyType равный OneCancelsTheOther в ордерах. Первый ордер, который полностью или частично исполнится (или активируется для Stop ордеров), отменит все остальные ордера с тем же clOrdLinkID.
  • OTO: One Triggers the Other. Укажите contingencyType равный 'OneTriggersTheOther' в основном ордере, и последующие ордера с тем же clOrdLinkID не будут активированы, пока основной ордер полностью не исполнится.

Трейлинг-стопы

Вы можете использовать pegPriceType равный 'TrailingStopPeg' для создания трейлинг-стопов. Привязанный stopPx будет двигаться по мере удаления рынка от peg и фиксироваться при движении рынка к нему.

Для использования комбинируйте с pegOffsetValue, чтобы задать stopPx вашего ордера. Peg устанавливается на цену срабатывания, указанную в execInst (по умолчанию 'MarkPrice'). Используйте отрицательное смещение для stop-sell и buy-if-touched ордеров.

Требуется ordType: 'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'.

Ограничения по скорости

Вы можете повысить реакцию на рыночные движения, оставаясь в рамках лимитов скорости, используя эндпоинт Amend (PUT /order). Это позволяет оставаться на рынке и избегать цикла отмены/замены.

Отслеживание ордеров

Если вы хотите самостоятельно отслеживать идентификаторы ордеров, задайте уникальный clOrdID для каждого ордера. Этот clOrdID будет возвращаться как свойство ордера и всех связанных исполнений (включая WebSocket), и может использоваться для получения или отмены ордера. Максимальная длина — 36 символов.

Вы также можете изменить clOrdID, изменив ордер, указав origClOrdID и новый идентификатор в параметре clOrdID, например:

# Изменяет leavesQty ордера и обновляет его clOrdID на "def-456"
PUT /api/v1/order {"origClOrdID": "abc-123", "clOrdID": "def-456", "leavesQty": 1000}

Request

Responses