Skip to content
Back to skills

Add Walk Forward Feature

ASecurity

Use when designing a new feature (signal/modifier/sizing rule) that needs walk-forward validation. Triggers on "is this walk-forwardable?", "how do I A/B test feature X", "validate the new signal against OOS data".

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-aiapi

Works with

  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add anvilfilbert/Auto-Crypto-Tradingjournal --skill add-walk-forward-feature --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Add Walk Forward Feature?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Add Walk Forward Feature
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/anvilfilbert-add-walk-forward-feature/badge)](https://www.skillsdirectory.com/skills/anvilfilbert-add-walk-forward-feature)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: add-walk-forward-feature
description: Use when designing a new feature (signal/modifier/sizing rule) that needs walk-forward validation. Triggers on "is this walk-forwardable?", "how do I A/B test feature X", "validate the new signal against OOS data".
---

# Design Features for Walk-Forward Validation

The system ships candle-based walk-forward (`backtest_optimizer.run_walk_forward`) for OOS validation. Any feature meant to improve `setup_score` calibration should be walk-forward-testable BEFORE merging.

## The walk-forward viability rule

A feature is **walk-forwardable** if-and-only-if:
1. It is derived from closed candles (no future leakage)
2. It does NOT depend on runtime/cross-trade state (e.g., not "last 3 win streak")
3. It can be A/B toggled via env knob or boolean parameter

If 1, 2, 3 all hold → walk-forward A/B test. If any fails → operator workflow validation only.

## Decision tree

```
Is the feature a confluence signal or score modifier?
├── YES → walk-forward viable. Implement A/B toggle.
└── NO → continue
        │
        Is it a sizing multiplier (not a hard gate)?
        ├── YES, derived from closed candles → walk-forward viable
        └── NO, or uses runtime state → SKIP walk-forward; validate by operator workflow
```

## Walk-forwardable features (do A/B)

- All confluence signals (RSI/MACD/...) — derived from candles
- All score modifiers (PO3, HMM, kill-zone, bear_phase) — derived from candles or static rules
- Volatility-aware sizing — derived from per-asset ATR (candle-derived)
- Trade-grade computation — derived from open-time channel + close-time price

## NOT walk-forwardable (use other validation)

- Monthly DD breakers — calendar-dependent, runtime state
- Streak-based gates (loss breaker, euphoria dampener) — cross-trade runtime state
- Behavioral gates (Apgar, Readiness) — operator workflow
- Tiered BE moves — trade-lifecycle state
- Hedge logic — depends on basket state at runtime

For these: validate by counterfactual on historical data ("would this gate have blocked X trades last month?"), or by canary monitoring after deploy.

## Walk-forward A/B protocol

### 1. Add env toggle BEFORE walk-forward
- File: `trading/config.py` (or specific module's env block)
- Pattern: `<FEATURE>_ENABLED = bool(int(os.environ.get("FUTURES_AI_<FEATURE>_ENABLED", "1")))`
- Without the toggle, you can't run A/B without code edits.

### 2. Implement the feature
- See `add-score-modifier`, `add-confluence-signal`, or `add-risk-gate` skills for the implementation pattern.

### 3. Tests pass locally
- Unit tests cover the feature in isolation.

### 4. Walk-forward run with feature OFF (baseline)
- Set `FUTURES_AI_<FEATURE>_ENABLED=0`
- POST `/api/backtest/walk-forward` with `{symbol, timeframe, n_trials, days: 180}`
- Record: `train_sharpe`, `test_sharpe`, `train_trades`, `test_trades`, `generalizes`

### 5. Walk-forward run with feature ON
- Set `FUTURES_AI_<FEATURE>_ENABLED=1`
- Same POST. Record same metrics.

### 6. Compare and decide
| Outcome | Decision |
|---|---|
| `test_sharpe(ON) > test_sharpe(OFF) × 1.1` AND same/more trades | Ship with ON default |
| `test_sharpe(ON) ≈ test_sharpe(OFF)` AND ON has fewer false signals | Ship with ON default |
| `test_sharpe(ON) < test_sharpe(OFF) × 0.95` | Revert. Feature is noise. |
| ON halves trade count without Sharpe lift | Over-restrictive. Reduce magnitude. |
| Either OFF or ON shows `train_trades < 10` | Walk-forward isn't viable for this symbol/window. Try different symbol or extend days. |

### 7. Multi-symbol replication
- Run on 3-5 different symbols (different beta, different vol regime).
- Feature should help OR not-hurt on majority. If it helps BTC but hurts altcoins, gate it by liquidity/cap.

### 8. Document the result
- Save the A/B numbers in the feature's commit message OR in `optimizer_runs` history.
- Future calibration depends on this evidence trail.

## Multi-feature interaction problem

If 5 walk-forwarded features each show +5% Sharpe improvement individually, stacking all 5 does NOT give +25%. Often they fire on overlapping setups → diminishing returns. After 2-3 new features, walk-forward the FULL set vs the previous full set, not feature-by-feature.

## Operator-workflow validation (for non-walk-forwardable features)

For risk gates and behavioral features:
1. Ship with `ENABLED=0` default
2. Operator manually validates: "does the gate fire when I expect it to?"
3. Compare to recent history: "would this have blocked the QNT loss on 2026-05-22?"
4. Flip `ENABLED=1` after 1-2 weeks of dry-run monitoring

## Red flags

- "I'll just ship it without walk-forward" → stop. We added the `ai_score_at_open` column and walk-forward infrastructure specifically to validate features against OOS data.
- "Walk-forward shows ON beats OFF by 1%" → not significant. Need ≥10% Sharpe lift OR ≥20% trade count change to call it a real edge given n=~20 trades.
- "Walk-forward shows ON only beats OFF on BTC, not ETH" → don't ship. Single-symbol edge often = overfit. Demand multi-symbol replication.
- "I added 3 features all at once and walk-forwarded the bundle" → harder to attribute. Add and validate one at a time.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…