OPEN-SOURCE SCRIPT
Chop Meter + Trade Filter 1H/30M/15M (Ace PROFILE CLEAN v2)

What this indicator does
Name: Chop Meter + Trade Filter 1H/30M/15M (Ace PROFILE CLEAN v2)
This is not an entry signal indicator. It’s a market condition filter:
It checks how compressed or expanded price is on
1H, 30M, and 15M.
It labels each TF as CHOP or NORMAL.
If 2 or more of those are in CHOP, it prints NO TRADE.
If 0 or 1 are in CHOP, it prints TRADE.
You use it to answer one question:
“Is this a session I should be pushing the button,
or is this a day to sit on my hands?”
How it works (simple version)
For each timeframe (1H, 30M, 15M), the script:
Looks back N bars (ATR length).
Measures:
ATR over N bars
Price range over N bars (highest high − lowest low)
Computes a compression value:
compression = ATR / range.
Then it compares that to the Threshold:
If compression > threshold → CHOP (market boxed / compressed)
If compression ≤ threshold → NORMAL (market expanded / trending)
Finally:
It counts how many TFs are CHOP.
If 2 or 3 TFs are CHOP → NO TRADE.
If 0 or 1 TFs are CHOP → TRADE.
Inputs / Profiles
At the top you see:
Profile
Overnight 4/0.40 – for Asia / London / overnight sessions
NYO 5/0.45 – for New York Open profile (default)
Custom – lets you type your own values
When Custom is selected, you can set:
ATR Length (Custom) – how many bars to use in the compression calc
Chop Threshold (ATR ÷ Range) (Custom) – where you cut between CHOP vs NORMAL
Higher threshold → more bars counted as NORMAL, less CHOP
Lower threshold → more bars counted as CHOP, fewer TRADE environments
For NYO, you normally keep:
Profile = NYO 5/0.45
(ATR over 5 bars, threshold 0.45)
What you see on the chart
A single line panel at the bottom-right, like:
1H: NORMAL | 30M: CHOP | 15M: NORMAL | TRADE | NYO 5/0.45
Meaning:
1H: NORMAL → the last 1H window is expanded enough (not boxed).
30M: CHOP → 30M is compressed (inside a tighter range).
15M: NORMAL → 15M has opened up.
TRADE → Only 1 TF is CHOP, so the majority says OK to trade.
NYO 5/0.45 → just a tag to remind which profile you’re using.
If instead you see:
1H: CHOP | 30M: CHOP | 15M: NORMAL | NO TRADE | NYO 5/0.45
That means:
1H and 30M are boxed
15M opened a bit, but 2 TFs are CHOP
Final verdict: NO TRADE environment
How to use it in your trading
1. As a gatekeeper before any entry model
No matter what entry you use (MSS + FVG, OB, purge setups, etc.):
If the panel says NO TRADE →
You do not open new positions.
You’re in “observe only” mode.
You can still study price, mark levels, and journal, but you’re not pressing the button.
If the panel says TRADE →
The environment is acceptable.
Now you can look for your entry model (e.g. MSS + FVG retest, SMT, OB, etc.).
Think of it as your first filter every session:
“Panel says NO TRADE? I don’t care how good the candle looks – I’m waiting.”
2. Reading each timeframe
1H: CHOP → Day is still boxed on the higher frame; big expansion hasn’t kicked in.
30M: CHOP → Classic 30M dealing range; many fake breaks and wicks likely.
15M: CHOP → Intraday still coiling; scalping environment at best.
When 2 or 3 say CHOP, expect:
Whipsaw
MSS both ways
Failed FVGs
News spikes that die in the box
Perfect time to protect your psychology and capital.
When 2 or 3 say NORMAL, expect:
Cleaner swings
Better follow-through after MSS / FVG
Easier to hold for targets
3. How it pairs with your MSS/FVG indicator
With your Chop + MSS/FVG Retest indicator:
Chop meter = environment filter
MSS/FVG indicator = entry trigger
Your process becomes:
Check chop meter:
If NO TRADE → hands off.
If TRADE → go to step 2.
On your chart, wait for:
Purge / SMT at the edges
MSS in the right direction
FVG + retest
Only take L/S when both:
Chop meter = TRADE, and
Entry model = L/S signal in the right area (premium/discount).
That way, you’re not just trading every L/S the MSS script spits out—you’re trading L/S only when the higher-timeframe environment is worth it.
Name: Chop Meter + Trade Filter 1H/30M/15M (Ace PROFILE CLEAN v2)
This is not an entry signal indicator. It’s a market condition filter:
It checks how compressed or expanded price is on
1H, 30M, and 15M.
It labels each TF as CHOP or NORMAL.
If 2 or more of those are in CHOP, it prints NO TRADE.
If 0 or 1 are in CHOP, it prints TRADE.
You use it to answer one question:
“Is this a session I should be pushing the button,
or is this a day to sit on my hands?”
How it works (simple version)
For each timeframe (1H, 30M, 15M), the script:
Looks back N bars (ATR length).
Measures:
ATR over N bars
Price range over N bars (highest high − lowest low)
Computes a compression value:
compression = ATR / range.
Then it compares that to the Threshold:
If compression > threshold → CHOP (market boxed / compressed)
If compression ≤ threshold → NORMAL (market expanded / trending)
Finally:
It counts how many TFs are CHOP.
If 2 or 3 TFs are CHOP → NO TRADE.
If 0 or 1 TFs are CHOP → TRADE.
Inputs / Profiles
At the top you see:
Profile
Overnight 4/0.40 – for Asia / London / overnight sessions
NYO 5/0.45 – for New York Open profile (default)
Custom – lets you type your own values
When Custom is selected, you can set:
ATR Length (Custom) – how many bars to use in the compression calc
Chop Threshold (ATR ÷ Range) (Custom) – where you cut between CHOP vs NORMAL
Higher threshold → more bars counted as NORMAL, less CHOP
Lower threshold → more bars counted as CHOP, fewer TRADE environments
For NYO, you normally keep:
Profile = NYO 5/0.45
(ATR over 5 bars, threshold 0.45)
What you see on the chart
A single line panel at the bottom-right, like:
1H: NORMAL | 30M: CHOP | 15M: NORMAL | TRADE | NYO 5/0.45
Meaning:
1H: NORMAL → the last 1H window is expanded enough (not boxed).
30M: CHOP → 30M is compressed (inside a tighter range).
15M: NORMAL → 15M has opened up.
TRADE → Only 1 TF is CHOP, so the majority says OK to trade.
NYO 5/0.45 → just a tag to remind which profile you’re using.
If instead you see:
1H: CHOP | 30M: CHOP | 15M: NORMAL | NO TRADE | NYO 5/0.45
That means:
1H and 30M are boxed
15M opened a bit, but 2 TFs are CHOP
Final verdict: NO TRADE environment
How to use it in your trading
1. As a gatekeeper before any entry model
No matter what entry you use (MSS + FVG, OB, purge setups, etc.):
If the panel says NO TRADE →
You do not open new positions.
You’re in “observe only” mode.
You can still study price, mark levels, and journal, but you’re not pressing the button.
If the panel says TRADE →
The environment is acceptable.
Now you can look for your entry model (e.g. MSS + FVG retest, SMT, OB, etc.).
Think of it as your first filter every session:
“Panel says NO TRADE? I don’t care how good the candle looks – I’m waiting.”
2. Reading each timeframe
1H: CHOP → Day is still boxed on the higher frame; big expansion hasn’t kicked in.
30M: CHOP → Classic 30M dealing range; many fake breaks and wicks likely.
15M: CHOP → Intraday still coiling; scalping environment at best.
When 2 or 3 say CHOP, expect:
Whipsaw
MSS both ways
Failed FVGs
News spikes that die in the box
Perfect time to protect your psychology and capital.
When 2 or 3 say NORMAL, expect:
Cleaner swings
Better follow-through after MSS / FVG
Easier to hold for targets
3. How it pairs with your MSS/FVG indicator
With your Chop + MSS/FVG Retest indicator:
Chop meter = environment filter
MSS/FVG indicator = entry trigger
Your process becomes:
Check chop meter:
If NO TRADE → hands off.
If TRADE → go to step 2.
On your chart, wait for:
Purge / SMT at the edges
MSS in the right direction
FVG + retest
Only take L/S when both:
Chop meter = TRADE, and
Entry model = L/S signal in the right area (premium/discount).
That way, you’re not just trading every L/S the MSS script spits out—you’re trading L/S only when the higher-timeframe environment is worth it.
Skrypt open-source
W zgodzie z duchem TradingView twórca tego skryptu udostępnił go jako open-source, aby użytkownicy mogli przejrzeć i zweryfikować jego działanie. Ukłony dla autora. Korzystanie jest bezpłatne, jednak ponowna publikacja kodu podlega naszym Zasadom serwisu.
Wyłączenie odpowiedzialności
Informacje i publikacje nie stanowią i nie powinny być traktowane jako porady finansowe, inwestycyjne, tradingowe ani jakiekolwiek inne rekomendacje dostarczane lub zatwierdzone przez TradingView. Więcej informacji znajduje się w Warunkach użytkowania.
Skrypt open-source
W zgodzie z duchem TradingView twórca tego skryptu udostępnił go jako open-source, aby użytkownicy mogli przejrzeć i zweryfikować jego działanie. Ukłony dla autora. Korzystanie jest bezpłatne, jednak ponowna publikacja kodu podlega naszym Zasadom serwisu.
Wyłączenie odpowiedzialności
Informacje i publikacje nie stanowią i nie powinny być traktowane jako porady finansowe, inwestycyjne, tradingowe ani jakiekolwiek inne rekomendacje dostarczane lub zatwierdzone przez TradingView. Więcej informacji znajduje się w Warunkach użytkowania.