Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.
.claude/skills/itamarzand88-backtesting-frameworks/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 14% | 0% |
| case-02 | ✓→✓ | = Same ✓ | -2% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 18% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 25% | 0% |
<!-- source: wshobson-backtesting-frameworks — https://raw.githubusercontent.com/wshobson/agents/main/plugins/quantitative-trading/skills/backtesting-frameworks/SKILL.md -->
Build robust, production-grade backtesting systems that avoid common pitfalls and produce reliable strategy performance estimates.
| Bias | Description | Mitigation | | ---------------- | ------------------------- | ----------------------- | | Look-ahead | Using future information | Point-in-time data | | Survivorship | Only testing on survivors | Use delisted securities | | Overfitting | Curve-fitting to history | Out-of-sample testing | | Selection | Cherry-picking strategies | Pre-registration | | Transaction | Ignoring trading costs | Realistic cost models |
Historical Data
│
▼
┌─────────────────────────────────────────┐
│ Training Set │
│ (Strategy Development & Optimization) │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Validation Set │
│ (Parameter Selection, No Peeking) │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Test Set │
│ (Final Performance Evaluation) │
└─────────────────────────────────────────┘Window 1: [Train──────][Test]
Window 2: [Train──────][Test]
Window 3: [Train──────][Test]
Window 4: [Train──────][Test]
─────▶ TimeDetailed sections (starting with ## Implementation Patterns) live in references/details.md. Read that file when the navigation summary above is insufficient.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 17,033 | 14,756 | -13% | 1 | 1 | 0% | 3,586 | 4,084 | +14% | 0 | 0 | — |
case-02 | pass→pass | 14,838 | 11,457 | -23% | 1 | 1 | 0% | 4,165 | 4,072 | -2% | 0 | 0 | — |
case-03 | pass→pass | 16,515 | 16,395 | -1% | 1 | 1 | 0% | 3,342 | 3,951 | +18% | 0 | 0 | — |
case-04 | pass→pass | 11,516 | 10,065 | -13% | 1 | 1 | 0% | 2,277 | 2,848 | +25% | 0 | 0 | — |
case-05 | pass→pass | 11,497 | 10,817 | -6% | 1 | 1 | 0% | 2,371 | 2,858 | +21% | 0 | 0 | — |
case-06 | pass→pass | 12,971 | 8,775 | -32% | 1 | 1 | 0% | 2,396 | 2,284 | -5% | 0 | 0 | — |
case-07 | pass→pass | 8,934 | 7,159 | -20% | 1 | 1 | 0% | 1,862 | 2,080 | +12% | 0 | 0 | — |
case-08 | fail→pass | 7,492 | 6,665 | -11% | 1 | 1 | 0% | 1,538 | 1,924 | +25% | 0 | 0 | — |
case-09 | pass→pass | 15,108 | 11,334 | -25% | 1 | 1 | 0% | 2,991 | 2,768 | -7% | 0 | 0 | — |
case-10 | pass→pass | 18,791 | 15,173 | -19% | 1 | 1 | 0% | 3,847 | 4,013 | +4% | 0 | 0 | — |
case-11 | pass→pass | 9,944 | 6,653 | -33% | 1 | 1 | 0% | 1,834 | 1,991 | +9% | 0 | 0 | — |
case-12 | pass→pass | 8,022 | 7,356 | -8% | 1 | 1 | 0% | 1,706 | 2,188 | +28% | 0 | 0 | — |
case-13 | pass→pass | 12,247 | 10,730 | -12% | 1 | 1 | 0% | 2,415 | 2,809 | +16% | 0 | 0 | — |
case-14 | pass→pass | 10,059 | 9,708 | -3% | 1 | 1 | 0% | 2,170 | 2,531 | +17% | 0 | 0 | — |
case-15 | pass→pass | 10,522 | 8,636 | -18% | 1 | 1 | 0% | 2,230 | 2,276 | +2% | 0 | 0 | — |
case-16 | pass→pass | 7,825 | 6,390 | -18% | 1 | 1 | 0% | 1,652 | 1,805 | +9% | 0 | 0 | — |
case-17 | pass→pass | 6,465 | 2,931 | -55% | 1 | 1 | 0% | 1,205 | 1,187 | -1% | 0 | 0 | — |
case-18 | pass→pass | 7,495 | 5,492 | -27% | 1 | 1 | 0% | 1,592 | 1,843 | +16% | 0 | 0 | — |
case-19 | pass→pass | 10,806 | 11,962 | +11% | 1 | 1 | 0% | 2,168 | 2,905 | +34% | 0 | 0 | — |
case-20 | pass→pass | 5,601 | 5,802 | +4% | 1 | 1 | 0% | 1,129 | 1,807 | +60% | 0 | 0 | — |
case-21 | pass→pass | 14,471 | 11,808 | -18% | 1 | 1 | 0% | 3,049 | 2,990 | -2% | 0 | 0 | — |
case-22 | pass→pass | 2,750 | 2,557 | -7% | 1 | 1 | 0% | 584 | 1,120 | +92% | 0 | 0 | — |
case-23 | pass→pass | 11,231 | 9,963 | -11% | 1 | 1 | 0% | 2,099 | 2,635 | +26% | 0 | 0 | — |
case-24 | pass→pass | 13,380 | 13,327 | -0% | 1 | 1 | 0% | 2,528 | 3,136 | +24% | 0 | 0 | — |
case-25 | pass→pass | 13,151 | 10,786 | -18% | 1 | 1 | 0% | 2,668 | 2,868 | +7% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 25 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.