If you’re serious about passing a prop firm challenge, you need a plan that doesn’t just work on EURUSD or USDJPY. CFD products like oil, gold, and indices offer volatility, clear directional moves, and big opportunities — but you’ve got to test them right.
Let’s break down how to set up your training data, validation windows, and strategy ranking filters when you’re working with CFDs like USOIL.cash, XAUUSD, and US100.cash.
The ticker names might differ slightly by broker, but the concepts below work across the board.
⚙️ CFD Backtest Structure: What You Need to Know
CFDs behave differently than spot forex. They react to broader economic factors, are affected by futures rollovers (even when trading spot-like tickers), and they don’t run 24/5 in the same way as major currency pairs.
But here’s the good news — they’re incredibly tradeable if you know how to train on them.
We’ll walk through 3 CFD examples:
- US Crude Oil (USOIL.cash)
- Gold (XAUUSD)
- NASDAQ-100 Index (US100.cash)
Each section will include:
- Training + OOS Periods
- Filtering Criteria
- Out-of-Sample Retests
- Alternative Market Backtests
🛢️ USOIL.cash (West Texas Intermediate Crude) H1
“USOIL.cash” is FTMO’s CFD for WTI crude oil. This is not Brent crude — that’s UKOIL.cash.
🔧 Training Period
- In-Sample: 2013/January – 2020/December
- OOS (Validation): 2021/January – 2022/December
📈 Strategy Filters (In-Sample)
- Average Trades/Month > 2
- Profit Factor > 1.3
- Return/Drawdown > 4
- Number of Trades > 50
🔬 Out-of-Sample Retest
- Period: 2023/January – 2024/January
- Filter: Profit Factor > 1
🌍 Alternative Market
- Brent Crude (UKOIL.cash): 2013/January – 2024/January
- Filter: Profit Factor > 1
This helps validate whether your oil strategy works across different but correlated products.
💻 US100.cash (NASDAQ-100 Index) H1
“US100.cash” tracks the NASDAQ-100 — a tech-heavy index of the top 100 non-financial companies in the U.S. Volatile, fast, and full of intraday opportunity.
🔧 Training Period
- In-Sample: 2012/January – 2020/December
- OOS (Validation): 2021/January – 2022/December
📈 Strategy Filters (In-Sample)
- Average Trades/Month > 2
- Profit Factor > 1.3
- Return/Drawdown > 6
- Number of Trades > 50
- Winning Percent > 30%
🔬 Out-of-Sample Retest
- Period: 2023/January – 2024/January
- Filter: Profit Factor > 1
🌍 Alternative Markets
- Dow Jones & S&P 500 CFDs
- Period: 2013/January – 2024/January
- Filter: Profit Factor > 1
If your NASDAQ strategy survives in other indices, you’ve probably found something robust.
🪙 XAUUSD (Gold) H1
This one’s simple: XAU = gold, USD = U.S. dollars. Gold is a favorite for algorithmic trading because of its trends and volatility.
🔧 Training Period
- In-Sample: 2011/January – 2020/December
- OOS (Validation): 2021/January – 2022/December
📈 Strategy Filters (In-Sample)
- Average Trades/Month > 2
- Profit Factor > 1.3
- Return/Drawdown > 4
- Number of Trades > 50
- Winning Percent > 30%
🔬 Out-of-Sample Retests
- 2023/January – 2024/January
- 2003/January – 2010/December (if you can get older gold data)
- Filter: Profit Factor > 1
🕒 Other Timeframes
- H4 and M30 timeframes
- Period: 2003/January – 2024/January
- Filter: Profit Factor > 1
📊 Ranking & Filtering Tips for CFDs
When filtering strategies for CFD markets, use stricter return-to-drawdown ratios than you would with forex. Indices and commodities move bigger and sharper, so the margin for poor execution or overfitting is higher.
Stick to:
- Profit Factor > 1.3 in-sample
- Return/Drawdown > 4 (or > 6 for indices)
- Avoid anything with fewer than 50 trades — unless you’re building higher-timeframe swing systems
⚡ Final Thoughts
Don’t sleep on CFDs when training your prop firm strategies. Oil, gold, and index CFDs offer high-volume setups, better slippage resilience, and clear risk-on/risk-off trends that forex pairs don’t always give.
Train smart:
- Use long training windows
- Validate with realistic OOS slices
- Retest in different market environments and products
Got questions? Drop a comment or hit me up if you want to dive deeper into walk-forward optimization, robustness testing, or filtering your CFD strategies inside StrategyQuant X.