Cutebacktests
Backtesting framework for modern option strategies
Install / Use
npx skills add cutemarkets/cutebacktestsInstalls into whichever agent you are using.
README
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
- examples/run_intraday_options_backtest.py
- examples/run_opening_range_profile.py
- examples/historical_options_feed_demo.py
- examples/walk_forward_profile_eval.py
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_KEYALPACA_SECRET_KEY
Package-local paths use:
CUTEBACKTESTS_DATA_DIRCUTEBACKTESTS_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
Run the public walk-forward wrapper:
python -m cutebacktests.cli run-walk-forward-profile-backtest \
--profile-name c4_long_only_rr15 \
--ticker SPY \
--start 2025-01-01 \
--end 2025-12-31 \
--output-dir tmp/walkforward_spy
Audit daily options tradability before a backtest:
python -m cutebacktests.cli sample-option-tradability \
--ticker SPY \
--end-day 2025-12-31 \
--lookback-days 30 \
--output-dir tmp/tradability_spy
Tests
PYTHONPATH=src python -m pytest tests/test_public_surface.py -q
Documentation
- CuteMarkets Docs: cutemarkets.com/docs/
- Repository: github.com/cutemarkets/cutebacktests
- Python SDK: github.com/cutemarkets/cutemarkets-python
- Public model repo: github.com/cutemarkets/cute-intraday-option-strats
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
