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.
开源脚本
秉承TradingView的精神,该脚本的作者将其开源,以便交易者可以查看和验证其功能。向作者致敬!您可以免费使用该脚本,但请记住,重新发布代码须遵守我们的网站规则。
免责声明
这些信息和出版物并非旨在提供,也不构成TradingView提供或认可的任何形式的财务、投资、交易或其他类型的建议或推荐。请阅读使用条款了解更多信息。
开源脚本
秉承TradingView的精神,该脚本的作者将其开源,以便交易者可以查看和验证其功能。向作者致敬!您可以免费使用该脚本,但请记住,重新发布代码须遵守我们的网站规则。
免责声明
这些信息和出版物并非旨在提供,也不构成TradingView提供或认可的任何形式的财务、投资、交易或其他类型的建议或推荐。请阅读使用条款了解更多信息。