Fractals
Fractals mark confirmed swing highs and lows — a bar whose extreme is more extreme than the two bars on each side. They are the only common MT5 indicator that publishes nothing most of the time, which changes how an EA has to read them.
- Pattern
- 5 bars
- Confirmation lag
- 2 bars
- Inputs
- None
示意性 — 合成資料,非即時報價。
What Fractals tell you
A fractal is a definition, not a forecast: the middle bar of five had the highest high, or the lowest low. Once two bars have closed on the right-hand side the pattern is fixed and cannot change. That is what makes fractals useful as structure — and what makes them permanently late by exactly two bars.
- An upper fractal is a confirmed swing high, not a sell signal
- The level is fixed forever once printed
- The confirmation always arrives two bars after the extreme itself
- 1 Take five consecutive bars
- 2 Check whether the middle one holds the extreme
- 3 Mark the level once the right side closes
顯示公式與計算詳情
A fractal is a five-bar pattern with a strict definition and no parameters:
- Take five consecutive bars.
- An upper fractal exists when the middle bar’s high is higher than the highs of the two bars before it and the two bars after it. The value published on
UPPER_LINE(buffer 0) is that high. - A lower fractal exists when the middle bar’s low is lower than the lows of the two bars on each side. The value goes on
LOWER_LINE(buffer 1). - On every other bar both buffers hold the indicator’s empty value, and MT5 draws nothing.
The two-bar right side is what makes a fractal confirmed rather than provisional: once those bars have closed, the pattern is settled permanently and the level never moves. It is also why the information always arrives two bars after the extreme it describes — the price at the fractal is history by the time the fractal exists.
That emptiness is the practical difference from every other indicator in this catalogue. RSI has a value on every bar; a fractal does not. Any rule that reads the buffer has to search backwards for the most recent real value, and a rule written as though index 0 always holds a number will compare against nothing at all without raising an error.
In MQL5 the call is iFractals(symbol, period) — no periods, no applied price, no options — and it returns a handle to two buffers. Bill Williams introduced fractals alongside the Alligator and the Awesome Oscillator as the structural element of his system.
訊號
Fractals 提供的可回測訊號 — 及每個訊號適合的市場狀態。
Swing Level Hold
Builder 可實現Stop Placement
Builder 可實現Higher Highs / Lower Lows
進階邏輯MT5 實作
MetaTrader 5 實際計算與繪製的內容——本頁每條規則的依據。
緩衝區
| 索引 | 緩衝區 | MT5 中的繪製方式 | 存放內容 |
|---|---|---|---|
| 0 | UPPER_LINE | Arrow above the bar | The high of a confirmed swing high. Empty on every bar that is not one — which is the large majority. |
| 1 | LOWER_LINE | Arrow below the bar | The low of a confirmed swing low. Also empty on most bars. |
平台說明
最佳適用場景 / 謹慎使用
沒有任何指標具有普適優勢。以下是 Fractals 發揮作用的場景 — 以及可能誤導的場景。
最佳適用場景
- Defining breakout levels
- Anchoring stops to structure
- Higher timeframes
- With a volatility or trend filter
謹慎使用
- Treating a fractal as a reversal signal
- Low timeframes where every wiggle prints one
- Ignoring the two-bar confirmation lag
- Reading structure without a rule for which fractal counts
構建 Fractals 策略
將訊號接入進場和出場規則,然後匯出可編譯的 MT5 EA — 無需撰寫程式碼。
- Upper fractal (last 50 bars)
- Lower fractal (last 50 bars)
- Fast ATR above slow ATR
- Price breaks the upper fractal → Open Buy · SL 50 / TP 100
- Price breaks the lower fractal → Open Sell
將 Fractals 與其他指標組合
單一指標很少獨立有效。這些組合彌補了 Fractals 的盲點。
Fractals + ATR
- Price breaks the last fractal
- Fast ATR above slow ATR
- Buy
Fractals + Alligator
- Lines fanned up
- Price breaks the last fractal high
- Buy
No single-flow template pairs Fractals with the Alligator. Start from Fractal Breakout and add Alligator nodes with a Cross.
開啟 Builder →Fractals + ADX
- ADX > 25
- Price breaks the last fractal high
- Buy
No single-flow template pairs Fractals with ADX. Start from Fractal Breakout and add an ADX node with a Compare at 25.
開啟 Builder →參數
在您自己的貨幣對和時間框架上驗證的起始值 — 非保證設置。
| 參數 | 預設值 | 建議測試範圍 | 功能說明 |
|---|---|---|---|
| Pattern length | 5 bars | — | Fixed in the indicator. iFractals takes no arguments at all — the five-bar definition cannot be changed without writing a custom indicator. |
| Line | Upper / Lower | — | Which buffer a rule reads. A buffer selector, not a numeric setting. |
| Search bars | 50 | 20–200 | Not an indicator input — the Builder node's own window for scanning back to the most recent non-empty fractal. Too short and the node finds nothing on quiet stretches. |
初始預設
市場示例
Fractals 有效的場景、失效的場景,以及篩選器如何改變結果。
Break of a real level
Price consolidates, prints a clear fractal high, and then trades decisively through it with volatility expanding — the case the template trades.
Fractals inside the chop
In a tight range a fractal prints every few bars and price crosses each one immediately. Every level looks structural and none of them is.
Volatility filter suppresses the break
The same fractal is crossed while ATR sits at a local low, the trade is skipped, and price drifts back inside the range.
FAQ
- Is a fractal a buy or sell signal?
- Neither on its own. A fractal is a definition — the middle bar of five held the extreme — so it marks a level, not a direction. What you do with the level is the strategy: break through it, fade it, or put a stop behind it. Treating the arrow itself as an entry is the most common misreading.
- Why is the fractal always two bars behind?
- Because the pattern needs two bars on each side of the middle one, so it cannot be confirmed until the right-hand side has closed. That lag is structural and cannot be removed. It also makes fractals a common source of accidental look-ahead in backtests — a test that reads the value at the extreme's own bar is using information that did not exist yet.
- Can I change the number of bars in a fractal?
- Not through iFractals, which takes no arguments at all. Variants that use seven or nine bars exist as custom indicators. The upside of the fixed definition is that there is nothing here to overfit, and a fractal on your chart is the same object as a fractal on everyone else's.
- Why does my fractal rule read an empty value?
- Because most bars have no fractal, and both buffers are empty on those bars. Unlike every other indicator here, reading index 0 usually returns the empty value rather than a number. A rule has to scan backwards to the most recent printed value — the Builder's Fractals node does this with its search-bars window.
- Can I build a Fractals EA without coding?
- Yes for breakouts and structure-anchored stops. The Fractal Breakout template scans back for the most recent upper and lower fractal and compares price against them, gated on expanding volatility. Reading a sequence of fractals as market structure — higher highs, lower lows — needs to hold several past levels and requires custom MQL5.
- How should I validate settings before going live?
- Backtest on quality tick data first, then run the EA on a demo account before risking money. With fractals specifically, check that the test respects the two-bar confirmation lag — results that look unusually clean are often reading a level before it existed. When optimising anything around the signal, hold back data the search never saw.