context.
Каркас файла
initialize(context)
Требуется для большинства стратегий. Ziplime вызывает эту функцию один раз перед первым баром.
Используйте её, чтобы:
- Найти инструменты.
- Сохранить константы и изменяемое состояние в
context. - Зарегистрировать функции, запускаемые по расписанию.
- Настроить торговые ограничения.
- Подключить пайплайны.
- Прочитать конфигурацию алгоритма из
context.algorithm.config.
initialize. Функции работы с заявками доступны только после инициализации.
handle_data(context, data)
Основная функция торговой логики. Ziplime вызывает её на каждом баре с периодичностью, заданной параметром симуляции emission_rate.
Используйте её, чтобы:
- Получать текущие и исторические значения из
data. - Рассчитывать сигналы.
- Проверять денежные средства, позиции и открытые заявки.
- Размещать, приводить к целевому значению или отменять заявки.
- Записывать метрики в итоговую таблицу.
before_trading_start(context, data)
Необязательная функция. Ziplime вызывает её один раз за торговую сессию до обычной обработки баров.
В текущей версии среды функция вызывается синхронно, поэтому определяйте её через def, а не через async def.
Используйте её, чтобы:
- Сбросить дневное состояние.
- Получить результат пайплайна.
- Подготовить список инструментов на день.
before_trading_start функции работы с заявками явно запрещены.
analyze(context, perf)
Необязательная функция. Ziplime вызывает её один раз после завершения симуляции.
В текущей версии среды функция вызывается синхронно, поэтому определяйте её через def, а не через async def.
perf — итоговая таблица результатов, созданная исполнителем. В неё входят переменные, записанные с помощью context.record(...).
Хранение состояния
Все данные, которые должны сохраняться между барами, записывайте в атрибутыcontext:
Конфигурация алгоритма
Если в файле алгоритма определён подклассBaseAlgorithmConfig, Ziplime может загрузить его из JSON-конфигурации, переданной в run_simulation(..., config_file=...).