Создать новый ордер.
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) <= цены стопа (Stop Price)
- Последняя цена (Last Price) >= Mark Price × (1 - 5%)
- Для Buy Stop Market / Stop Limit ордера:
- Последняя цена (Last Price) >= цены стопа (Stop Price)
- Последняя цена (Last Price) <= Mark Price × (1 + 5%)
- Неприменимо к спотовым символам.
- Для Sell Stop Market / Stop Limit ордера:
- 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не будут активированы, пока основной ордер полностью не исполнится.