Skip to main content
Ziplime is an open-source Python backtesting engine: github.com/Limex-com/ziplime. This section documents the engine as you install and run it yourself — current version 2.11.0. Ziplime started as a fork of Zipline, the engine behind Quantopian, and keeps its programming model: initialize, handle_data, context, data, order_target_percent. Most of the engine underneath has since been rewritten: Polars instead of pandas in the data layer, asyncio end to end, and Python 3.12+.
The hosted platform at ziplime.limex.com runs the same engine inside a sandbox with a narrower contract: no imports, only initialize and handle_data, no config class. This section describes the open-source engine. On the hosted platform, follow the rules its own editor and MCP server give you.

Strict by default

The engine is built to catch what a hand-written or AI-written strategy gets wrong. The shortcuts that make a backtest look better have to be asked for by name:
  • Next-bar fills. In the CLI and the local MCP server an order fills on the bar after the decision. Same-bar fills are an explicit flag.
  • Look-ahead checks on vectorized signals. compute_signals is recomputed on truncated history, and a signal that used the future stops the run before the first order.
  • Point-in-time data. Datasets such as fundamentals or insider trades are windowed by the date a row became public, not by the period it describes.
  • Costs are applied or refused, never dropped. A cost model that can’t be applied stops the run by name.
  • No tool places an order on its own. The local MCP server has no order tool.

What’s in the box

Where to go next

Install & run

pip install ziplime, ingest data, run your first backtest.

Strategy language

The API you use inside an algorithm file.

Use it with your AI

Connect Claude Code, Codex or Cursor through MCP.

What's new

Changes in 2.10.3 and 2.11.0, and how to upgrade.