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

Создать новый ордер

POST 

/api/v1/order

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

Этот эндпоинт используется для размещения ордеров. См. отдельные поля ниже для получения более подробной информации об их использовании.

Типы ордеров

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

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

  • Limit: Тип ордера по умолчанию. Укажите orderQty и price.
  • Market: Традиционный рыночный ордер. Рыночный ордер будет исполняться до полного исполнения или до достижения вашей цены банкротства, после чего он будет отменён.
  • Stop: Стоп-рыночный ордер. Укажите orderQty и stopPx. Когда достигается stopPx, ордер будет размещён в книге ордеров.
    • Для ордеров на продажу ордер сработает, если цена срабатывания ниже stopPx. Для покупки — выше.
    • Примечание: стоп-ордера не используют маржу до момента срабатывания. Убедитесь, что на вашем счёте доступна необходимая маржа, чтобы ордер мог полностью исполниться.
    • Стоп-ордера Close не требуют orderQty. См. инструкции исполнения ниже.
  • StopLimit: Аналогичен стоп-рыночному, но вместо рыночного размещается лимитный ордер. Укажите orderQty, stopPx и price.
  • MarketIfTouched: Похож на Stop, но срабатывает в противоположном направлении. Полезен для ордеров Фиксация прибыли.
  • LimitIfTouched: Аналогично; используется для лимитных ордеров Фиксация прибыли.
  • Pegged: Pegged-ордера позволяют задавать лимитную цену относительно текущей рыночной цены. Укажите pegPriceType и pegOffsetValue.
    • Pegged-ордера должны иметь execInst равный Fixed. Это означает, что лимитная цена устанавливается в момент принятия ордера и не изменяется при изменении опорной цены.
    • PrimaryPeg: Цена устанавливается относительно ближайшей цены касания.
    • MarketPeg: Цена устанавливается относительно дальней цены касания.
    • 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, чтобы разрешить срабатывание только когда:
    • Для ордера Stop Market / Stop Limit на продажу
      • Последняя цена &lt= Стоп-цена
      • Последняя цена &gt= Цена маркировки × (1 - 5%)
    • Для ордера Stop Market / Stop Limit на покупку:
      • Последняя цена &gt= Стоп-цена
      • Последняя цена &lt= Цена маркировки × (1 + 5%)
    • Не применяется к спотовым торговым инструментам.
  • Fixed: Pegged-ордера должны иметь execInst равный Fixed. Это означает, что лимитная цена устанавливается в момент принятия ордера и не изменяется при изменении опорной цены.

Pegged-ордера

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

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

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

  • PrimaryPeg — цена устанавливается относительно ближайшей цены касания
  • MarketPeg — цена устанавливается относительно дальней цены касания

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Request

Responses