Skip to main content

ran walk-forward test - strategy holding up

been profitable 3 months now.

wanted to verify i’m not just curve fitting.

ran walk-forward analysis this weekend.

what is walk-forward testing
#

normal backtest:

  • optimize parameters on all historical data
  • get amazing results
  • trade live and fail (curve fitting)

walk-forward test:

  • split data into chunks
  • optimize on chunk 1, test on chunk 2
  • optimize on chunk 2, test on chunk 3
  • repeat forward through time
  • prevents overfitting

my setup
#

data range: jan 2022 - july 2023 (18 months)

window size: 3 months optimize, 1 month test

chunks:

  1. optimize: jan-mar 2022, test: apr 2022
  2. optimize: feb-apr 2022, test: may 2022
  3. optimize: mar-may 2022, test: jun 2022 … continues through july 2023

parameters tested:

  • lookback period (10-50 days)
  • vol threshold (0.5-3.0)
  • profit target (30%-70%)
  • stop loss (-100% to -200%)

results
#

in-sample performance (optimization periods):

  • sharpe: 2.8
  • max DD: -12%
  • win rate: 82%

out-of-sample performance (test periods):

  • sharpe: 2.1
  • max DD: -18%
  • win rate: 76%

degradation: 25% worse out-of-sample vs in-sample

what this means
#

good signs:

  • strategy still profitable out-of-sample
  • sharpe > 2.0 on unseen data
  • win rate above 70%

warning signs:

  • 25% degradation is significant
  • max DD increased 50% out-of-sample
  • some test periods were flat/negative

best parameters found
#

walk-forward identified these as most reliable:

lookback: 21 days (not 10, not 50, right in middle)

vol threshold: 1.2 (current VIX analog)

profit target: 50% (what i’m already using)

stop loss: -150% (what i used before testing -140%)

interesting: walk-forward says revert to -150% stops.

matches my recent testing where -140% was getting whipsawed.

parameter stability test
#

checked how often optimal parameters changed between windows.

lookback period:

  • changed 8 times across 15 windows
  • mostly stayed 18-24 days

vol threshold:

  • changed 11 times
  • ranged 0.8-1.5

profit target:

  • changed 6 times
  • mostly stayed 45%-55%

stop loss:

  • changed 12 times (most unstable)
  • ranged -120% to -180%

conclusion: parameters are somewhat stable. not wildly jumping around.

live trading vs walk-forward
#

my actual results (may-july 2023):

  • sharpe: 2.1
  • max DD: -$544 (-0.16% of account)
  • win rate: 78%

walk-forward predicted (may-july test window):

  • sharpe: 2.0
  • max DD: -15%
  • win rate: 76%

pretty close match. strategy performing as expected.

what i’m changing
#

1. reverting stop loss to -150%

walk-forward confirms -140% stops get whipsawed.

going back to -150% starting monday.

2. keeping profit target at 50%

tested 55% last 2 weeks. avg win increased but not enough to justify.

walk-forward says 50% is optimal. reverting.

3. adding parameter review quarterly

will re-run walk-forward every 3 months.

if parameters drift, will adjust slowly.

overfitting check: passed
#

strategy works on out-of-sample data.

not just curve fit to historical data.

edge appears real.

the risk
#

walk-forward tests past data.

doesn’t predict regime changes:

  • major market crash
  • vol spike > 50
  • liquidity crisis

if market regime changes significantly, strategy might fail.

monitoring for this with vol detection system.

next steps
#

continue live trading with validated parameters.

quarterly walk-forward review.

watch for regime changes.

stay humble (3 months profitable ≠ figured it all out).

trading update
#

friday 7/14: +$405 (from week 2 review)

monday 7/17: (will trade with -150% stops again)

july total: +$2,001

goal: +$3,500. need: +$1,499 in 2 weeks.

mental state
#

confident but cautious.

walk-forward validation feels good.

but know past performance ≠ future results.

staying disciplined. following systems.


4:15am monday. ran walk-forward test. strategy holding up. reverting to -150% stops. edge appears real but staying humble.

-AK

Related

testing tighter stops - early results mixed
started testing tighter stop losses today. goal: reduce avg loss from $660 to $600. early results: mixed. the change # old stops: -150% of credit received
rebuilt backtesting pipeline - 10x faster parameter optimization
spent last 3 days rebuilding backtest optimization pipeline. went from 6 hours to 35 minutes for full parameter sweep. the problem # old approach: sequential parameter testing.
checking my backtests for overfitting
worried my strategies are overfit to historical data. spent today testing for it. been reading NexusFi backtesting threads about this exact problem. the problem # my backtests look great:
backtest vs live - wtf happened
my backtests showed +20% annual returns. i’m down 12.75% after 3 months live. something is very fucking wrong. the numbers don’t match #
position sizing is killing me - fixing it with code
been up since 3am coding a proper position sizing module. my current approach (fixed 2% risk per trade) is bleeding me out. down another $8k this week. total drawdown now -$48k since january. at this rate i’ll be broke by august.
week 3 performance: sharpe 2.1 actual vs 1.64 backtest
three weeks live = enough data for initial validation # march 15 - march 30 (15 trading days)