manifoldbt-backtester
Agent skill fromtradermonty/claude-trading-skills
Runs a declarative strategy spec over OHLCV bars with the manifoldbt Rust engine, pairs the fill log into round trips, and emits the eight inputs the backtest-expert skill scores. Use when the user wants to execute a backtest, measure a rule they have described, obtain win rate / average win / average loss / max drawdown from real bars, or feed backtest-expert with measured numbers instead of estimates.
How to install manifoldbt-backtester
install manifoldbt-backtester
# install the claude-trading-skills pack with the skills CLI
npx skills add tradermonty/claude-trading-skills# or add only this skill to Claude Code: copy the folder
skills/manifoldbt-backtester/
# into
~/.claude/skills/manifoldbt-backtester/ (all projects)
.claude/skills/manifoldbt-backtester/ (one project)
1# manifoldbt Backtester Skill23## Purpose45Execute what `backtest-expert` teaches. That skill grades a backtest on five6dimensions, and its prerequisites say "metrics are user-provided": it scores7numbers it never produces. This skill produces them. It runs a strategy over8real bars and returns the eight inputs its evaluator asks for.910The two chain in one direction: spec, run, evaluate.1112## When to Use This Skill1314- A user describes a rule and wants it measured15- `backtest-expert` is about to run and the numbers do not exist yet16- A win rate, average winner, average loser or drawdown must come from bars17- A strategy's parameter count must be established for scoring1819Leave the verdict to `backtest-expert`. It owns the thresholds and the red20flags, and this skill does not duplicate them.2122## Prerequisites2324- Python 3.9+25- `pip install manifoldbt` (the Python package is Apache 2.0, the compiled26 engine ships under the free Manifold-BT Engine License; the free tier covers27 everything this skill does)28- OHLCV bars as CSV or Parquet with columns `timestamp, open, high, low, close, volume`29- No API key required3031## Workflow3233### 1. Write the strategy spec3435A spec names indicators and one entry condition. Keep it to the smallest rule36that states the hypothesis. Every added knob makes an in-sample fit easier to37reach by accident, and the evaluator penalises the count.3839```json40{41 "name": "sma_cross_costed",42 "indicators": {43 "fast": { "type": "sma", "period": 20 },44…
Excerpt shown under the repository's MIT license.
