CHO-F Pro + Fisher + Div

4 777
CHO-F Pro + Fisher + Div
1. Purpose and the Problem It Addresses

The Chaikin Oscillator is the difference between a fast and a slow EMA of the Accumulation/Distribution (A/D) line. It measures the momentum of money flow, but the classic version has three practical problems:

Scale: Values depend on volume and the instrument, so fixed overbought/oversold levels cannot be drawn. Each chart has to be read separately.
Signals: Zero-line crosses are late and there is no trigger or confirmation mechanism.
Divergence: Searching for price/oscillator divergences by eye is slow and subjective.

CHO-F Pro handles these as follows:

It normalizes the Chaikin value by its own moving average of absolute values, so fixed levels such as ±1.5 are meaningful across instruments.
It can optionally pass the normalized value through a Fisher Transform, which sharpens the extremes and makes turning points easier to read.
It adds a trigger line to the Chaikin line, and builds signals from a combination of trigger cross + histogram momentum + zone filter instead of a single cross.
It finds and marks regular and hidden divergences automatically using pivots.

The script is a sub-pane oscillator (overlay=false). Its goal is to make turns in money-flow momentum, and possible trend weakening or continuation, readable in one pane. It is a decision-support tool, not a trading system.

2. How It Works
The A/D line is calculated (ta.accdist).
Chaikin = EMA(A/D, Fast) - EMA(A/D, Slow). Defaults 3 / 10.
Histogram = Chaikin - EMA(Chaikin, Histogram Smoothing). Default 9.
Normalization: Chaikin and the histogram are divided by the SMA of their absolute values over the last N bars. Default N = 100.
Fisher Transform (optional): each series is scaled to +/-0.99 by the highest absolute value over the last N bars, smoothed, then passed through the Fisher Transform. Default N = 9.
Trigger line: an EMA/SMA/WMA of the Chaikin line. Default WMA(3).
Signals (BUY/SELL):
BUY: Chaikin crosses above the trigger line (within the last Combined Signal Window + 1 bars) and the histogram is rising versus the previous bar and (if the zone filter is on) Chaikin < 0 and (if extreme zone confirmation is on) the lower level was breached within the lookback.
SELL: the mirror logic (cross below, histogram falling, Chaikin > 0, upper level confirmation).
A minimum number of bars (Minimum Bars Between Signals) must pass between two signals. Signals are confirmed on bar close only.
Divergence: pivot lows/highs are searched on the selected source (default: histogram).
Regular bullish (R): price makes a lower low, oscillator makes a higher low.
Regular bearish (R): price makes a higher high, oscillator makes a lower high.
Hidden bullish (H): price makes a higher low, oscillator makes a lower low.
Hidden bearish (H): price makes a lower high, oscillator makes a higher high.
The distance between the two pivots must be within Min/Max Bars Between Pivots; lows must be below -threshold and highs above +threshold.
3. What You See on the Chart
Histogram columns: above zero rising = dark green, above zero falling = bright green, below zero rising = dark red, below zero falling = bright red (default colors, all configurable). Rising/falling refers to the change versus the previous bar.
Chaikin line (thick, aqua) and trigger line (thin, orange).
Level lines: red at the top (+level), green at the bottom (-level). The neutral zone between them is filled in blue.
Extreme zone background: red when Chaikin is above the upper level, green when below the lower level.
BUY / SELL labels: in the pane and (optionally) on the price chart.
R / H labels and lines: regular and hidden divergences.
4. Parameters

Chaikin Settings

Fast EMA (3), Slow EMA (10): the two EMAs of the A/D line. Fast must be smaller than Slow (otherwise the script raises an error). Smaller values are more sensitive and noisier; larger values are slower and cleaner.
Histogram Smoothing (9): how much the histogram is smoothed relative to Chaikin.
Normalize (on) / Normalization Length (100): scale independence. If disabled, raw Chaikin is shown and fixed levels lose meaning.
Overbought / Oversold Level (1.5): used by the level lines, neutral zone, extreme background and zone confirmation.
Display options: Chaikin line, extreme zone background, level lines, neutral zone fill.

Trigger Line

Trigger Average Type (WMA) and Length (3): the average type and length used to smooth Chaikin. Short lengths cross early but noisily; long lengths cross later but cleaner.

Fisher Transform

Apply Fisher Transform (on), Fisher Length (9): when off, the normalized series is used directly; values then cluster around +/-1, so you may need to raise the level to about 2.0.

Signals

Combined Buy / Sell Signal: turns signals on/off.
Zone Filter (on): BUY only when Chaikin < 0, SELL only when Chaikin > 0. Filters out weak, counter-zone signals.
Combined Signal Window (1): 0 = cross and histogram momentum on the same bar; 1 = the cross may be on this bar or the previous one; maximum 5.
Extreme Zone Confirmation (off) / Lookback (10): when on, BUY requires the lower level to have been breached, and SELL the upper level, within the last N bars. Reduces signal count and aims to improve selectivity.
Also Show on Price Chart (on): places BUY/SELL labels on the price chart too.
Minimum Bars Between Signals (5): prevents back-to-back signals.

Divergence

Show Divergence (on), Source (Histogram): the series used for pivots: Chaikin or Histogram.
Pivot Left (5), Pivot Right (3): number of bars on each side to confirm a pivot. A pivot is confirmed Pivot Right bars after it forms.
Min (5) / Max (60) Bars Between Pivots: distance limits between the two pivots being compared.
Pivot Zone Threshold (0.0): lows must be below -threshold, highs above +threshold. Raising it keeps only deeper/more extreme pivots.
Show Hidden Divergence, Draw Divergence Lines: toggles H labels and lines.

Colors: the four histogram colors, Chaikin and trigger lines, level lines, neutral zone color and transparency.

5. How to Use It
Add the indicator to an instrument that has volume data (stocks, crypto, futures, index ETFs, etc.). Without volume the script raises an error.
Read the context: when Chaikin moves beyond the +/- levels, money-flow momentum is in an extreme area. Staying inside the neutral zone means there is no pronounced momentum.
Trigger cross + histogram: a BUY/SELL label appears when the cross, histogram direction and zone filter agree at the same time. Treat the label as a moment worth attention rather than a standalone order.
Divergence confirmation: if a R/H label appears near a BUY/SELL label, there is a disagreement between momentum and price that supports the signal. Regular divergence may point to a possible reversal; hidden divergence may point to trend continuation.
Higher-timeframe filter: reading signals together with the trend direction on a higher timeframe reduces noise.
Risk management: stops, targets and position size must come from your own plan, outside this indicator.
6. Suggested Starting Settings by Timeframe

The values below are starting points, not optimized backtest results. Adjust them to the instrument and market conditions.

1-5 minutes (scalping, noisy): Fast/Slow 3/10, Histogram Smoothing 5-9, Trigger WMA 3, Fisher 7-9, Minimum Bars Between Signals 8-12, Combined Window 1, Zone Filter on, Pivot 5/2-3. If noise is high, turn on Extreme Zone Confirmation.
15 minutes - 1 hour (intraday): Defaults (3/10/9, Normalization 100, Fisher 9, Level 1.5, Min Bars 5, Pivot 5/3).
4 hours - daily (swing): Fast 3-5, Slow 10-13, Normalization 100-150, Fisher 9-10, Min Bars 3-5, Pivot 5/3, Max Bars Between Pivots 60. Turn on Extreme Zone Confirmation for fewer but more selective signals.
Weekly: Normalization 52-100, Min Bars 2-3, Pivot 3/2, Max Bars Between Pivots 40-60. Interpret results carefully because the number of bars is small.
If Fisher is off: raise the level to about 2.0.
7. Alerts

Alert conditions: Buy, Sell, Bullish Divergence, Bearish Divergence, Hidden Bullish Divergence, Hidden Bearish Divergence. Because signals are confirmed on bar close, I recommend creating alerts with the Once Per Bar Close option.

8. Limitations and Honest Notes
Requires volume. The script does not work on instruments without volume data.
Divergences are delayed. A pivot is confirmed Pivot Right (default 3) bars after it forms. The R/H label and line are drawn at the earlier bar where the pivot occurred, so the marker appears retroactively in real time. This is inherent to pivot-based methods.
BUY/SELL labels are created on bar close and do not disappear afterwards. On the live bar, no label is shown before the close.
The Fisher Transform can compress the series toward its extremes; adjust the overbought/oversold level accordingly.
Like any indicator it produces false signals. Settings over-fitted to past data will not necessarily behave the same in the future.
This script is not a strategy; it includes no backtest, commission or slippage calculation.
9. Credits and License
Original idea and first implementation: the Chaikin Oscillator-AS script published on TradingView by LonesomeTheBlue (Mozilla Public License 2.0). This work is an independent v6 rewrite derived from that script.
Added in this script: normalization, Fisher Transform, trigger line, combined signal logic, regular/hidden divergence engine, neutral/extreme zone visualization.
The Chaikin Oscillator and the Accumulation/Distribution line are attributed to Marc Chaikin. The Fisher Transform is by John F. Ehlers.
The source code of this script is subject to the Mozilla Public License 2.0 (mozilla.org/MPL/2.0/). Derivative works must be shared under the same license.
10. Disclaimer

This indicator is for educational and informational purposes only. It is not investment, financial, tax or legal advice and is not a recommendation to buy or sell any instrument. BUY/SELL labels do not promise any outcome. Past performance does not guarantee future results. Trading financial markets, especially leveraged products, carries a risk of capital loss. All decisions and their consequences are solely the user’s responsibility. Do your own analysis before using this indicator and consult a licensed professional if needed.

คำจำกัดสิทธิ์ความรับผิดชอบ

ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน