OPEN-SOURCE SCRIPT

Chop + MSS/FVG Retest (Ace v1.6) – Indicator

103
What this indicator does

Name: Chop + MSS/FVG Retest (Ace v1.6) – Indicator

This is an entry model helper, not just a BOS/MSS marker.

It looks for clean trend-side setups by combining:

MSS (Market Structure Shift) using swing highs/lows

3-bar ICT Fair Value Gaps (FVG)

First retest back into the FVG

A built-in chop / trend filter based on ATR and a moving average

When everything lines up, it plots:

L below the candle = Long candidate

S above the candle = Short candidate

You pair this with a higher-timeframe filter (like the Chop Meter 1H/30M/15M) to avoid pressing the button in garbage environments.

How it works (simple explanation)

Chop / Trend filter

Computes ATR and compares each bar’s range to ATR.

If the bar is small vs ATR → more likely CHOP.

If the bar is big vs ATR → more likely TREND.

Uses a moving average:

Above MA + TREND → trendLong zone

Below MA + TREND → trendShort zone

MSS (Market Structure Shift)

Uses swing highs/lows (left/right bars) to track the last significant high/low.

Bullish MSS: close breaks above last swing high with displacement.

Bearish MSS: close breaks below last swing low with displacement.

Those events are marked as tiny triangles (MSS up/down).

A MSS only stays “valid” for a certain number of bars (Bars after MSS allowed).

3-bar ICT FVG

Bullish FVG: low[1] > high[2]
→ gap between bar 3 high and bar 2 low.

Bearish FVG: high[1] < low[2]
→ gap between bar 3 low and bar 2 high.

The indicator stores the FVG boundaries (top/bottom).

Retest of FVG

Watches for price to trade back into that gap (first touch).

That retest is the “entry zone” after the MSS.

Final Long / Short condition

Long (L) prints when:

Recent bullish MSS

Bullish FVG has formed

Price retests the bullish FVG

Environment = trendLong (ATR + above MA)

Not CHOP

Short (S) prints when:

Recent bearish MSS

Bearish FVG has formed

Price retests the bearish FVG

Environment = trendShort (ATR + below MA)

Not CHOP

So the L/S markers are “model-approved entry candles”, not just any random BOS.

Inputs / Settings

Key inputs you’ll see:

ATR length (chop filter)
How many bars to use for ATR in the chop / trend filter.

Lower = more sensitive, twitchy

Higher = smoother, slower to change

Max chop ratio
If barRange / ATR is below this → treat as CHOP.

Min trend ratio
If barRange / ATR is above this → treat as TREND.

Hide MSS/BOS marks in CHOP?

ON = MSS triangles disappear when the bar is classified as CHOP

Keeps your chart cleaner in consolidation

Swing left / right bars
Controls how tight or wide the swing highs/lows are for MSS:

Smaller = more sensitive, more MSS points

Larger = fewer, more significant swings

Bars after MSS allowed
How many bars after a MSS the indicator will still allow FVG entries.

Small value (e.g. 10) = MSS must deliver quickly or it’s ignored.

Larger (e.g. 20) = MSS idea stays “in play” longer.

Visual RR (for info only)
Just for plotting relative risk-reward in your head.
This is not a strategy tester; it doesn’t manage positions.

What you see on the chart

Small green triangle up = Bullish MSS

Small red triangle down = Bearish MSS

“L” triangle below a bar = Long idea (MSS + FVG retest + trendLong + not chop)

“S” triangle above a bar = Short idea (MSS + FVG retest + trendShort + not chop)

Faint circle plots on price:

When the filter sees CHOP

When it sees Trend Long zone

When it sees Trend Short zone

You do not have to trade every L or S.
They’re there to show “this is where the model would have considered an entry.”

How to use it in your trading
1. Use it with a higher-timeframe filter

Best practice:

Use this with the Chop Meter 1H/30M/15M or some other HTF filter.

Only consider L/S when:

Chop Meter = TRADE / NORMAL, and

This indicator prints L or S in the right location (premium/discount, near OB/FVG, etc.)

If higher-timeframe says NO TRADE, you ignore all L/S.

2. Location > Signal

Treat L/S as confirmation, not the whole story.

For shorts (S):

Look for premium zones (previous highs, OBs, fair value ranges above mid).

Want purge / raid of liquidity + MSS down + bearish FVG retest → then S.

For longs (L):

Look for discount zones (previous lows, OBs/FVGs below mid).

Want stop raid / purge low + MSS up + bullish FVG retest → then L.

If you see L/S firing in the middle of a bigger range, that’s where you skip and let it go.

3. Instrument presets (example)

You can tune the ATR/chop settings per instrument:

MNQ (noisy, 1m chart):

ATR length: 21

Max chop ratio: 0.90

Min trend ratio: 1.40

Bars after MSS allowed: 10

GOLD (cleaner, 3m chart):

ATR length: 14

Max chop ratio: 0.80

Min trend ratio: 1.30

Bars after MSS allowed: 20

You can save those as presets in the TV settings for quick switching.

4. How to practice with it

Open replay on a couple of days.

Check Chop Meter → if NO TRADE, just observe.

When Chop Meter says TRADE:

Mark where L/S printed.

Ask:

Was this in premium/discount?

Was there SMT / purge on HTF?

Did the move actually deliver, or did it die?

Screenshot the A+ L/S and the ugly ones; refine:

ATR length

Chop / trend thresholds

MSS lookback

Your goal is to get it to where:

The L/S marks show up mostly in the same places your eye already likes,
and you ignore the rest.

إخلاء المسؤولية

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.