Markets › European Indices · DAX index CFD quotes (HistData, 1-minute)

DAX Fibonacci Pullback Strategy Backtest: a YouTube Trend Day-Trading Rule, 2011 to 2026

Daily and 1-hour trend, a break of the previous day's high, and a limit order at the 61.8% Fibonacci level, with a 50-point stop and a 100-point target: tested on every DAX trading day it allowed, with costs and a control.

DAX (index CFD quotes) · 15-minute setup on 1-minute bars · Protocol v1.0 plus the 8 Oct 2026 rules

Buried · No proven edge

It bought the 61.8% dip after a break of yesterday's high. Random days did better.

BornRules, variants, costs and gates frozen 7 Nov 2026 (dfib_spec.md), before any level or trade was computed
Died7 Nov 2026

Variants tried: 2 · Passed every gate: 0 · Holdout opened: yes (already used once)

Short answer: not in our test. The YouTube rule (daily and 1-hour EMA uptrend, a break of the previous day's high, a buy limit at the 61.8% Fibonacci level, a 50-point stop and a 100-point target) lost before costs on the DAX from 2012 to 2026, -3.32 points a trade over 327 trades, and the same entries on other days did better.

00The verdict in three lines

  • The YouTube video "Easy Trend Day Trading Strategy DAX" (Mindfully Trading, December 2025) walks through one long DAX trade: a daily and 1-hour uptrend on the 50 and 200 EMAs, a new high above the previous day's high, then a buy limit at the 61.8% Fibonacci level of the morning move, a 50-point stop and a 2R target. The presenter says she did not take that trade herself. We turned the steps into fixed rules and tested them on every DAX trading day they allowed from late 2011 to October 2026, without 15 June 2020 to 1 December 2023, when our data file held another index (see the data section), long only as in the video and long and short, with 2 points of costs a trade.
  • Both versions were buried, and both lost before costs: long only -1,739 points after costs over 327 trades (-3.32 a trade before costs), long and short -2,700 points over 391. In the development years the losses were steady enough to give t-statistics of -2.23 and -2.59.
  • The same entries on other days did better (percentile 8.8 and 2.0 of the control): buying the dip after a break of yesterday's high picked worse days than chance. The 100-point target was reached on only 11.9% of the long trades.

01From the video to fixed rules

Step in the videoOur rule
Daily: price above the 50 and 200 EMA, the 50 above the 200; a green background from the RSI of a paid indicatorPrevious day's close > EMA(50) > EMA(200) on daily closes. The indicator's RSI rule is not shown, so it is left out.
1-hour: a change of behaviour, a new high of day above the previous day's high, the 50 EMA above the 200The first 15-minute close above the previous day's high, between 09:15 and 12:00 Frankfurt, with EMA(50) > EMA(200) on the last completed 1-hour bar.
15-minute: Fibonacci on candle bodies from the latest pullback low to the current high; a buy limit at 62%On today's 15-minute bodies: H = the highest body top up to the trigger, L = the lowest body bottom from 09:00 up to and including the bar of H (often the same bar); a buy limit at H - 0.618 x (H - L), live until 13:59.
A 50-pip stop and a 2R target, London morningA stop 50 points below the limit level and a target 100 points above it (2R), both measured from the level; otherwise closed at the 17:30 close.

Shorts, in the long-and-short version, mirror every step. One trade a day at most. Two variants: DFIB-L and DFIB-LS. Fibonacci pullbacks have been tested before on this site (on EUR/USD and in an ES scalping rule), so the development t-statistic needed is 2.5. Our anchors and trigger are one reading of a discretionary method; on her chart she may have chosen differently on some days.

02Data and costs

The same DAX data as our opening range breakout test: HistData.com's 1-minute quotes of a DAX index CFD, 2011 to 30 October 2026, with the times checked against the 09:00 Frankfurt open, the Xetra holidays left out and missing minutes never filled. The EMAs use the cash session (09:00 to 17:30 Frankfurt), the same in every year; the video's chart also includes overnight hours. The 200-day EMA needs 200 days of data, so the first possible trade is in October 2011.

A coding error, found before publication: a review of this page found that both of our implementations measured the stop and the target from the fill price, while the specification measures them from the limit level (rule 6). The two differ on the 98 long trades that filled below the level. Both were fixed and the test was run again; the verdicts did not change, and this page reports the corrected run (the run log of the specification gives the numbers of both).

A data error, found after our first run: from 15 June 2020 to 1 December 2023 the file does not hold the DAX but another index, at the level of the Euro Stoxx 50 (about 2,900 to 4,500 points, while the DAX stayed above 11,000). It is why the long-only version of our first run found no trade in 2021: the 200-day average mixed the two price levels. We removed those days, kept every rule and the dates of the periods, and ran the test again; this page reports the second run, and both runs are in the run log of the specification. A 200-day average cannot run across a gap of three and a half years, so the daily and 1-hour averages start again after it and need 200 days and 200 hours, which puts the first possible trade after the gap on 17 September 2024. Periods: development 2011 to 2018, validation 2019 to 12 June 2020, holdout from December 2023 (trades from September 2024) to October 2026; the holdout had been used once, by the opening range test.

Costs: 2 index points a round trip (scenarios in the data notes), or 0.040 R of the 50-point risk. Engine check: dfib_selftest.js checked the EMAs by hand, the removed days and the restart of the averages after them, hand-built days (the trigger and its window, the anchors on bodies, the limit fill and its expiry, stops, targets, both in one minute, the close, a missing minute, a short), and both variants trade by trade against an independent re-implementation (dfib_selftest_result.txt).

03Results

Results in DAX index points. The 95% range is the Wilson interval for the win rate. The drawdown is on closed trades.

VariantVersionTradesNet after costsNet per tradeGross per tradeNet per trade in RWinners (95% range)Profit factorDrawdown on closed tradesVerdict
DFIB-Llong only, as in the video327-1,739 points-5.32-3.32-0.106 R40.7% (35% to 46%)0.79-2,027 pointsBuried
DFIB-LSlong and short391-2,700 points-6.91-4.91-0.138 R37.9% (33% to 43%)0.74-2,859 pointsBuried
-2,000-1,000020122014201620182020202220242026another index in the file, then 200 days for the averagesvalidationholdout*DFIB-LSDFIB-L

Cumulative net result by month, in index points. * Holdout already used once, by our DAX opening range test. The shaded months are not in the test.

By period

VariantDevelopment 2011-2018 (trades)Validation 2019 to June 2020 (trades)Holdout* Sep 2024 to 2026 (trades)Development tValidation PF
DFIB-L-1,358 points (193)-340 points (42)-41 points (92)-2.230.65
DFIB-LS-1,984 points (250)-676 points (49)-41 points (92)-2.590.48

Validation is short, January 2019 to 12 June 2020, and the long-only version traded 42 times in it, fewer than the 50 trades each period needs.

04From setups to trades

VariantDays with enough historyDaily trend in the trade's directionBreak of the previous day's high or low by 12:00Orders (1-hour trend agrees)Filled (share of orders)
DFIB-L2,7061,500554467327 (70.0%)
DFIB-LS2,7061,836670563391 (69.4%)

05Where the trades ended

VariantTarget (100 points)Stop (50 points)Closed at 17:30WinnersBefore costs, per tradeAfter costs, per trade
DFIB-L11.9%45.9%42.2%40.7%-0.066 R-0.106 R
DFIB-LS12.8%50.4%36.8%37.9%-0.098 R-0.138 R

The video aims for two times the risk. After a fill early in the session (most long fills came in the first hour), 100 points was rarely reached before the close: most trades ended at the stop or at 17:30, often with a small gain or loss. A rule with a 2R target needs more than a third of winners before costs; here only 39 of the 133 winning long trades reached the full target.

06By year

YearDFIB-L tradesDFIB-L netDFIB-LS tradesDFIB-LS net
20110–3-129 points
201233-104 points36-216 points
201343-120 points43-120 points
201430-645 points31-697 points
201517+82 points22-170 points
201620-89 points41-399 points
201742-321 points42-321 points
20188-162 points32+68 points
201933-344 points36-495 points
20209+4 points13-180 points
202412+212 points12+212 points
202554-68 points54-68 points
202626-185 points26-185 points

2020 counted to 12 June; no trade was possible from then until 17 September 2024 (the file holds another index until December 2023, then the averages need 200 days); 2026 counted to 30 October.

07Longs, shorts and the best trades

VariantLongs: trades / netShorts: trades / net10 best tradesNet without them
DFIB-L327 / -1,739 points–+1,028 points-2,767 points
DFIB-LS327 / -1,739 points64 / -961 points+1,041 points-3,741 points

08Is it the setup or the market?

The benchmark is a moved-entry control: each day's trade (its fill minute and direction, or no trade) is moved, with all days together, by one random offset of at least 5% of the days, and entered at that minute of the real day at the market, with the same 50-point stop, 100-point target, close and costs. 500 runs with fixed seeds; the bar is the 95th percentile of the average net result per trade. The real trades ranked near the bottom: the setup chose worse days than random ones.

VariantTradesReal average per tradeControl medianControl 5th to 95thPercentile (95 needed)
DFIB-L327-5.32-0.96-6.13 to +3.698.8
DFIB-LS391-6.91-1.20-6.12 to +3.562.0

09The gates

VariantTrades1. PF ≥ 1.2 in validation2. ≥ 50 trades in each period3. t ≥ 2.5 on development4. Above the 95th percentile of the control5. Positive without the 10 best trades6. Holdout net positive (already used once)
DFIB-L327failfailfailfailfailfail
DFIB-LS391failfailfailfailfailfail

10Verdict by variant

VariantCauseGates failedVerdict
DFIB-LNo proven edge1, 2, 3, 4, 5, 6Buried
DFIB-LSNo proven edge1, 2, 3, 4, 5, 6Buried

Both versions lost before costs, so costs were not the cause, and both lost in the holdout too (-41 points each: no short trade came up in it).

Not tested: the 70% and 79% levels of her zone, other stops and targets, the overnight hours, the RSI of her indicator.

TWhat this shows, and what to take into your own tests

What the results show

  • Buying the 61.8% pullback after the DAX broke the previous day's high lost money before costs: -3.32 points a trade long only, -4.91 long and short.
  • The same entries placed on other days did better: the real trades ranked at percentile 8.8 and 2.0 of the control.
  • The 2R target was reached on only 11.9% of the long trades; most ended at the stop or at the close.

What remains unknown

  • The presenter's own chart reading: her structure, anchors and the RSI of her paid indicator are discretionary or not shown, so we test one mechanical reading.
  • Other Fibonacci levels of her zone (70% and 79%), other stops, or trading with the overnight hours.
  • Exchange prices: these are CFD quotes from one feed.

Why it failed

After a fill at the 61.8% level, the 50-point stop was hit 45.9% of the time and the 100-point target only 11.9%, and the fills lost 3.32 points a trade on average before costs. 40.7% of the long trades ended in profit, but only 39 of those 133 reached the target; the rest were gains at the close, smaller than 100 points.

What you can apply to your own tests

  • Turn a chart example into rules and test it on every day the rules allow, not on the day in the video.
  • Count how often the target is actually reached before the close; a 2R target that is rarely hit is not a 2R strategy.
  • Compare with the same entries on other days: here random days did better than the setup.

A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.

FAQCommon questions

Does the Fibonacci 61.8% pullback work on the DAX?

Not in our test: after a break of the previous day's high, buying the 61.8% retracement of the morning move lost 3.32 points a trade before costs and 5.32 after, over 327 trades from 2012 to 2026.

How often did the 2R target get hit?

On 11.9% of the long trades. 45.9% ended at the 50-point stop and the rest at the 17:30 close.

What is the optimum trade entry (OTE) in Fibonacci trading?

A zone of the 62%, 70% (often given as 70.5%) and 79% retracement levels, where some traders expect a pullback to end. The video places its order at the top of that zone, about 62%; we tested a limit at 61.8%.

How was the DAX Fibonacci strategy tested?

On 1-minute DAX index CFD quotes from 2011 to 2026 with the times checked against the Frankfurt open and the days when the data file held another index (15 June 2020 to 1 December 2023) removed, 2 index points of costs a trade, rules written and dated before the data was run, results split into development, validation and holdout periods (the holdout used once before, by the DAX opening range test), a control that moves the same entries to other days as the benchmark, and every variant reported. Read the protocol.

11Check our arithmetic

Frozen specificationThe steps of the video, our rules, variants, costs, periods, gates and control, dated before any level was computed, with the run log.
dfib_spec.md
CodeThe DAX loader, the engine (its readings at the top), the independent re-implementation and its minute loader, the self-test and the run.
dax_data.js · dfib_lib.js · dfib_ref.js · orbd_ref.js · dfib_selftest.js · dfib_run.js
Shared code it usesStatistics and control helpers.
control_audit_lib.js · em_lib.js · gh_lib.js · hourly_lib.js · ma_lib.js · rb_lib.js · rsi2_protocol.js
ResultsSelf-test result, the console output of the run and all numbers as one file.
dfib_selftest_result.txt · dfib_results.txt · dfib_summary.json
Trade logs (CSV)Every trade, with its trigger, Fibonacci anchors, limit, fill, exit and whether a minute was missing.
DFIB-L · DFIB-LS
Data recordWhere the DAX files come from, their hashes, the clock check and the coverage. The price files are not republished.
data_manifest.md

Code provenance: our own code, written from the steps shown in the video. No third-party source code, and none of the paid indicator, is used or published.

12Data notes

Missing minutes (rule 3). A trade is flagged if a minute is missing between its trigger and its exit. Removing them changes no verdict:

VariantTradesFlagged and removedNet per trade, pointsVerdict
DFIB-L32728-5.32 → -6.35Buried → Buried
DFIB-LS39128-6.91 → -7.88Buried → Buried

Costs. The average net result per trade, in points, with other costs (the gates use 2 points):

Variant1 point2 points (used)3 points
DFIB-L-4.32-5.32-6.32
DFIB-LS-5.91-6.91-7.91

Both versions lose at every cost, including zero: the loss is in the entries.

13Corrections

None since publication.

+More tests and guides