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

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

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: аналогично вышеописанному; используйте для лимитных ордеров фиксации прибыли (Take Profit Limit).
  • Pegged: привязанные (pegged) ордера позволяют указывать лимитную цену относительно текущей рыночной цены. Укажите pegPriceType и pegOffsetValue.
    • У привязанных ордеров обязательно должен быть execInst со значением Fixed. Это означает, что лимитная цена устанавливается в момент принятия ордера и не изменяется по мере изменения референсной цены.
    • PrimaryPeg: цена задается относительно ближней котировки (near touch price).
    • MarketPeg: цена задается относительно дальней котировки (far touch price).
    • pegPriceType, переданный без ordType, трактуется как ордер типа Pegged.

Инструкции исполнения (Execution Instructions)

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

  • ParticipateDoNotInitiate: также известен как пассивный (Post-Only) ордер. Если такой ордер при размещении мог бы сразу исполниться, он будет отменен. Это защищает вас от ситуации, когда дальняя котировка (far touch) сдвигается в вашу сторону, пока ордер в пути. Это не предназначено для спекуляций на том, что дальняя котировка уйдет от вас после размещения ордера — мы считаем такое поведение злоупотреблением и отслеживаем его.
  • MarkPrice, LastPrice, IndexPrice: используются стоп-ордерами и if-touched ордерами для определения триггерной цены. Используйте только одно из них. По умолчанию используется MarkPrice. Также применяется привязанными ордерами для определения значения 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 ордера:
      • Последняя цена (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: привязанные ордера обязательно должны иметь execInst со значением Fixed. Это значит, что лимитная цена устанавливается в момент принятия ордера и не изменяется при изменении референсной цены.

Привязанные (Pegged) ордера

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

Привязанные ордера используют ordType со значением Pegged и execInst со значением Fixed.

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

  • PrimaryPeg — цена устанавливается относительно ближней котировки (near touch)
  • MarketPeg — цена устанавливается относительно дальней котировки (far touch)

Привязанные трейлинг-стопы (Trailing Stop Pegged Orders)

Используйте pegPriceType со значением TrailingStopPeg, чтобы создать трейлинг-стопы.

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

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

Требуемые значения ordType: Stop, StopLimit, MarketIfTouched, LimitIfTouched.

Связанные ордера (Linked Orders)

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

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'). Используйте отрицательное смещение для ордеров stop-sell и buy-if-touched.

Требуемые значения ordType: 'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'.

Simple Quantities

Simple Quantities устарели с 26.10.2018

Лимиты частоты (Rate Limits)

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

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

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

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

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

Запрос

Ответы

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