360 Secure SkillHub
360 安全技能中心

Stock Strategy Backtester Clean

这是一款仅做多的股票策略回测工具,支持SMA交叉、RSI均值回归、突破三种经典策略。可基于含Date/Close列的OHLCV CSV数据,设置手续费、滑点等真实交易成本,输出总收益、CAGR、胜率、最大回撤、夏普比率等核心指标及交易明细,适用于策略评估对比、参数调优、量化交易成本影响等场景,支持JSON输出适配自动化流程,结果仅供研究参考。

taylen
taylen
热度 83.46
最近更新 2026-05-11 17:27:16
分类:数据依赖:代码执行 / 读写文件应用场景:数据处理 / 报告撰写 / 财务

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add stock-strategy-backtester-clean
Metadata
name
stock-strategy-backtester-clean
description
Backtest stock trading strategies on historical OHLCV data and report win rate, return, CAGR, drawdown, Sharpe ratio, and trade logs. Use when evaluating or comparing strategy rules (SMA crossover, RSI mean reversion, breakout), quantifying transaction-cost impact, tuning parameters, or generating performance summaries from CSV data. Trigger for requests like "回测股票策略胜率", "测收益率", "compare two strategy backtests", and "build a strategy report from historical prices".

Stock Strategy Backtester Clean

Version Notice

  • Use this clean slug if your environment pins to stock-strategy-backtester-clean.

Overview

Run repeatable, long-only stock strategy backtests from daily OHLCV CSV files. Use bundled scripts to generate consistent metrics and trade-level output, then summarize with investor-friendly conclusions.

Quick Start

  1. Prepare a CSV with at least Date and Close columns.
  2. Run a baseline backtest:
python scripts/backtest_strategy.py \
  --csv /path/to/prices.csv \
  --strategy sma-crossover \
  --fast-window 20 \
  --slow-window 60
  1. Export artifacts for review:
python scripts/backtest_strategy.py \
  --csv /path/to/prices.csv \
  --strategy rsi-reversion \
  --rsi-period 14 \
  --rsi-entry 30 \
  --rsi-exit 55 \
  --commission-bps 5 \
  --slippage-bps 2

Workflow

  1. Validate data
  • Ensure Date is parseable and sorted ascending.
  • Ensure Open/High/Low/Close are numeric; missing Open/High/Low falls back to Close.
  1. Pick strategy logic
  • sma-crossover: trend-following with fast/slow moving averages.
  • rsi-reversion: buy oversold and exit on momentum recovery.
  • breakout: enter on highs breakout and exit on lows breakdown.
  1. Set realistic assumptions
  • Always set --commission-bps and --slippage-bps.
  • Avoid reporting cost-free backtests as production-ready.
  1. Compare variants
  • Change one parameter block at a time.
  • Compare on the same date range and same cost model.
  1. Produce final summary
  • Report: total_return_pct, cagr_pct, win_rate_pct, max_drawdown_pct, sharpe_ratio, profit_factor, and trade count.
  • Use trade CSV to explain where alpha is coming from.

Supported Commands

  • Baseline SMA strategy:
python scripts/backtest_strategy.py \
  --csv /path/to/prices.csv \
  --strategy sma-crossover \
  --fast-window 10 \
  --slow-window 50
  • Breakout strategy:
python scripts/backtest_strategy.py \
  --csv /path/to/prices.csv \
  --strategy breakout \
  --lookback 20
  • JSON-only output (for automation pipelines):
python scripts/backtest_strategy.py \
  --csv /path/to/prices.csv \
  --strategy rsi-reversion \
  --quiet

Output Contract

  • Script prints a JSON object to stdout with:
  • strategy
  • period
  • metrics
  • config
  • trades

Analysis Guardrails

  1. Use out-of-sample logic
  • Prefer walk-forward validation over one-shot tuning.
  1. Avoid leakage
  • Compute signals from bar t, execute at bar t+1 open.
  1. Report downside with upside
  • Never present return without drawdown and trade count.
  1. Treat results as research
  • Backtests are not guarantees and should not be framed as financial advice.

References

  • Metrics details: references/backtest-metrics.md