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

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

POST 

/order

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

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

Типы ордеров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Simple Quantities

Simple Quantities устарели с 2018/10/26

Лимиты частоты запросов (Rate Limits)

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

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

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

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

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

Запрос

Ответы

Запрос выполнен успешно