2.11.0
Each listing now keeps its own venue’s trading hours, so one backtest can hold instruments from markets that keep different hours. Extensions can add venues, calendars and data-source addresses without patching Ziplime. Upgrading from 2.10.3- Single-market backtests are unchanged: a run whose listings all trade on the simulation’s own calendar gives the same results.
- Moscow venues need zipfinam (1.26.10.1 or later). Ziplime itself ships no calendar for MISX or RTSX; without zipfinam, Moscow listings are judged by the simulation’s calendar, as before.
- A listing is judged by its own venue’s hours.
data.can_tradeasks the listing’s venue: on a daily run, whether it traded that day; on an intraday run, whether it is open that minute. context.rebalanceleaves a leg alone while its market is shut, instead of failing the run.- Ordering a listing whose market is closed now says so and names both calendars. Before, the error blamed delisting.
2.10.3
The first release since 1.19.16. Futures, bonds and options trade alongside equities in one portfolio; there is a command line and a local MCP server; point-in-time datasets mount straight from the Hugging Face Hub; and the same file runs live on Lime. Upgrading from 1.19.16- Rebuild the asset database. The schema history restarted, so a 1.19 database cannot be upgraded in place. Run
ziplime ingest-assets --clear, then re-ingest your bundles. - Bundles are Delta Lake tables instead of plain Parquet.
- Optional features are pip extras —
mcp,huggingface,options,numba,all. See Install & Run.
Results that change — each is a fix, but a result stored from 1.19 will not reproduce:
- Next-bar execution is the default in the CLI and the MCP server. Before,
handle_datasaw the portfolio from before the bar’s fills, and target orders re-sent orders that had already filled. - Commission reaches the cost basis, for equities too.
- Auto-close works: a listing past its auto-close date no longer stays on the books at a stale mark.
get_open_orders(asset)reports working orders. It used to return[].- Cancelled and rejected orders leave the open-order book.
- Trading controls are enforced:
set_max_position_size,set_max_order_size,set_max_order_count,set_long_only,set_asset_restrictions. - The first session is kept on exchanges east of UTC.
perf["positions"]holds snapshots, so recorded rows no longer change as the run proceeds.- Benchmark returns are aligned to sessions.
equity_slippageandfuture_slippagearguments ofrun_simulationare honoured.- Futures variation margin applies in both directions.
order_value with limit_price or stop_price, NoSlippage, PerTrade commission, running without a benchmark, and ziplime clean.
The full list is in release-notes.md in the repository.