OPEN-SOURCE SCRIPT

Strong BTC Psychological Zones | ProjectSyndicate

1 882
▪️Strong BTC Psychological Zones maps the prices every Bitcoin trader already watches, the round numbers, and tells you how each one has actually behaved. Round numbers like 84,000, 84,500 and 84,250 attract orders, stops and attention, but "psychological level" on its own is a guess. Some round numbers hold price again and again. Others get sliced through as if they weren't there. This indicator stops treating them as equal. It measures every test of every level and gives each zone its own track record before price arrives.

▪️Every 250 USD becomes a shaded zone that runs across the whole chart. When price reaches a zone, the engine opens a test, follows it to a confirmed close, and logs the outcome: REVERSAL, BREAKOUT or STALLED. Those outcomes become each zone's reversal and breakout probability, its hold rate as support and as resistance, its fakeout rate and its reaction size. The zone's color comes from its own record: cyan where reversals dominate, orange where breakouts dominate, slate where the record is split or too thin to judge.

▪️Most round-number tools draw a grid and stop there. This one counts, on a timeframe you choose and lock, every time price came to each level, what happened next, and whether the result is a real edge or just noise. All of it is written inside the zone and laid out in a structured dashboard.

🎯 The Test Engine (the core). A test starts the moment price enters a zone from outside. The side it comes from decides the question: from above is a support test, from below is a resistance test. The test resolves on a confirmed close only.

REVERSAL: a bar closes far enough back toward the side price came from. By default that is the larger of 60% of the grid step or 0.5 ATR.
BREAKOUT: a bar closes beyond the far edge of the zone plus an ATR buffer.
STALLED: the test neither reverses nor breaks within the timeout. Stalled tests are counted and shown, but left out of the reversal/breakout split so they can't distort it.

Wicks don't count as outcomes. Only closes decide.

🔒 Locked Statistics (same numbers on every chart timeframe). All counting runs on one fixed stats timeframe, 5m by default and adjustable, over a fixed calendar window (30 days by default, anchored at 00:00 UTC). The engine runs inside that timeframe's own data, not your chart's. Switch between 1m, 15m, 1H and 4H and every probability stays identical. The dashboard footer confirms the lock: stats timeframe, window, bar count and start date. If your data plan can't supply the full window, the footer turns orange and reads PARTIAL WINDOW with the real start date, so you always know what the numbers are built on.

📊 Probabilities That Show Their Uncertainty. Every zone reports its Reversal Probability and Breakout Probability with a 95% range. A 60/40 split from 8 tests and the same split from 80 tests are not the same claim, and the range makes the difference visible. The record is also split by side (Held as Support and Held as Resistance), because many levels behave differently depending on direction. The Next Test row shows the hold rate for the side price will actually test from, based on where price is now. Edge vs Tier Average compares each zone with the average for its tier (Major, Mid or Minor), in points, and marks the edge significant only when it clears a standard statistical test (|z| ≥ 1.96).

⭐ Strength Score (0–10, based on the conservative estimate). The strength score is 10 × the low end of the 95% range for the zone's dominant outcome. A zone can't score high on a few lucky tests: 3 for 3 scores below 30 for 40. Zones with fewer than 4 resolved tests are tagged FORMING and drawn neutral. A zone becomes a Reversal Zone or Breakout Zone only when one outcome reaches the bias threshold (55% by default). Otherwise it is Contested.

🧪 Behavior Behind the Numbers. After every outcome the engine keeps watching for a set number of bars.

Fakeouts: a breakout that closes back through the zone inside the watch window is logged as a fakeout. You see how often each level's breakouts fail.
Sweep Reversals: a wick that pierced the far edge without a confirming close, followed by a reversal. That is a liquidity grab, counted per zone.
Support / Resistance Flips: a level broken in one direction that later holds from the other side.
Average Reaction and Breakout Follow-Through: how far price typically travels after each outcome, in ATR.
Time to Resolve: how long a typical test lasts, in real time.
Last Event: the most recent outcome and how long ago it happened.

🏛️ Level Hierarchy. Not all round numbers are equal, so the grid is tiered. The 1,000s are MAJOR (solid gold line), the 500s are MID (dashed) and the 250s are MINOR (dotted). Each tier keeps its own average, so a zone is compared with others of its own tier, not with the whole grid.

🎨 Shaded Zones with In-Zone Labels. Each level is a ±30 USD band with a denser core stripe along the level itself.

The band gets more opaque as the strength score rises.
The core stripe gets denser the more often the level has been tested.
A zone under a live test gets a dashed border.
Inside every zone, on a solid backing so lines never run through the text, sits one plain-English line: level · zone type · Reversal % · Breakout %. No abbreviations and no hover-only text.

📋 The Dashboard (six levels at a glance). The top-right panel shows the 3 levels above and the 3 below price, with a PRICE column dividing them. It is laid out in separated sections:

Level, Tier, Zone Type, Strength
Reversal Probability, Breakout Probability, Reversal 95% Range
Tests, Reversals, Breakouts, Stalled
Held as Support, Held as Resistance, Next Test
Fakeouts, Sweep Reversals, Support / Resistance Flips, Average Reaction, Breakout Follow-Through, Time to Resolve
Edge vs Tier Average, Last Event, Distance from Price

Level columns keep their zone colors. A Core mode trims the panel to the decision rows. Position and text size are adjustable.

🧼 Clean-Chart Discipline. By default the chart shows zones, level lines, in-zone labels and one dashboard. Nothing else. Historical R / B / F event markers exist for anyone who wants them, but they're off by default.

🔒 Honest Statistics. This is a measurement tool, not a signal service and not a promise that any level will react. Every test is counted: none are dropped for turning out badly, stalls are shown rather than hidden, and weak samples are labelled FORMING instead of being dressed up. Probabilities are the historical frequencies of each level inside the locked window. They describe how a level has behaved, not how it must behave next. Outcomes are recorded only on confirmed stats-timeframe closes and don't repaint afterwards. A live test in progress can still change until its bar closes.

🔔 Native Alerts.

Zone Reversal Confirmed: a test resolves as a reversal.
Zone Breakout Up / Down: a level is closed through.
Fakeout Detected: a recent breakout closes back through its zone.
High-Probability Zone Test: a new test starts at a zone whose hold rate for that side is 65% or higher, with enough resolved tests behind it.
A dynamic alert message names the level and the event. All alerts come from the locked stats timeframe, so they behave the same on any chart.

🎯 Why this is different. A round-number grid treats every level the same. This one grades each level by its own history, keeps support and resistance apart, shows how uncertain every percentage is, flags whether an edge is statistically meaningful, and locks all of it to one timeframe so the numbers don't shift when you switch charts.

🚀 Built for BTCUSD. The grid step and zone width are inputs, so it adapts to ETH, Gold (XAUUSD), indices and other markets that trade around round numbers.

💡 Cleanest setup: stats locked on 5m over 30 days, chart on 5m–1H, Core rows if you want a smaller panel. On 4H and above, raise the grid step to 500 or 1,000 so single candles don't swallow several levels. If the footer says PARTIAL WINDOW, shorten the window until it reads LOCKED.

🎯 How To Trade It: Two Approaches

Everything comes down to one question: when price reaches this round number from this side, what has it historically done, and is that record strong enough to lean on?

🧱 1) Fade the Reversal Zone: a reaction at a level that holds

Use this when price approaches a cyan Reversal Zone.

▪️Read the record. You want a high Next Test hold rate for the side price is coming from, a strength of ★★★ or more, a significant edge against the tier average, and ideally a high Sweep Reversals count, which means the level has a habit of trapping breakout traders before turning.

▪️Trigger: a rejection at the zone, or the confirmed REVERSAL close.
Target: the next zone in the reversal direction, with Average Reaction (ATR) as a guide to typical travel.
Stop: beyond the far edge of the zone.
Invalidation: a BREAKOUT close through the zone. The level gave way, so step aside or switch to approach 2.

⚡ 2) Trade the Breakout Zone: continuation through a level that rarely holds

Use this when price approaches an orange Breakout Zone.

▪️Read the record. You want a high breakout probability for the side being tested, a low fakeout rate, and a solid Breakout Follow-Through in ATR.

▪️Trigger: the confirmed BREAKOUT close beyond the zone.
Target: the next one or two zones beyond, with Breakout Follow-Through as a guide to typical travel.
Stop: back inside the zone.
Watch: the fakeout window. A close back through the zone means the break failed, and the level's fakeout history tells you how often that happens.

✋ Stand down: when the dashboard says wait

CONTESTED zones: the record is split, so neither side has an edge.
FORMING or UNTESTED zones: too few tests to judge.
A wide 95% range or an edge marked not significant: the percentage may just be noise.
A PARTIAL WINDOW footer: the stats are not built on the full window.
Price between zones with no test in progress: wait for contact and let the alert bring you in.

Rule of thumb: 🧱 Cyan zone + high hold rate for the side being tested + significant edge → fade the first test, stop beyond the zone. ⚡ Orange zone + low fakeout rate + strong follow-through → trade the confirmed close toward the next level. ❄️ Contested, forming, not significant or partial window → stand down until a level has earned its record.

Exención de responsabilidad

La información y las publicaciones no constituyen, ni deben considerarse como, asesoramiento o recomendaciones financieras, de inversión, de trading u otro tipo, proporcionadas o respaldadas por TradingView. Obtenga más información en Condiciones de uso.