context. Вызывайте их в handle_data или в запланированных функциях обратного вызова. Не размещайте заявки в initialize и before_trading_start.
Стили исполнения
Импортируйте стили исполнения изziplime.finance.execution.
Для рублёвых инструментов MOEX цены в этих примерах выражены в рублях; в общем случае используется валюта котировки инструмента.
Фиксированное количество
await context.order(asset, amount, style, exchange_name=None)
Положительное значение amount открывает или увеличивает длинную позицию либо закрывает короткую. Отрицательное значение продаёт инструмент или открывает короткую позицию.
Целевое количество
await context.order_target(asset, target, style, exchange_name=None)
Изменяет позицию до целевого количества акций или контрактов.
Доля портфеля
await context.order_target_percent(asset, target, style, exchange_name=None, reserved_percentage_for_fees=0.05)
Изменяет позицию до целевого веса в портфеле. Значение target должно находиться в диапазоне от -1 до 1.
await context.order_percent(asset, percent, style, exchange_name=None)
Изменяет позицию на долю текущей стоимости портфеля. Это не целевое значение: метод добавляет или сокращает экспозицию относительно текущей позиции.
Денежная стоимость
await context.order_target_value(asset, target, style, exchange_name=None)
Изменяет позицию до целевой номинальной стоимости в валюте портфеля.
context.order_value(...)
order_value присутствует как совместимый с Zipline метод для заявок на приращение денежной стоимости. В текущем коде стратегий Ziplime предпочтительнее использовать order_target_value, order_percent или order, если вы отдельно не проверили, что ваш путь исполнения поддерживает нужное поведение order_value.
Открытые заявки
context.get_open_orders(asset=None)
Возвращает открытые на текущий момент заявки. Передайте инструмент, чтобы отфильтровать результат.
context.get_order(order_id, exchange_name)
Возвращает заявку по идентификатору.
"MOEX" должно совпадать со значением exchange_name в конфигурации запуска.
await context.cancel_order(order_id, exchange_name, relay_status=True)
Отменяет открытую заявку.
Возвращаемый объект заявки
Методы работы с заявками возвращают объектOrder или None, если заявка не была размещена.
Полезные поля:
Момент исполнения
Приrun_simulation(..., same_bar_execution=True) заявки, отправленные в handle_data, могут исполниться на том же баре. При same_bar_execution=False они исполняются на одном из следующих баров.
Цена исполнения определяется параметром price_used_in_order_execution со значением "open", "close", "low" или "high", а также настроенной моделью проскальзывания.