В настоящее время Alpaca поддерживает четыре различных типа ордеров (заказов). См. продолжение после вступления.
Используя Trading API Alpaca, пользователи могут отслеживать, размещать и отменять заказы. Каждый заказ имеет уникальный идентификатор, предоставленный клиентом. Если клиент его не предоставит, система автоматически сгенерирует уникальный идентификатор заказа на стороне клиента. Этот идентификатор возвращается как часть объекта заказа вместе с другими полями, описанными ниже. После размещения заказа его можно запросить, используя либо идентификатор заказа, предоставленный клиентом, либо уникальный идентификатор, назначенный системой, чтобы проверить его статус. Обновления по открытым ордерам также доставляются через интерфейс потоковой передачи, который является рекомендуемым методом для поддержания состояния заказа.
При оформлении заказа вы можете выбрать один из поддерживаемых типов ордеров. В настоящее время Alpaca поддерживает четыре различных типа заказов.
Рыночный ордер — это запрос на покупку или продажу ценной бумаги по доступной на данный момент рыночной цене. Он предоставляет наиболее вероятный способ оформления заказа. Рыночные ордера исполняются практически мгновенно.
В качестве компромисса ваша цена исполнения может снижаться в зависимости от доступной ликвидности на каждом ценовом уровне, а также от любых ценовых движений, которые могут произойти во время направления вашего ордера к месту его исполнения. Существует также риск того, что рыночные ордера могут быть исполнены по неожиданным ценам из-за краткосрочных скачков цен.
Лимитный ордер — это ордер на покупку или продажу по указанной цене или лучше. Лимитный ордер на покупку (лимитный ордер на покупку) исполняется по указанной лимитной цене или ниже (т.е. лучше). И наоборот, лимитный ордер на продажу (лимитный ордер на продажу) исполняется по указанной лимитной цене или выше (лучше). В отличие от рыночного ордера, при отправке ордера необходимо указать параметр лимитной цены.
В то время как лимитный ордер может предотвратить проскальзывание, он может не быть исполнен в течение довольно долгого времени, если вообще будет исполнен. Для лимитного ордера на покупку, если рыночная цена находится в пределах указанной вами лимитной цены, вы можете ожидать, что ордер будет исполнен. Если рыночная цена эквивалентна вашей лимитной цене, ваш ордер может быть исполнен или не исполнен; Если ордер не может быть немедленно исполнен в условиях остаточной ликвидности, то он считается нерыночным и будет исполнен только после того, как рыночный ордер вступит в контакт с ним. Вы можете упустить торговую возможность, если цена отойдет от лимитной цены до того, как ваш ордер будет исполнен.
Минимальное отклонение цены существует для лимитных ордеров. Заказы, полученные сверх минимального отклонения цены, будут отклонены.
{
"code": 42210000,
"message": "invalid limit_price 290.123. sub-penny increment does not fulfill minimum pricing criteria"
}
Стоп-ордер (рыночный) — это ордер на покупку или продажу ценной бумаги, когда ее цена проходит определенную точку, обеспечивая более высокую вероятность достижения заранее определенной цены входа или выхода. Как только ордер выбран, стоп-ордер становится рыночным ордером. Alpaca преобразует стоп-ордера на покупку в стоп-лимитные ордера с лимитной ценой, которая на 4% выше стоп-цены < $50 (или на 2,5% выше стоп-цены >= $50). Стоп-ордера на продажу не конвертируются в стоп-лимитные ордера.
Стоп-ордер не гарантирует, что ордер будет исполнен по определенной цене после того, как он будет преобразован в рыночный ордер.
Для того, чтобы отправить стоп-ордер, вам нужно будет указать параметр стоп-цены в API.
Пример:
Для стоп-ордеров существует минимальное отклонение цены. Заказы, полученные сверх минимального отклонения цены, будут отклонены.
{
"code": 42210000,
"message": "invalid stop_price 290.123. sub-penny increment does not fulfill minimum pricing criteria"
}
Стоп-лимитный ордер — это условная сделка на установленном временном интервале, которая сочетает в себе характеристики стоп-ордера с характеристиками лимитного ордера и используется для снижения риска. Стоп-лимитный ордер будет исполнен по указанной лимитной цене или лучше после того, как будет достигнута заданная стоп-цена. Как только стоп-цена достигнута, стоп-лимитный ордер становится лимитным ордером на покупку или продажу по лимитной цене или лучше. В случае разрыва на рынке, который приводит к выбору вашего ордера, но не к исполнению, ваш ордер будет оставаться активным как лимитный ордер до тех пор, пока он не будет исполнен или отменен.
Для того, чтобы отправить стоп-лимитный ордер, вам нужно будет указать в API параметры лимитной и стоп-цены.
Пример:
Рыночные ордера на открытие и лимит на открытые ордера могут быть исполнены только на аукционе открытия. Рыночные ордера на закрытие и лимитные ордера на закрытие могут быть исполнены только на аукционе закрытия. Пожалуйста, ознакомьтесь с разделом «Время в силе» для получения более подробной информации.
Брекет-ордер — это цепочка из трех ордеров, которую можно использовать для управления входом и выходом из позиции. Это распространенный случай использования ордера OTOCO (One Triggers OCO {One Cancels Other}).
Первый ордер используется для входа в новую длинную или короткую позицию, а как только он полностью заполнен, активируются два ордера на условный выход. Один из двух закрывающих ордеров называется ордером тейк-профит, который является лимитным ордером, а другой называется ордером стоп-лосс, который является либо стоп-ордером, либо стоп-лимитным ордером. Важно отметить, что может быть исполнен только один из двух ордеров на выход. Как только один из ордеров на выход исполняется, другой отменяется. Однако обратите внимание, что в условиях чрезвычайно волатильного и быстрого рынка оба ордера могут быть исполнены до того, как произойдет отмена.
Без брекет-ордера вы не сможете одновременно отправлять ордера на вход и выход, поскольку система Alpaca принимает ордера на выход только для существующих позиций. Кроме того, даже если у вас есть открытая позиция, вы не сможете подать два ордера на условное закрытие, поскольку система Alpaca будет рассматривать один из двух ордеров как превышающий доступное количество позиций. Брекет-ордера решают обе эти проблемы, поскольку система Alpaca распознает ордера на вход и выход как группу и соответствующим образом ставит их в очередь на выполнение.
Для того, чтобы отправить заявку на брекетинг, вам необходимо указать дополнительные параметры в API. Во-первых, добавьте параметр в виде «скобки». Во-вторых, укажите два дополнительных поля и stop_loss, оба из которых являются вложенными объектами JSON. Объекту нужно в качестве поля значение, указывающее лимитную цену ордера тейк-профит, а объекту нужно обязательное поле и необязательное поле. Если указано в , ордер стоп-лосс ставится в очередь как стоп-лимитный ордер, но в противном случае он ставится в очередь как стоп-ордер.order_classtake_profittake_profitlimit_pricestop_lossstop_pricelimit_pricelimit_pricestop_loss
Ниже приведен пример параметра тела JSON для отправки ордера на скобки.
В результате создается три заказа.
Второй и третий ордера не будут активны до тех пор, пока первый ордер не будет полностью исполнен. Дополнительная информация о заказе брекета включает в себя:
take_profit.limit_price должен быть выше, чем для брекет-ордера на покупку, и наоборот для ордера на продажу.stop_loss.stop_pricetake_profit.limit_pricestop_loss.stop_priceextended_hourstime_in_force должны быть или .daygtcPATCH /v2/orderslimit_pricestop_priceКаждый заказ группы отображается как независимый заказ в конечной точке GET /v2/orders. Но если вы укажете дополнительный параметр nested=true, ответ на заказ будет вложен в результат, чтобы включить дочерние заказы в родительский заказ с помощью поля массива legs в сущности заказа.
OCO (One-Cancels-Other) — это еще один тип расширенного типа ордеров. Это набор из двух ордеров с одной стороной (покупка/покупка или продажа/продажа), и в настоящее время поддерживается только ордер на выход. Другими словами, это вторая часть брекет-ордеров, где ордер на вход уже исполнен, и вы можете отправить тейк-профит и стоп-лосс в одном ордере.
С OCO-ордерами вы можете добавить тейк-профит и стоп-лосс после открытия позиции, не думая об этих двух ногах заранее.
Для того, чтобы отправить OCO-ордер, укажите «oco» в качестве параметра order_class.
Параметр type всегда должен быть «limit», указывая на то, что тип ордера тейк-профит является лимитным ордером. Ордер стоп-лосс является стоп-ордером, если указан только он, и является стоп-лимитным ордером, если указаны оба и (т.е. должны присутствовать в любом случае). Эти два ордера работают точно так же, как и две ветви порядков в скобке.stop_pricelimit_pricestop_pricestop_price
Обратите внимание, что при получении списка ордеров с параметром true ордер тейк-профит отображается как родительский ордер, а стоп-лосс — как дочерний ордер.nested
Как и в случае с заказами на брекетинге, поддерживается замена ордеров для обновления limit_price и stop_price.
OTO (One-Triggers-Other) — это вариант порядка скобок. Он принимает один из ордеров тейк-профит или стоп-лосс в дополнение к ордеру на вход. Например, если вы хотите установить только стоп-лосс, привязанный к позиции, без тейк-профита, вы можете рассмотреть ордеры ОТО.
Отправка заказа осуществляется с параметром «oto».order_class
Либо из, либо должны присутствовать (приведенный выше пример для случая тейк-профита), а остальные требования такие же, как и у брекет-ордеров.take_profitstop_loss
Как и в случае с брекетинговыми ордерами, замена ордеров пока не поддерживается.
Для стоп-лосс ордера расширенных ордеров, пожалуйста, имейте в виду, что запрос ордера может быть отклонен из-за ограничения значения параметра stop_price. Входная стоп-цена должна быть как минимум на $0,01 ниже (для стоп-лосса на продажу, выше для покупки) по сравнению с «базовой ценой». Базовая цена определяется следующим образом.
Это ограничение необходимо для того, чтобы избежать возможных ситуаций гонки при обработке заказов, но по мере совершенствования возможностей нашей системы это ограничение может быть ослаблено в будущем.
Скользящие стоп-ордера позволяют постоянно и автоматически обновлять порог стоп-цены на основе движения цены акции. Вы запрашиваете один ордер со значением смещения в долларах или в процентах, поскольку след и фактическая стоп-цена для этого ордера изменяются по мере движения цены акции в вашем благоприятном направлении, или остаетесь на последнем уровне в противном случае. Таким образом, вам не нужно следить за движением цены и постоянно отправлять запросы на замену, чтобы обновить стоп-цену близко к последнему движению рынка.
Скользящие стоп-ордера отслеживают самые высокие (для продажи, самые низкие для покупки) цены (называемые высшей отметкой, или hwm) с момента отправки ордера, а указанные пользователем параметры трейлинга определяют фактическую стоп-цену для срабатывания относительно максимальной отметки. Как только стоп-цена срабатывает, ордер превращается в рыночный ордер, и он может исполниться выше или ниже цены срабатывания стопа.
Чтобы отправить трейлинг-стоп ордер, вы установите параметр type в значение «trailing_stop». Существует два параметра отправки ордеров, связанных с трейлинг-стопом, один из которых является обязательным, когда тип «trailing_stop».
| поле | тип | описание |
|---|---|---|
| trail_price | струна<number> |
стоимость в долларах от самой высокой отметки воды. Если вы установите значение 2.00 для трейлинг-стопа на продажу, стоп-цена всегда равна .hwm - 2.00 |
| trail_percent | струна<number> |
Процентное значение от самой высокой отметки воды. Если вы установите значение 1.0 для трейлинг-стопа на продажу, стоп-цена всегда равна .hwm \* 0.99 |
Одно из этих значений должно быть установлено для трейлинг-стопов. Ниже приведен пример JSON-параметра для отправки трейлинг-ордеров.
Сущность Order, возвращаемая из метода, имеет несколько полей, связанных с трейлинг-стоп-ордерами.GET
| поле | тип | описание |
|---|---|---|
trail_price |
струна<number> |
Это то же значение, которое было указано при отправке заказа. Если это не было указано, то оно будет равно null. |
trail_percent |
струна<number> |
Это то же значение, которое было указано при отправке заказа. Если это не было указано, то оно будет равно null. |
hwm |
струна<number> |
Высокое значение водяного знака. Это постоянно меняется по мере того, как рынок движется в вашу сторону. |
stop_price |
струна<number> |
Это то же самое, что и стоп-цена в обычных стоп/стоп-лимитных ордерах, но она является производной от параметра и trail и постоянно обновляется по мере изменения hwm.hwm |
Если ордер трейлинг-стоп принят, статус ордера становится «новый». Пока ордер ожидает срабатывания стоп-цены, вы можете обновить параметр trail методом PATCH.
| поле | тип | описание |
|---|---|---|
trail |
струна<number> |
Новое значение значения or. Такой запрос на замену действителен только для ордера типа «trailing_stop» до достижения стоп-цены. Обратите внимание, что вы не можете изменить трейлинг цены на процентный трейлинг или наоборот.trail_pricetrail_percent |
Правильное использование ордеров Trailing Stop требует понимания цели и того, как они работают. Основной момент, о котором следует помнить при работе с ордерами Trailing Stop, заключается в том, чтобы убедиться, что разница между трейлинг-стопом и ценой достаточно велика, чтобы типичные колебания цены не вызывали преждевременного исполнения.
На быстро меняющихся рынках цена исполнения может быть менее выгодной, чем стоп-цена. Вероятность такой уязвимости увеличивается для заказов GTC в течение торговых сессий или для акций, торгующихся во время остановки. Стоп-цена запускает рыночный ордер, и, следовательно, не обязательно стоп-цена будет такой же, как цена исполнения.
Что касается дробления акций, Alpaca оставляет за собой право отменять или корректировать цены и/или делиться количеством скользящих стоп-ордеров по своему усмотрению. Поскольку Alpaca полагается на сторонние компании для получения рыночных данных, корпоративные действия или неверные ценовые данные могут привести к преждевременному срабатыванию трейлинг-стопа.
Заполните форму, чтобы получить профессиональную инвестиционную консультацию бесплатно.
Наведите камеру телефона на QR-код,
чтобы скачать мобильное приложение.