震盪指標 VolumeMomentumZero Line 在 Builder 中可用

Chaikin Oscillator

The Chaikin Oscillator subtracts a slow average of the Accumulation/Distribution line from a fast one. A/D is a running total that weights each bar's volume by where the bar closed inside its range; differencing it throws away the arbitrary level and leaves a meaningful zero — which is why MT5 files it under Oscillators, not with the volume indicators it comes from.

Default periods
3 / 10
Signal level
Zero
Volume used
Tick
Zero — accumulation turns to distributionChaikin(3, 10) — EMA gap of the A/D total

示意性 — 合成資料,非即時報價。

What the Chaikin Oscillator tells you

Every bar gets a score between −1 and +1 for where it closed inside its own range: at the high it scores +1, at the low −1, in the middle zero. Multiply that score by the bar's volume and keep a running total, and you have the Accumulation/Distribution line. The trouble with a running total is that its level means nothing — it depends on where you started counting. The Chaikin Oscillator solves that by subtracting a ten-period average of A/D from a three-period one, which leaves only the recent direction of the accumulation. Above zero, money has been flowing in faster than the longer average; below, out.

  • Above zero: short-term accumulation is running ahead of the longer trend of it
  • Crossing zero: the flow has changed sides
  • MT5's own help treats a turn in the line, not the zero cross, as the primary signal
  1. 1 Score each bar by where it closed in its range, times its volume
  2. 2 Keep the running total — that is the A/D line
  3. 3 Subtract EMA(A/D, 10) from EMA(A/D, 3)
顯示公式與計算詳情

The Chaikin Oscillator is built on top of another indicator, and the intermediate step is where the idea lives:

  1. MFM = ((close − low) − (high − close)) / (high − low)
  2. A/D = running total of MFM × volume
  3. CHO = EMA(A/D, 3) − EMA(A/D, 10)

Step one scores each bar between −1 and +1 by where it closed inside its own range — the high scores +1, the low −1, the midpoint zero. Step two weights that score by the bar’s volume and adds it to a running total: the Accumulation/Distribution line. Step three is the part that makes it usable. A running total has no meaningful level, because the level depends on where the count started; subtracting a slow average of it from a fast one throws the level away and keeps only the recent direction.

In MQL5 the call is iChaikin(symbol, period, fast_ma_period, slow_ma_period, ma_method, applied_volume)six arguments, more than any other indicator node in the Builder, and the last one is an ENUM_APPLIED_VOLUME rather than an applied price. There is one buffer, read at index 0, and MT5 plots it with DRAW_LINE. There is no signal line: a second series on a Chaikin chart is another indicator, not something iChaikin publishes.

Two things follow from the construction. First, the scale is not portable — the output carries the instrument’s volume units, so a reading on EUR/USD and one on an index share nothing but their sign. Zero is the only threshold that means the same thing on every chart, and it is the only one the Builder’s template uses. Second, gaps are invisible to it: the per-bar score compares the close with that bar’s own high and low, so a move that happened between two bars never enters the total.

MT5’s own help is careful about what the indicator is for. It treats a turn in the line as the signal and a divergence from price as the most important one, and it adds that either only counts when it agrees with the direction price is already going. The zero crossing the template uses is the coarser reading of the same series — chosen because it is a single unambiguous event that a latch can arm and re-arm from, where a turn is a comparison of two bars and a divergence needs swing detection the node palette does not have.

訊號

Chaikin 提供的可回測訊號 — 及每個訊號適合的市場狀態。

Zero-Line Cross

Builder 可實現
條件
The oscillator changes sign
最佳市場狀態
Trending
典型用法
Mark the bar on which accumulation took over from distribution — the template's rule

Turn in the Line

Builder 可實現
條件
The current value is higher than the previous one after a run of falling values
最佳市場狀態
Trend continuation
典型用法
MT5's documented primary signal, read as a change of direction rather than of sign

Sustained Side

Builder 可實現
條件
The oscillator stays on one side of zero across many bars
最佳市場狀態
Trending
典型用法
Use the side money is flowing to as a filter for entries generated elsewhere

Divergence from Price

進階邏輯
條件
Price makes a new extreme and the oscillator fails to exceed its previous one
最佳市場狀態
Trend exhaustion
典型用法
The signal MT5's help calls the most important; a discretionary warning, not a trigger

MT5 實作

MetaTrader 5 實際計算與繪製的內容——本頁每條規則的依據。

緩衝區

索引 緩衝區 MT5 中的繪製方式 存放內容
0 MAIN_LINE Line The oscillator value — the fast average of the A/D line minus the slow one. One buffer, drawn with DRAW_LINE about zero. The A/D total it is computed from is a separate indicator with its own handle; iChaikin does not publish it, and there is no signal line.

平台說明

最佳適用場景 / 謹慎使用

沒有任何指標具有普適優勢。以下是 Chaikin 發揮作用的場景 — 以及可能誤導的場景。

最佳適用場景

  • Confirming that a breakout was accumulated into rather than drifted through
  • Instruments and sessions where the tick count actually reflects activity
  • Higher timeframes, where the closing location inside the bar carries information
  • As a filter on entries decided by price, rather than as the entry itself

謹慎使用

  • Bars that gap — the score only measures the distance travelled inside the bar, so an opening gap contributes nothing
  • Any fixed threshold on the value; it carries the instrument's volume units and does not transfer
  • Doji-heavy quiet sessions, where a close in the middle of a tiny range scores near zero at any volume
  • Reading it as a volume indicator — a heavy bar closing mid-range moves the total barely at all

構建 Chaikin 策略

將訊號接入進場和出場規則,然後匯出可編譯的 MT5 EA — 無需撰寫程式碼。

  1. Chaikin(3, 10, EMA) read at the current bar
  2. A Constant of 0 for it to be measured against
  3. Above zero AND the latch is armed → Open Buy · SL 50 / TP 120, once
  4. Below zero re-arms the buy latch and fires the mirrored Open Sell
  5. The latch is judged on the first tick of each bar, alongside One entry per bar

將 Chaikin 與其他指標組合

單一指標很少獨立有效。這些組合彌補了 Chaikin 的盲點。

Chaikin + OBV

  1. OBV above its own earlier value
  2. Chaikin above zero
  3. Buy
原因
Both are built from running volume totals, and comparing them is comparing two definitions of participation. OBV assigns a bar's whole volume to whichever way it closed against the previous close; A/D splits that volume by where the close sat inside the bar's own range. Requiring both to agree asks for a move that was bought into and closed strong, not one that merely ended higher
最佳市場狀態
Trending

No single-flow template pairs the two. Start from Chaikin Zero Cross, Once Only and add an OBV node plus a second OBV node at a shift, compared against each other — OBV has no zero to cross, so it is always read against its own past.

開啟 Builder →

Chaikin + Money Flow Index

  1. MFI below 20
  2. Chaikin crosses above zero
  3. Buy
原因
MFI is the bounded reading of the same subject: it also weights volume by the bar's price behaviour, but it normalises the result into 0–100 so that overbought and oversold have meaning. Using MFI for the level and Chaikin for the direction gives an entry a stretched reading and a turning flow at once, which neither supplies alone
最佳市場狀態
Reversal

No single-flow template combines them. Start from Chaikin Zero Cross, Once Only and add an MFI node with a Compare against a Constant of 20 into an AND gate ahead of the latch.

開啟 Builder →

Chaikin + Moving Average

  1. Price above the EMA(200)
  2. Chaikin crosses above zero
  3. Buy
原因
A zero cross says the flow changed sides but not whether that agrees with the larger move. A long average supplies the side, and it is the arrangement MT5's own help asks for when it says the oscillator's signals only count when they coincide with the price trend
最佳市場狀態
Trending

No single-flow template pairs the two. Start from Chaikin Zero Cross, Once Only and add an EMA(200) node with a Price node into a Compare, the same filter the TRIX and Force Index templates use.

開啟 Builder →

Chaikin + Accumulation/Distribution

  1. A/D above its value 10 bars ago
  2. Chaikin crosses above zero
  3. Buy
原因
The series this oscillator is made of, read at its own speed. The oscillator throws the level away to gain a zero; A/D keeps the whole run and can only be read as a slope. Requiring the long total to be rising before acting on a zero cross asks for a turn that fits the accumulation rather than one that interrupts it — but they are the same numbers, so treat it as one reading at two horizons, not as confirmation
最佳市場狀態
Trending

No single-flow template pairs them. Start from Chaikin Zero Cross, Once Only and add two A/D nodes at shift 1 and shift 11 with a Compare between them, into the AND gate ahead of the latch.

開啟 Builder →

參數

在您自己的貨幣對和時間框架上驗證的起始值 — 非保證設置。

參數 預設值 建議測試範圍 功能說明
Fast MA period 3 1–999 The shorter average applied to the A/D line. It sets how quickly the oscillator responds to a change in flow. Below 3 the line follows A/D closely enough that the difference between the two averages becomes noise; much above it the oscillator stops being early, which is the only reason to prefer it to reading A/D directly.
Slow MA period 10 1–999 The longer average the fast one is measured against. It defines what counts as 'the recent trend of accumulation'. The gap between the two periods, not either number alone, decides how far the oscillator swings — set them equal and the output is flat zero at every bar.
MA method EMA SMA, EMA, SMMA, LWMA How both averages are computed. It is a real argument to iChaikin and the Builder passes it through as an EA input. Chaikin's published definition uses exponential averages, and that is the node's default; the other three are available and change the shape rather than the meaning.
Applied volume Tick volume Tick or Real Which volume series feeds the A/D total. The Builder fixes this to tick volume, because real volume is unavailable on most retail forex feeds. Tick volume counts price updates, not traded quantity — see the caveat below.
Shift 0 0–30 Which bar back the node reads the buffer from. Two Chaikin nodes at shift 0 and shift 1 is how a rule expresses 'the line turned up', since the indicator publishes no second line to compare against.

初始預設

Standard 3 / 10 Chaikin's published pair and MT5's default, and what the template uses
Slower 6 / 20 Roughly the same ratio on a longer horizon; fewer crosses, each covering more bars
Wide gap 3 / 20 A larger swing amplitude, because the two averages diverge further before meeting

市場示例

Chaikin 有效的場景、失效的場景,以及篩選器如何改變結果。

有效

Flow turning before the breakout completes

Price is still consolidating under resistance while the oscillator crosses zero — closes have been drifting toward the top of each bar. The latch fires once on that bar and the position is still open when the break follows.

失效

A cross in a quiet session

The oscillator flicks across zero during a thin session. The tick count is low, so a couple of bars closing near their highs move the reading enough to change its sign without much having happened.

已篩選

The bars the latch declines

The oscillator stays above zero for eleven consecutive bars. A plain comparison would attempt an entry on every one of them; the latch takes the first and declines the other ten until the line has been below zero again.

FAQ

What is the difference between the Chaikin Oscillator and the A/D line?
They are the same measurement at two removes. A/D is the running total: every bar adds its volume weighted by where it closed inside its range, and the total simply keeps going. That makes its level arbitrary — it depends entirely on where the chart's history began — so what you can read from A/D is only its slope. The Chaikin Oscillator does the reading for you by subtracting a ten-period average of A/D from a three-period one. What is left has a meaningful zero and can be compared with its own past, which a running total cannot.
Is the Chaikin Oscillator a volume indicator?
Volume is one of its two inputs and MT5 still groups it with the oscillators. Both parts of the formula matter: a very heavy bar that closes in the middle of its range contributes almost nothing to the total, and a light bar that closes on its high contributes its whole (small) volume. If you want a pure participation measure, On Balance Volume or Volumes is the closer fit; if you want the bounded version of this same idea, that is the Money Flow Index.
What settings should I use?
3 and 10 with exponential smoothing is Chaikin's published pair and MT5's default, and it is what the Builder's template uses. What actually changes the behaviour is the gap between the two periods rather than either number by itself — widening it makes the swings larger and the crossings less frequent. Setting the two equal produces a permanently flat zero line, which is worth knowing because the platform will not stop you.
Why does the template need a Signal Latch?
Because 'above zero' is a state, not an event. The oscillator can stay above zero for dozens of bars, and a plain comparison would try to open a position on every one of them. The latch converts the state into a single event: it fires on the first bar the condition is true, then stays silent until the reset condition — here, the oscillator dropping back below zero — makes it ready again. It is judged on the first tick of each new bar, which is why it works alongside the One entry per bar setting rather than fighting it.
Can I build a Chaikin Oscillator EA without coding?
Yes. The Chaikin Zero Cross, Once Only template reads the indicator once, compares it against a Constant of 0 in both directions, and routes each comparison through a Signal Latch that uses the other one as its reset. The buy side fires once when the line goes above zero and re-arms only after it has been below; the sell side is the same arrangement reversed. Both periods, the MA method and the stop distances are all EA inputs.
How should I validate settings before going live?
Backtest on quality tick data, then run on a demo account before risking money. Tick volume is broker-specific, so a Chaikin strategy deserves more scepticism than usual about results carried over from someone else's data — re-run it on the feed you will actually trade. Check the trade count before reading the profit: the latch deliberately reduces the number of entries, and a period pair that rarely crosses zero can produce a flattering equity curve out of a handful of trades.