搜索

PythonReactSEOPDF
GitHub Skill

tradeblocks-wfa

Walk-forward analysis for trading strategies. Tests whether optimized parameters hold up on out-of-sample data. Use when checking parameter robustness, detecting potential overfitting, or validating a backtest.

davidromeo☆ 30 仓库 Stars15 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

Walk-Forward Analysis

Test whether strategy parameters hold up when applied to data the optimizer never saw.

What is Walk-Forward Analysis?

Walk-forward analysis (WFA) tests parameter robustness by:

  1. Dividing history into segments
  2. In-Sample (IS): The data used to find "optimal" parameters
  3. Out-of-Sample (OOS): Data the optimizer never saw, used to test those parameters
  4. Rolling forward: Repeat across the entire history
|------ IS Period 1 ------|-- OOS 1 --|
              |------ IS Period 2 ------|-- OOS 2 --|
                            |------ IS Period 3 ------|-- OOS 3 --|

If OOS performance is close to IS performance, the parameters may be capturing real patterns. If OOS significantly underperforms, the parameters may be fitting to noise.

Prerequisites

  • TradeBlocks MCP server running
  • Block with sufficient trade history (50+ trades for meaningful analysis)

Process

Step 1: Select Strategy

Use list_blocks to show available blocks.

Ask:

  • "Which backtest contains the strategy you want to analyze?"
  • "Do you want to test a specific strategy or the full portfolio?"

Note the block ID and optional strategy filter for subsequent steps.

Step 2: Understand User Goals

Walk-forward analysis answers different questions:

Goal What to Look For
Test if parameters are robust Overall WF efficiency, OOS vs IS degradation
Check for potential overfitting High IS but low OOS performance
Evaluate consistency How many OOS periods were profitable
Understand parameter sensitivity Parameter stability across windows

Ask: "What are you trying to understand about this strategy?"

Step 3: Run Analysis

Call run_walk_forward with the selected block.

Key parameters:

  • isWindowCount: Number of in-sample windows (default: 5)
  • oosWindowCount: Number of out-of-sample windows (default: 1)
  • optimizationTarget: Metric to optimize (default: sharpeRatio)
  • minInSampleTrades: Minimum trades in IS period (default: 10)
  • minOutOfSampleTrades: Minimum trades in OOS period (default: 3)

For shorter histories (< 100 trades):

  • Consider reducing isWindowCount to 3
  • Lower minimum trade counts

For longer histories (> 500 trades):

  • Consider isWindowCount of 7+
  • Can use explicit inSampleDays and outOfSampleDays for more control
Step 4: Interpret Results

The tool returns a verdict with three components, each rated as "good", "moderate", or "concerning":

Walk-Forward Efficiency (degradationFactor):

  • Measures how well IS performance transfers to OOS
  • Calculated as: OOS Performance / IS Performance
Efficiency Rating What It Suggests
>= 80% Good OOS retained most of IS performance
60-79% Moderate Some degradation, but meaningful signal may remain
< 60% Concerning Significant gap between IS and OOS

Thresholds based on Pardo's work, adjusted upward because TradeBlocks uses ratio metrics (Sharpe, profit factor) which should degrade less than raw returns.

Parameter Stability:

  • Coefficient of variation < 30% = "good" (stable parameters)
  • 30-50% variation = "moderate"
  • 50% variation = "concerning" (parameters sensitive to data window)

Consistency Score:

  • Percentage of OOS periods that were profitable
  • = 70% = "good"

  • 50-70% = "moderate" (around random chance)
  • < 50% = "concerning"
Step 5: Present Findings

Synthesize the analysis into what it reveals about the strategy:

Walk-Forward Results:

  • Efficiency: [value]% ([rating]) - OOS retained [value]% of IS performance
  • Stability: [rating] - Parameters [were consistent / showed variation] across windows
  • Consistency: [value]% of OOS periods profitable ([rating])
  • Overall verdict: [good/moderate/concerning]

What this suggests:

  • [If efficiency is high]: OOS performance tracked IS reasonably well
  • [If efficiency is low]: Significant gap between optimized and real-world performance
  • [If stability is low]: Optimal parameters varied significantly between windows
  • [If consistency is low]: Many OOS periods were unprofitable

Individual period breakdown (if relevant):

  • Show IS vs OOS performance for each window
  • Highlight any windows with unusual behavior

Present these as insights about what the historical data shows, not as trading advice.

Interpretation Reference

For detailed walk-forward concepts, see references/wfa-guide.md.

Related Skills

After walk-forward analysis:

  • /tradeblocks-health-check - Full metrics review
  • /tradeblocks-risk - Position sizing analysis

Common Issues

"Insufficient trades for walk-forward analysis"

  • Need at least 20 trades total
  • Reduce window count or expand date range

Low consistency but decent efficiency:

  • Small sample size causing noise
  • Consider running with more windows if data permits

Individual periods show high variance:

  • May indicate regime changes during the historical period
  • The tool's periods array shows per-window breakdown

Notes

  • WFA tests parameter robustness, not profitability
  • Strong WFA results don't guarantee future performance
  • Weak WFA results suggest the optimization may be fitting to noise

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-01-20
索引更新时间
2026-01-31
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!