Skip to main content

CuteMarkets options research illustration

cutebacktests: Historical and Intraday Options Backtesting Runtime

Historical options backtesting, intraday options backtesting, quote-aware backtesting, and walk-forward strategy research for U.S. equities. cutebacktests is the public runtime behind CuteMarkets research: a DuckDB-backed options backtester, a historical options feed, market-data adapters, and an opening-range profile registry that you can run on your own machine.

This repository is designed for developers and quantitative researchers who need more than chart-level ideas. It focuses on causal entry logic, historical contract reconstruction, options microstructure filters, and reproducible evaluation surfaces instead of paper-only strategy descriptions.

Quick links:

Scope

  • Historical and intraday options backtest runtime
  • Historical options feed for contract reconstruction and close snapshots
  • CuteMarkets-backed market-data access for public examples and default workflows
  • Optional compatibility layers for auxiliary providers
  • Opening-range profile registry and profile helpers
  • Walk-forward and robustness helpers

Explore Examples

In-Repo Documentation

This repository does not ship the congressional-disclosure engine, live/paper bots, remote server launch tooling, or phase orchestration from the private repo.

Install

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'

Configure

cp .env.example .env

Required credentials depend on the commands you run:

  • CUTEMARKETS_API_KEY

Optional compatibility workflows may also use:

  • ALPACA_API_KEY
  • ALPACA_SECRET_KEY

Package-local paths use:

  • CUTEBACKTESTS_DATA_DIR
  • CUTEBACKTESTS_DB_PATH

Example

from datetime import datetime

from cutebacktests import (
    IntradayOptionsBacktestConfig,
    IntradayOptionsBacktester,
    get_opening_range_profile,
)
from cutebacktests.providers import CuteMarketsProvider
from cutebacktests.settings import Settings
from cutebacktests.storage import DataStore

settings = Settings.from_env(".env")
store = DataStore(settings.db_path)
profile = get_opening_range_profile("c4_long_only_rr15")

try:
    backtester = IntradayOptionsBacktester(
        store=store,
        cutemarkets_provider=CuteMarketsProvider(settings),
    )
    result = backtester.run(
        IntradayOptionsBacktestConfig(
            ticker="SPY",
            start=datetime(2025, 1, 1),
            end=datetime(2025, 1, 31),
            return_trade_log=True,
            **profile.to_intraday_strategy_kwargs(),
        )
    )
    print("trades:", result["trades"])
finally:
    store.close()

If you need an auxiliary provider for a private workflow, the runtime still supports that path. The public examples and the default research path in this repo use CuteMarkets directly.

CLI

Show the public CLI:

python -m cutebacktests.cli --help

Run the intraday/options backtester directly:

python -m cutebacktests.cli run-intraday-options-backtest \
  --ticker SPY \
  --start 2025-01-01 \
  --end 2025-12-31

The public CLI uses CuteMarkets by default. Add --with-alpaca only if you explicitly want the auxiliary provider enabled.

Run a named opening-range profile:

python -m cutebacktests.cli run-opening-range-profile-backtest \
  --profile-name c4_long_only_rr15 \
  --ticker SPY \
  --start 2025-01-01 \
  --end 2025-12-31

Tests

PYTHONPATH=src python -m pytest tests/test_public_surface.py -q

Documentation

Metadata

Release files for cutebacktests 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cutebacktests 0.3.0
File Size Uploaded
cutebacktests-0.3.0.tar.gz 284.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cutebacktests 0.3.0
File Interpreter ABI Platform
cutebacktests-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 581.3 kB

Release files / cutebacktests-0.3.0.tar.gz

Download URL cutebacktests-0.3.0.tar.gz
Size 284.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a8364fe71f7a12a44f440bb4af18ae8f4d4a468e6054057504a6fa76ae25d4f7
BLAKE2b-256 checksum
How to use checksums
b215fc95111e8d68f903de2e5fb51074e334b206486f0a0ec343008f2de2b0c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 2, 2026.

Transparency log

Release files / cutebacktests-0.3.0-py3-none-any.whl

Download URL cutebacktests-0.3.0-py3-none-any.whl
Size 296.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b9db957c5476e172a5306e240dbcaf8b9cfbfb10be971e51d8a9ae78e2b8369
BLAKE2b-256 checksum
How to use checksums
c39bd0b8da5c5617573d97bb543b3f0bdf850b504a472b2186491b733e5b2e4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page