Black Friday comes early: −40% on every annual plan until 30 Nov. See pricing →
PINE DIGGA
— Release notes

Every version, and every correction.

42 notes so far, the latest on 5 November 2026. These are the posts subscribers get on Discord, reproduced here word for word — 2 of them corrections to an earlier note.

ver2.0

GOLD DIGGA PRO ver2.0: major update

Two measured sleeves for gold. A diamond appears only where a sleeve places an order.

Scalps · 15m gold (spot XAUUSD, and now MGC / GC futures): 2022 to May 2025, on data it was not tuned on. 167 trades · +42.8R · PF 1.374, halves PF 1.232 / 1.519. Max drawdown 13.0R. Costs 0.005%/side + 5 ticks (assumed). Longer record ($0.30/oz), spot: 2010–17 PF 1.20, 2018–22 PF 0.99 (flat). MGC: 2011–17 0.96, 2018–22 1.21, 2023–26 1.29. Expect long flat stretches. Correction: our 183 trades / +$47,090 used a chart-TF trend. As shipped, it is the 167 above.

Regular · the overnight breakout (new): one trade a day, fixed-risk stop, held into the afternoon, no target. The same idea is also on TradingView: GOLD BREAKOUT 15M STRATEGY by WillyAlgoTrader. Measured on gold 15m; failed on 24 other symbols. 2010–2026: 4,264 trades, PF 1.14, max DD 23.7R. Before 2010 it lost. A trend-year sleeve: it earns when gold trends. Next to Scalps, 2010–21: +54R → +134R, drawdown 35R → 27R.

A diamond = an order (Scalps):

  • one trade at a time;
  • limits live 51 bars;
  • 50-bar wait after a target. Fill ▲ · target 🏁 · stop ✕ · expired ○. Regular: diamond on the fill bar + an ARMED label.

Also new:

  • Fixed: the 15m impulse filter used the 5m threshold.
  • One TP for Scalps.
  • ⚠️ BAD RUN: a warning when the last 20 Scalps trades fall below −4.58R. Signals are never muted.

✨ Magic watch: a gold diamond where price tags an untested daily high/low. A level, not a signal.

Every symbol: both sleeves run on any 15m chart; off gold a red box says unmeasured (toggle in settings).

Removed: the 5m lanes, old Regulars and Magic trades, Micro Gold, the paste field.

After updating:

  • 15m XAUUSD or MGC / GC chart; sleeve table is off by default (Show sleeve table);
  • 🕓 Session timezone = Europe/Athens;
  • Psych Zone filter = Yes;
  • delete and recreate your alerts (Any alert() function call).
ver1.9.1

GOLD DIGGA PRO ver1.9.1 — three fixes, one clock

A maintenance release. No lane, preset or signal changes.

The session clock follows daylight saving. The counter-trend window was read in “UTC+3”, a fixed offset — Athens in summer, an hour off all winter. The default is now Europe/Athens (UTC+3 summer, UTC+2 winter, switched by the calendar). City zones joined the list; UTC±N stays for a clock that never moves.

“Enable trade manager” is only a display switch now. With it off, two things changed that never should have: a limit diamond jumped from its confirmation candle back to the order-block bar, and the whole trade computation was skipped — too-far-stop signals were drawn instead of skipped, FILLED/EXPIRED alerts never fired, stored trade data was never reset. The trade is always computed now; the switch hides the tooltip and the card, nothing else.

Measured. Gold 15m scalp preset on the bench: identical to the cent in both test windows. 5m diamond count: 122/122 against ver1.9.

Examined and left alone. On a 15m chart the 5m engine reads the last 5m bar of each 15m candle, not all three. A version reading all three was built and measured: the gold 15m preset went from −0.4k / +11.8k to −12.1k / −3.9k. The presets were tuned on the current behaviour — it is part of what they are, so it stays.

After updating: if 🕓 Session timezone shows “UTC+3”, switch it once to Europe/Athens (or your city). Recreate your alerts — an old alert keeps running ver1.9.

ver1.9

GOLD DIGGA PRO ver1.9 — the alert instance and the chart now see the same bars

From one alert: a BUY on 18 September at 10:20 whose diamond never appeared. Not delayed — never.

The alert server and your chart were fed different bars. Every higher-timeframe read — the 15m order-block engine on a 5m chart, the regime trend, the 30m / 4H / daily slopes — returned the last closed bar on history but the open bar in realtime, tick by tick. The 15m engine runs on every 5m close, so in realtime it saw a half-formed 15m bar three times per period, and a block it found mid-bar went into its library for good. The alert instance runs realtime from the day you made the alert; the chart rebuilds from history on every load. Three days later they held different libraries — the 10:20 alert asked for 77,639, and the chart’s block at that price was born 55 minutes later with a different shape.

Fixed without touching history. Each read now keeps a value only once its bar has closed; until then it uses the previous bar — which is what history shows there. History is byte-identical to ver1.8: N/N diamond count on the same chart, readable as diamonds drawn in the Data Window. In realtime the alert instance now sees what the chart sees.

New — FILLED and EXPIRED alerts. A resting limit reports FILLED BUY limit Scalp @ … at the touch and EXPIRED … when its pending life runs out (cancel the manual order); a market entry reports FILLED on the diamond’s bar. Per-lane toggles apply.

Retired — the three per-lane alert conditions (Scalp / Regular / Magic). One alert per chart, “Any alert() function call”, carries signals, plans and fills.

No signal, lane or measured configuration changes. Delete and recreate your alerts as “Any alert() function call” — an old alert keeps running the ver1.8 snapshot, with the divergence.

ver1.8

GOLD DIGGA PRO ver1.8 — the alert and the diamond now agree

From one report: an alert arrives, there is no diamond on the chart, and hiding the indicator and showing it again brings it back.

The order-block tooltip was evicting your diamonds. Pine allows a script 500 drawing labels and that ceiling cannot be raised. Every block carried one, so on a 5m chart the block library alone held 400 of the 500 — and past the ceiling the oldest go.

It had not earned the room. That label drew nothing; it only answered a hover. And its tooltip was written once when the block was born and never updated, so “Age: 0 bars” said zero on every block, forever, and “Distance” was frozen at that first bar. Age is the one number worth having there, and it was the broken one. The rest is on the chart already: the box is the range, its colour is the timeframe and direction, a faded block failed the filter, an FVG has its own box.

Gone, with 12 colour calls per block per bar that repainted invisible text. 400 labels freed on 5m, 200 on 15m. Same blocks, same signals. The breaker tooltip shared that label and goes too.

The alert was firing for trades PRO had already refused. A signal whose stop is wider than its lane’s maximum is skipped and draws no marker — but the alert fired ahead of that filter. Both are gated on the same thing now.

And the alert carries the trade — BUY · SIZE 0.42 · ENTRY 4098.10 · SL 4091.60 · LIMIT 12 bars — instead of the symbol and timeframe alone.

Also: levels stop going negative off-metal. The stop buffer and max-SL cap are gold dollars; on a 1.98 instrument the card printed SL −15.51450. They now carry as a fraction of price. Gold, MGC, silver, palladium and every sleeved symbol keep a factor of exactly 1 — nothing you run moves.

Recreate your alerts after updating. TradingView stores a snapshot of the script from when the alert was made, so old alerts keep running ver1.7.

ver1.7correction

Correction to the ver1.7 note — the proximity guard, measured

The ver1.7 release led with a fix: PRO had never carried the untested-daily proximity guard, and the bench did. Two sentences in that note were wrong, and the second one in the expensive direction.

What it said: “Every sleeve you run was measured with that guard active” and “you will see fewer diamonds, and fewer is correct.”

What is true. Most sleeves, not every. Gold ships without sleeves, so one default served all of its lanes — and gold’s own measured strings disagree with each other:

gold 15m Scalps   olDailyProxOn=0   measured with the guard OFF
gold 5m lanes     olDailyProxOn=1   measured with it on, $25
MGC sheet         olDailyProxOn=1   measured with it on, $15
crypto sleeves    olDailyProxOn=1   measured on — never once fired

The 0 on the flagship line is not an oversight. ver1.7 overrode it.

The A/B, run today. ULTRA ver1.7, XAUUSD 15m, Scalps, deep backtesting, fixed sizing. The control reproduces the published row’s fingerprint — drawdown 13,903.42 to the cent, 188 trades, 31.91% win — so it is the same bench.

                     net        PF   trades
OFF             +45,567.37   1.351     188
ON  $25          −2,520.13   0.954      72   Jan 2022 – May 2025

OFF             +13,466.57   1.319      60
ON  $25          +7,378.36   1.188      54   Jul 2025 – Aug 2026

116 of 188 trades removed, and +45,567 becomes −2,520.

$25 is 0.63% of gold near 4,000. On a 15-minute chart price is nearly always within 0.63% of some untested daily level, so a rule blocking every entry heading into one blocks most entries. It stops being a filter and becomes a muzzle.

(continues)

ver1.7correction

Correction to the ver1.7 note — what changed

The guard is now an exception rather than a default. It stays on everywhere except gold 15m Scalps, which runs as it was measured. MGC and the crypto sheets are untouched: their sheet carries the value their own campaign used, and the sheet always wins over a default.

In CRYPTO DIGGA it is switched off in all six sleeves. Not because it hurt there — it never fired at the inherited $15. Because the 0.25% scale floor moved BTC to about $195, which cost two trades a year, and a vehicle that does not reproduce the rows it publishes is worth less than the rows.

What was not done, deliberately. No sweep for a distance that survives — $5, $10, something that works. That search, run on the window that produced the result, is how a filter gets fitted rather than measured. If this guard is worth rescuing on gold, it needs its own criteria written down before the first number, not after.

What still stands. The original fix is right for every lane where the guard fires and was measured firing. PRO genuinely had been drawing signals the bench refused. What was wrong was applying it to a cell whose own configuration had it switched off, and then telling you the smaller number was the better one.

Two lanes still have no A/B of their own: gold’s 5m Scalps and 5m Regulars keep the guard on because that is how they were measured, and neither has been tested with it off. Both are already refuted out of sample, so nothing hangs on them — but it is not measured, and this is the channel where that gets said.

It took an A/B to find this, not an argument. The argument had been good enough to ship on, twice.

Every number, including the ones that failed: https://pinedigga.com/ledger

ver1.7

GOLD DIGGA PRO ver1.7 — a filter that was missing since day one

Read this part first — it is the only change that alters which diamonds appear.

The untested-daily proximity guard was never in PRO. PRO ULTRA — the bench every gold and MGC sleeve was measured on — refuses an entry heading INTO a nearby untested daily level: a long into a close daily high, a short into a close daily low. Magic is exempt, since fading those levels is its job. No PRO release ever carried it. Not v1.5, not v1.56, not v1.6.

Most sleeves you run were measured with that guard active, so PRO has been drawing signals the bench refused — in the instrument it is named after. Found from the chart, by an owner asking why a Scalp entry sat where it did.

Corrected 2026-08-31, and it matters. “Every sleeve” was wrong. Gold ships without sleeves, so one default served all of its lanes — and gold’s own strings disagree: 15m Scalps was measured with this guard explicitly OFF, the 5m lanes with it on at $25. The A/B, run on the bench over Jan 2022 – May 2025: switching it on for 15m Scalps removes 116 of 188 trades and turns +45,567 into −2,520, PF 1.351 → 0.954. That is 0.63% of price on a 15-minute chart, where price is nearly always within 0.63% of some untested level — a guard that becomes a muzzle.

So the guard now defaults on for every lane except gold 15m Scalps, which runs as it was measured. Sleeved instruments — MGC and the crypto sheets — are untouched: their slot carries the value their campaign used, and the slot always wins. On the lanes where it does fire, fewer diamonds is still correct; on that one cell, fewer was simply wrong.

The part that was easy to get wrong: the bench reads its level list AFTER each bar consumes every level price touched, so a level you already reached does not block you. PRO emits earlier in the bar, so that consumption test is reproduced inside the guard — otherwise PRO would block trades the bench took, and your chart would become a subset of the measured list instead of a superset.

It carries a scale floor too — max(sleeve value, 0.25% of price) — measured on BTC, where an inherited $15 was 0.019% of price and the guard had never once fired. Gold’s 25 and MGC’s 15 already sit above the floor, so neither changes. The floor is there so a pasted sleeve from a differently-priced instrument cannot inherit a dead rail.


Then four changes to the card. These filter nothing; every FLOW source is optional.

The break line no longer takes a side. v1.6 drew it only when the break ran the trade’s way, so its presence was itself a claim. On 2026-08-28 both halves went onto the same 937 trades: agreeing won 26.5% of 151, running against won 31.7% of 82, and the two windows disagree by 29 points — noise, not a reversed effect. Both directions are drawn now: FLOW : break ↑ 8 bars. The arrow is the break’s continuation direction, not the level’s side. Neither direction is the good one. v1.6’s +25/+8 claim rested on 8 to 22 trades, did not survive 937, and is withdrawn.

A HELD marker (BETA). The diamond grows when a level raised in the last 25 bars was still standing as the block formed. It rests on 26 trades over six months — below our own 30-trade floor — and it reversed sign out of sample. Shipped as a switch with its sample on its tooltip — the honest form of an unproven read.

New — WALL lines on the tooltip. The nearest standing level each side of the entry, as a price and a distance in R, sorted into the one facing the target and the one facing the stop: Wall: 4098.10 · 0.46R toward SL. A count could never tell a level that blocks your target from one that must be run over before you can lose. A price can. Unmeasured, and the input says so.

The tooltip was trimmed to pay for it. Gone: the trade number and date, the Source row, the BUY/SELL row, the risk restatement after the lot size. RR moved beside its target — TP1: 4110.29 (0.92R · 50%).

Wiring: add FLOW DIGGA ver1.5+ (#free-tools), then in 🎨 Other Visuals point each PRO source at the FLOW plot of the same name — break dir, held levels, wall above, wall below (export).

The FLOW sources add, remove, delay and reorder nothing — wire all four or none. The proximity guard at the top is the exception, and the reason for the release.

#manual ch. 11.

ver1.6

GOLD DIGGA PRO ver1.6 — FLOW confluence on the card

Optional, off by default, and it gates nothing.

Add FLOW DIGGA (ver1.11+) to the chart and point PRO’s 🌊 FLOW break source input at its break dir (export) plot. A diamond whose direction a defended level had recently broken then carries an extra line on its card — FLOW : break 8 bars — and says the same in its tooltip.

With the trade card switched off, the diamond is drawn visibly larger instead, so a clean chart still shows you which signals had a break behind them. The preset table gains one row telling you whether the source is wired, because the feature’s failure mode is silence and silence looks the same as “nothing broke recently”.

What it is worth, stated in full. Measured over two years of 15-minute Bybit data, order-block signals whose direction a level had just broken beat the same engine’s other trades by +25 win-rate points on ETH and +8 on BTC, the advantage fading the further the break sat from the trade — the same shape on both instruments. It rests on 8 to 22 such trades and does not clear statistical significance once the tested windows are counted. Suggestive, unproven, and shipped as information rather than as a filter.

No signal is added, removed, delayed or reordered. Wire it or leave it alone — ver1.6 fires exactly what ver1.55 and ver1.56 fired.

#manual ch. 11.

ver1.56

GOLD DIGGA PRO ver1.56 — the status table prints again

The status table prints its rows again. An earlier edit had lost the line that writes each cell, so the ledger listing your sleeves — active, dormant, superseded, rejected — rendered as an empty box under its title.

Nothing else changed from ver1.55.

If you were on ver1.55 and thought your presets had not loaded: they had. The table just was not telling you.

ver1.55

GOLD DIGGA PRO ver1.55 — the LIMIT line

Entries are limit orders at a measured retrace, and the measurement only lets a limit rest so long. Until now that number lived only in the strategy bench — the chart showed you the entry and said nothing about how long it stayed workable.

From ver1.55, every limit-entry tooltip and card ends with:

LIMIT : 50 bars

That is how long that limit order stays workable, read from the active lane’s own measured value — not a shared constant. Every shipped sleeve carries 50 bars, which is about 4.2h on a 5-minute chart and 12.5h on a 15-minute one.

The indicator places no orders, so this is information for the human working the order by hand: if it has not filled by then, the measured configuration would have walked away from the setup.

It is a fixed total, not a live countdown — the time the order is good for, the same number on every bar. Market entries skip the line entirely (the Magic lane’s market mode has nothing resting), and so do clamped limits, which fill immediately.

Nothing else in the engine changed.

ver1.5

GOLD DIGGA PRO v1.5 — PRO is no longer gold-only

Until v1.5 a pasted preset could only re-tune the gold sleeves. Since v1.5 a preset can carry a sleeve for a different instrument, and the chart behaves accordingly.

A symbol with pasted sleeves is preset-managed. Only the pasted lanes run; the gold built-ins stay silent on that chart. Running gold’s measurements on Micro Gold futures was never measured, so it does not happen by accident.

A symbol with no sleeves at all still runs the gold built-ins as before, but now says so — a warning row names the mismatch instead of leaving you to notice the symbol yourself.

On gold, nothing changes. No presets pasted → the same five measurements as v1.11.

The first non-gold sleeves ship built in: MGC (Micro Gold futures). A 5-minute Scalp sleeve and a 15-minute Magic sleeve, each tuned and validated on two disjoint half-year windows of MGC1! data. Nothing to paste: open an MGC1! chart and the matching sleeve runs — 5m shows Scalps only, 15m shows Magic only, and the status table lists both as built-in. A pasted string for the same slot still takes over.

Also in v1.5:

  • Magic accepts a 15-minute pasted sleeve. Gold’s own 15m chart still runs Scalps + Regulars only — no gold 15m Magic measurement exists, so none is pretended.
  • Pasted sleeves carry their ATR-scaled gates (SL buffer, max-SL skip, impulse floor) and their max-SL skip per lane. Strings from older gold measurements do not use them and behave exactly as before.
  • The v1.11 solid-line history of already-tagged daily levels was retired to make room for the MGC sleeves. Untested levels still draw as dashed lines, and every Magic diamond still carries its level in the tooltip.

Full detail: #manual ch. 01–05.

ver2.0

PRO ULTRA v2.0: PRO’s two sleeves, as a strategy

ULTRA is no longer a preset workshop. It is GOLD DIGGA PRO ver2.0 in strategy mode, so the Strategy Tester shows every number we publish, on your chart.

One sleeve at a time (🔬 Lane under tuning, because TradingView nets positions):

  • Scalps (default): the measured Gold 15m Scalps
  • Regulars: the overnight breakout, 15m only
  • Magic: retired, no orders

Want both? Add ULTRA twice.

The defaults ARE the measurement. No paste:

XAUUSD 15m  2022-01 → 2025-05   167 tr  +$42,803.67  PF 1.37
MGC1!  15m  2023-01 → 2026-10   199 tr  same list as measured
Regulars    2010 → 2026-10    4,262 tr  record PF 1.14 · DD 23.7R

Regulars is a trend-year sleeve: before 2010 the rule lost. Its record is in R, net of $0.30/oz, so the tester’s PF will read differently.

Preset strings are retired. “Tune a preset for your asset, paste it into PRO” is withdrawn: our own test showed that the best setting on one window does not predict the next. The preset inputs are removed. To keep your own setups, use Settings → Defaults → Save as… (sharing as strings is gone, on purpose). The tuning menu stays. If you experiment, tune on one window, then test once on a later one you never touched.

Also new

  • Runs on every symbol. Off gold, a red UNMEASURED box (last setting hides it)
  • 🕓 Regular clock: Etc/GMT-3 by default
  • Compounding now defaults OFF
  • PRO ver2.0 visuals; build stamp ULTRA-2.0 b3 at the top centre

After updating

  1. Reset is required. The removed inputs shifted every later setting up four places. Settings → Defaults → Reset settings (or remove ULTRA and add it again)
  2. Tick the terms box
  3. Delete and recreate your alerts
ver1.6.1

PRO ULTRA v1.6.1 — three fixes, one clock

A maintenance release. Registry unchanged (84 keys); every existing string loads.

The session clock follows daylight saving. Default zone is now Europe/Athens instead of the fixed “UTC+3”. It also drives the daily trade counter, which used to parse a fixed number out of the “UTC±N” text and could not follow the calendar.

“Enable trade manager” is only a display switch now. With it off, the strategy received no trades at all — the hand-off to the strategy sat behind that switch — and limit diamonds jumped back to the order-block bar. The trade is always computed now; the switch hides the tooltip.

Measured. Three 15m scalp presets (gold, BTC, ETH), two disjoint windows each:

v1.6                     +99.9k
v1.6.1                  +104.9k   gold identical to the cent
all 5m bars on 15m        +8.7k   built, measured, not shipped

That last line is the one worth reading. On a 15m chart the 5m engine reads only the last 5m bar of each candle. Reading all three looks like the obvious fix — it was better in both windows nowhere. The presets were tuned on the current behaviour and it is part of what they are. It is now written into the header, so nobody “fixes” it again without re-tuning the 15m lanes on it.

After updating: switch 🕓 Session timezone from “UTC+3” to Europe/Athens once. Winter months of a backtest move by that hour — that is the fix working.

ver1.6

PRO ULTRA v1.6 — one opt-in gate, and what it measured

v1.6 changes exactly one thing against v1.5: it adds the Δγ absorption gate. The registry grows from 81 keys to 84 — dgOn, dgPushBars, dgDecay.

With the gate off, v1.6 is byte-identical to v1.5. Not “close enough”: the request for 1-minute data sits inside the toggle, so with dgOn=0 nothing is requested and no code path differs. Any v1.5 measurement reproduces exactly.

Old strings still parse. 88-, 85-, 81- and 80-key strings all load; new exports mint at 84, and a string from an older registry arrives with dgOn=0.

No sleeve ships with the gate on, and PRO has never seen it. Here is why, because the reasoning is the more useful half.

Δγ asks whether the flow that pushed price into the order block is still running, and drops the diamond if it is. Four measurements:

BTCUSDT.P  5m   +5,061   5 events
MGC1!      5m   −3,657   5 events
XAUUSD     5m      +64   0 events
ETHUSDT.P 15m       −4   0 events

BTC came back positive with the sign holding in both halves — the first order-flow filter in this project to measure positive at all. Then MGC, an equally fair second sample on the same timeframe class, came back the other way, and split by its own halves the sign flips.

Mechanism plausible, edge unproven. The BTC result rests on five events, and three correct vetoes in a row is not rare when two-thirds of candidate trades lose anyway. Once a fair second sample came back negative, that number stopped being distinguishable from luck.

So the gate stays default-off and opt-in on the bench, and its forward-validation plan is downgraded from confirm before shipping to watch, expecting nothing.

It joins a long line of entry vetoes measured honestly and declined — CVD twice, the cooldown family 0 for 8, the session block. The standing lesson: filtering entries has never paid here. When you are exposed and how much you risk has.

#manual-ultra ch. 44.

ver1.5

PRO ULTRA v1.5 — the bench sheds what measured nothing

The version number jumps to match PRO v1.5, and the preset registry drops from 88 keys to 81.

The CVD divergence veto is gone — inputs, machinery and all. It was measured honestly on two disjoint half-year windows, on spot and on Micro Gold futures, and came back clean negative on both. The mechanism was proven; the information was not there.

“Scan timeframes” is gone. It was behaviourally inert: the only two values any measurement ever used both passed every signal path unchanged, and the modes that would have differed were never set by anything. The dropdown-pitfall list shrinks from five to four.

“Magic OB Reversals” is gone, with its two support settings (Magic lane: OB age from, Setup max wait — Magic). It was OFF in every measured sleeve on every instrument — the Magic lane arms exclusively off untested daily highs and lows, which is what it always did in practice.

Old strings still parse. 88-, 85- and 80-key strings load in ULTRA v1.5 and in PRO v1.5 exactly as before — every removed key was already inert on arrival. New exports mint at 81.

Methodology and settings reference: #manual-ultra.

ver2.01

CRYPTO DIGGA ver2.01 — Scalps on every coin, with a warning

Changed. Scalps now run on any coin and exchange on 5m and 15m, BTC included. Only seven charts are measured: ETH, CAKE, KAS, ETC, SHIB1000, POL on 15m and HYPE on 5m. Everywhere else the chart shows ⚠ UNMEASURED. Those diamonds have no proven record: across the 50 coins tested the lane lost money.

New setting. Hide unmeasured warning in 📊 Status hides the warning. It changes no signal.

Unchanged. OI Flush and the seven measured charts print the same signals as ver2.0, checked on CAKE 15m and HYPE 5m.

After updating: settings stay. Recreate your alerts: an old alert keeps running the previous version.

ver2.0

CRYPTO DIGGA ver2.0 — OI Flush replaces Magic

New: 🌊 OI Flush Long. A 4H long on any Bybit perp when price and open interest have both fallen unusually hard in 24 hours. Out after 24 hours, no stop.

50 coins not used in the design, 2021-26
3,860 trades · 53% wins · +0.65% per trade
after cost and funding · 36/50 coins positive

Keep it small: one trade in ten was down 10% or more along the way, and signals cluster on crash days. Paper forward log started 4 November, no closed trades yet. TradingView’s OI history starts around early 2024.

New Scalps coins. CAKE, KAS, ETC, SHIB1000, POL on 15m, HYPE on 5m, alongside ETH 15m. Picked from 50 coins for staying positive in every period, and selections fade: the full 50 stayed below PF 1. Expect some to stop working.

Removed. Magic and the BTC Scalps sleeves. BTC runs OI Flush only. The community presets field is gone too: strings you had pasted stop running.

Fixed. A signal blocked by a filter now starts its cooldown, as it did in the measurement. Measured trades with a diamond went from 86% to 92%, unexplained diamonds from 74 to 19. ETH 15m changes too: 83 diamonds become 77 since April.

Not every diamond is a measured trade. Of 359 on six coins, 242 were. The tooltip now says it: skip a diamond if you are in a trade, or within the wait after a loss (12.5h on 15m, 10h on HYPE).

After updating: settings stay, the old Magic toggles are now OI Flush toggles. Recreate your alerts: an old alert keeps running the previous version.

ver1.2.1

CRYPTO DIGGA ver1.2.1 — three fixes, one clock

A maintenance release. No sleeve, preset or signal changes.

The session clock follows daylight saving. The counter-trend window was read in “UTC+3”, a fixed offset — an hour off all winter. Default is now Europe/Athens (UTC+3 summer, UTC+2 winter). City zones joined the list; UTC±N stays for a fixed clock.

“Enable trade manager” is only a display switch now. With it off, a limit diamond jumped back to the order-block bar, too-far-stop signals were drawn instead of skipped, FILLED/EXPIRED alerts never fired and stored trade data was never reset. The trade is always computed now; the switch hides the tooltip and the card.

Measured on the bench, 15m scalps, two disjoint windows:

BTC   −7.4k / +32.9k  →  −5.4k / +32.9k
ETH  +18.1k / +44.9k  → +20.1k / +45.9k

Nothing worse beyond noise.

Examined and left alone. On 15m the 5m engine reads the last 5m bar of each candle, not all three. Reading all three was built and measured — BTC flipped negative in its second window, ETH lost 37k. The sleeves were tuned on the current behaviour, so it stays.

After updating: if 🕓 Session timezone shows “UTC+3”, switch it once to Europe/Athens. Recreate your alerts — an old alert keeps running ver1.2.

ver1.2

CRYPTO DIGGA ver1.2 — the alert instance and the chart now see the same bars

From one alert: a BUY on 18 September at 10:20 whose diamond never appeared. Not delayed — never.

The alert server and your chart were fed different bars. Every higher-timeframe read — the 15m order-block engine on a 5m chart, the regime trend, the 30m / 4H / daily slopes — returned the last closed bar on history but the open bar in realtime, tick by tick. The 15m engine runs on every 5m close, so in realtime it saw a half-formed 15m bar three times per period, and a block it found mid-bar went into its library for good. The alert instance runs realtime from the day you made the alert; the chart rebuilds from history on every load. Three days later they held different libraries — the 10:20 alert asked for 77,639, and the chart’s block at that price was born 55 minutes later with a different shape.

Fixed without touching history. Each read now keeps a value only once its bar has closed; until then it uses the previous bar — which is what history shows there. History is byte-identical to ver1.1: N/N diamond count on the same chart, readable as diamonds drawn in the Data Window. In realtime the alert instance now sees what the chart sees.

New — FILLED and EXPIRED alerts. A resting limit reports FILLED BUY limit Scalp @ … at the touch and EXPIRED … when its pending life runs out (cancel the manual order); a market entry reports FILLED on the diamond’s bar. Per-lane toggles apply.

Retired — the two per-lane alert conditions (Scalp / Magic). One alert per chart, “Any alert() function call”, carries signals, plans and fills.

No signal, lane or measured configuration changes. Delete and recreate your alerts as “Any alert() function call” — an old alert keeps running the ver1.1 snapshot, with the divergence.

ver1.1

CRYPTO DIGGA ver1.1 — the alert and the diamond now agree

The same three fixes as GOLD DIGGA PRO ver1.8, from one report: an alert arrives, there is no diamond on the chart, and hiding the indicator and showing it again brings it back.

The order-block tooltip was evicting your diamonds. Pine allows a script 500 drawing labels and that ceiling cannot be raised. Every block carried one, so on a 5m chart the block library alone held 400 of the 500 — and past the ceiling the oldest go.

It had not earned the room. That label drew nothing; it only answered a hover. And its tooltip was written once when the block was born and never updated, so “Age: 0 bars” said zero on every block, forever, and “Distance” was frozen at that first bar. The rest is on the chart already: the box is the range, its colour is the timeframe and direction, a faded block failed the filter, an FVG has its own box.

Gone, with 12 colour calls per block per bar that repainted invisible text. 400 labels freed on 5m, 200 on 15m. Same blocks, same signals. The breaker tooltip shared that label and goes too.

The alert was firing for trades the indicator had already refused. A signal whose stop is wider than its lane’s maximum is skipped and draws no marker — but the alert fired ahead of that filter. Both are gated on the same thing now.

And the alert carries the trade — SIZE, ENTRY, SL and the limit’s life — instead of the symbol and timeframe alone.

Also: levels stop going negative on un-sleeved coins. The stop buffer and max-SL cap are gold’s dollars, inherited with the fork: subtract 17.5 from a sub-dollar coin and the stop goes below zero; on a $150 coin it is a 12% stop. They now carry as a fraction of price. All four shipped cells and the ETH 5m hot sleeve keep a factor of exactly 1 and do not move.

Recreate your alerts after updating. TradingView stores a snapshot of the script from when the alert was made, so old alerts keep running ver1.0.

ver1.0

CRYPTO DIGGA ver1.0 — the same engine, measured on crypto

GOLD DIGGA PRO’s engine with the metals machinery removed and one rule made absolute: nothing runs that was not measured on this symbol and timeframe.

Twelve cells were measured — BTC and ETH × Scalps/Regulars/Magic × 5m/15m. Four shipped. The other eight do not run, and the status table or a chart notice tells you which and why. There is no fallback configuration and no borrowed numbers: an empty lane is an off lane.

What ships, each with the year measured at adoption:

BTC  5m Scalps v2   +40,580 · PF 1.47 · DD 13.8k · 128 trades
BTC 15m Scalps v1   +21,072 · PF 1.38 · DD  8.3k ·  81 trades
BTC 15m Magic  v1   +17,089 · PF 1.48 · DD  6.3k ·  49 trades
ETH 15m Scalps v1   +41,321 · PF 1.96 · DD  6.4k ·  71 trades
ETH  5m Scalps      hot-only, behind a toggle

The Regulars lane is not in this vehicle at all. All four of its cells were refuted — ceilinged at 16 to 48 trades a year, under the floor where tuning cannot tell better from lucky. Carrying a lane nothing could fill was pure weight, so it is gone, and a pasted lane=reg string is rejected by name.

Two findings worth the read on their own. The ATR max-SL cap that was toxic on BTC 5m is load-bearing on BTC 15m — same lane, opposite answer. And ETH 15m Scalps, the best number of the campaign, took zero adoptions: the metals-measured engine landed on ETH already at its optimum.

Forward validation of all four is in progress. Every number above is a backtest measurement until the forward period confirms it.

#manual ch. 12.


Added before release — 2026-08-30

🌊 FLOW confluence on the card. Four optional sources from FLOW DIGGA ver1.5+. The card says a defended level broke, how long ago and which way; the diamond grows when a level was still standing as the block formed; the tooltip names the nearest standing level each side of the entry in R. None of it filters — the strict doctrine forbids an unmeasured gate as firmly for FLOW as for a lane. Both break directions are drawn, because on 937 trades neither half was the good one.

The untested-daily proximity guard, which no vehicle ever had. PRO ULTRA refuses entries heading into a nearby untested daily level; CRYPTO never carried that rule. On crypto its absence was nearly harmless and that is measured, not assumed: the $15 the sleeves inherited is 0.019% of BTC near 78,000, and running with the guard fully off returned +61,121.02 / PF 1.571 / 138 trades — identical to the cent. It had never once fired. Switched off in the sleeves on 2026-08-31: the 0.25% floor moved BTC to ~$195, which cost two trades a year and stopped the vehicle reproducing its own published rows. Off, it reproduces them exactly.

So the vehicle floors it at 0.25% of price. That number is measured: 15 → +61,121 · 200 → +64,388 · 500 → +19,446 · 1000 → +5,326. Between 15 and 200 is noise; past 500 the lane collapses. 0.25% puts BTC near $195, inside the noise band — gold’s own 0.63% ratio would put it at $470, over the cliff.

One divergence, stated rather than buried: the bench measured BTC at $15, the vehicle runs it near $195. That is two trades a year — 138 against 136, measured. ETH is untouched, its $15 being already 0.60% of price. Everywhere else, what fired in the measurement is what fires on your chart; this is the exception, and it exists because a rail pinned to a dead number is worse than one that moves.

✨ BTC 5m Magic — new sleeve, behind a toggle, default OFF. Both Magic timeframes fade the same daily highs and lows, so the 5m cell was measured and refused on trade count (39-44/yr). It ships now because it was run on data it had never seen and held:

out of sample       +20,545 · PF 1.348 ·  70 trades · DD 16,005
   (Jan 2024 → Jul 2025)
its own year        +10,417 · PF 1.317 ·  40 trades · DD  8,502
the wider window     +6,212 · PF 1.167 ·  44 trades · DD 10,985
   (Jul 2025 → Aug 2026, the span every other sleeve is measured over)

The only lane here whose edge reproduced outside its own year. Off by default because it earns roughly what it draws down, and because that third row is the honest one: stretch its year four weeks earlier and it nearly halves. All three ride on the toggle’s tooltip and on the ledger.

The card was trimmed to what places the order: entry, stop, liquidation, targets with R in brackets, limit life, size. The trade number, date, source row, bounce origin and BUY/SELL row are gone — the axis says when, and the diamond’s position says the direction.

ver1.0

CRYPTO DIGGA PRO ULTRA v1.0: ver2.01 as a strategy

The same OI Flush and Scalps signals, with an equity curve and a trade list in the Strategy Tester. It comes with the PRO plan.

One lane at a time (🔬 Lane in the Tester). Want both? Add it twice.

  • OI Flush (default): any Bybit perp, up to 4H. Size is 1% of equity. No stop, so the size is the risk.
  • Scalps: 5m and 15m. Measured on ETH, CAKE, KAS, ETC, SHIB1000, POL 15m and HYPE 5m. Anywhere else it runs under the UNMEASURED warning.

How close it is to the measurement

OI Flush  SOL CAKE SAND 4H   203 of 204 signals, +3 its own
          15m                42 of 42, same entries as 4H
Scalps    7 charts, Apr-Oct  258 of 278 same entries
                             +53.0 R vs +53.3 R measured

Scalps is close, but not the same list trade for trade. ETC and ETH differ most, and the cause on ETC has not been found.

What the tester does not count

  • Funding, in either lane.
  • Other coins. OI Flush’s +0.65% per trade belongs to the whole 50-coin set, and one chart shows one coin.

More diamonds than trades is normal. The diamonds are every signal. The tester holds one position and waits after a loss.

Setup: add it, tick the terms box, pick a lane. Use 4H for OI Flush, because it loads the longest history.

ver1.1.1

INDEX DIGGA PRO v1.1.1 — the clock is a timezone

Every hour in the script — arming hours, day change, weekend — was read in “Owner’s clock: UTC offset (hours)”, a fixed number. 3 was Athens in summer and an hour wrong all winter.

That number is gone. In its place: 🕓 Owner’s clock: timezone, default Europe/Athens — UTC+3 in summer, UTC+2 in winter, switched by the calendar. Type your own city if you are elsewhere (Europe/Berlin, Europe/London, America/New_York …) or a fixed clock like UTC+2. A text field on purpose: the CSV import keeps text fields, and the whole bundle now uses the same setting.

Your clock is yours. It left the preset string — a pasted preset sets the strategy, never your hours.

Preset strings: 123, not 124. A v1.1 string is refused whole — that is the checksum doing its job. Built-in cells are unaffected; re-export anything you shared by hand.

Measured. MNQ 15m: UTC+3 reproduces v1.1 to the cent; Europe/Athens moves only the winter months (−5.2k / +8.8k across the two windows — noise, not an edge).

Recreate your alerts after updating.

ver1.1

INDEX DIGGA PRO v1.1 — a visuals release, and not one trade moves

Every cell, every lane and every measured number is exactly what v1.0 shipped. What changed is what you see — and what you are asked to set.

The background is read, not declared. The “dark chart background” tick is gone. You could set it to disagree with your own screen, and a palette that disagrees with the screen is the one kind you cannot see. v1.1 measures your background’s luma and picks for itself.

Colour now tells you the period: blue is the week, orange is the day. Three things were drawn in near-identical blues, so a line could not be traced back to the switch that drew it. A closed week’s value area was repainted into last week’s colour and left on the chart — two blue sets, same week, nearly the same prices, different switches. Turning off “last week’s” left blue lines standing, and the thick blue line nobody could name was the frozen developing VAH.

Now a closed week keeps its own identity, the day POC is orange, and the week’s three objects have three switches: the projection into this week, the past weeks’ footprint, and the week now running.

Spent lines fade by a step, not to a flat value — the opacity slider in each colour is now the control, where a fixed transparency used to override it.

The daily levels are gone — the green lines, the untested pivots, and the proximity guard with its four settings. The guard shipped off and measured negative, so nothing you traded depended on it. Yesterday’s high and low are still tracked: the rule that pauses a direction after a close beyond one of them is a different rule, measured on its own, and it stays.

Preset strings: re-export. Seven carried settings were removed, so a string holds 124 where v1.0 held 131. A v1.0 string is refused whole rather than half-applied — the count and the checksum exist for exactly this. Mint a new one from PRO ULTRA v1.1.

ver1.0

INDEX DIGGA ver1.0 — the Nasdaq bundle, and the year that carries it (1/2)

The third vehicle. $$$ INDEX DIGGA PRO $$$ is the player; $$$ INDEX DIGGA PRO ULTRA $$$ is the bench that mints its presets. Both on the 15-minute chart, both invite-only.

Three cells, picked by the symbol. No lane dropdown and no preset selector in the player: open MNQ1! and the futures cell runs, NAS100 and the CFD cell runs, XAUUSD and the gold cell runs. Four trading years to September 2026, the owner’s own tester, 1 % risk, commission in:

MNQ / NQ futures   +5.5 / +10.2 / +1.0 / +45.4 R   4 of 4 · 597 trades · PF 1.19
NAS100 / US100     +3.7 /  -6.5 / +3.5 / +42.1 R   3 of 4 · 647 trades · PF 1.11
XAUUSD gold CFD   -12.0 / +34.6 /  -0.5 / +18.8 R  2 of 4 · 347 trades · PF 1.15

Read the rows, not the totals. Twelve measured years; nine are ordinary and three are the years. Take +45.4, +42.1 and +34.6 out and what is left is a scratch. That is the same convexity every vehicle here has shown, and it is the whole instruction for using this one: size for the nine, not the three.

🔗 The other feed — the finding of this campaign. FX:NAS100 and the CME contract trade the same index at slightly different prices. Require a setup to appear on both before a limit rests, and across three feeds nine of nine combinations improved:

MNQ1!    +61.4 R vs +62.1 plain   drawdown 13.0 vs 24.0   PF 1.27 vs 1.19
NAS100   +61.8 R vs +48.8 plain   drawdown 26.2 vs 36.9   PF 1.21

What it buys is drawdown, not profit — the total barely moves and the ride halves. Off by default; it needs the counterpart symbol on your plan; and it is ignored on gold, where the same rule was measured and loses. A Nasdaq finding does not get to travel to an instrument that refused it.

Gold futures have no cell — MGC and GC are left empty rather than handed the spot numbers.

ver1.0

INDEX DIGGA ver1.0 (2/2) — what is not in it, and two bugs worth naming

Two lanes in the player, four in the bench. 👌 Regular and 🔥 Scalps run; Scalps only on the CFD, because futures measured and refused it. 🧠 PSYCHO and 🌅 DAILY were built, measured, and neither earned a cell — they stay in the bench so the refutation can be re-run rather than taken on trust. PSYCHO’s celebrated Nasdaq number was a fill artefact: a stop that filled after price had already passed it. The honest version is +0.05 R a trade and dies at real commission.

The player has no tuning. Every order-block, volume-profile, regime, stop and lane parameter is gone: what is left is the terms tick, the clock, risk and account, the link toggle, markers, visuals, alerts and the preset field. A player with tuning knobs is a bench with a marketing name.

🌐 Preset strings, the GOLD shape. One-line PD2 strings, minted by PRO ULTRA, checksummed end to end, and the string always wins over the cell — on any symbol, including one with no cell at all. Fourteen settings in a string (the EMA lengths and every timeframe) are carried and verified but not applied: Pine will not take a length that comes as text. A preset that fails does so in silence, so the table bottom left names which cell is running, what a pasted string did, and whether the feeds are linked.

Two bugs, found against the owner’s own charts, now permanent rules of the bench:

The naked first bar. Exits were placed only after a fill was seen, so the first bar of every trade ran without a stop — eight of sixty-nine DAILY trades cost 1.5 to 7.8 R instead of 1 R. Exits now go on the arming bar, and it cost the published MNQ table 27 R: +89.5 became +62.1. The lower number is the honest one.

Two lanes filling in one bar. Only one could be given its exits; the other sat open for 16,000 bars and the margin calls took a test account to −99.9 %. One position at a time is now enforced by the book.

ver1.1.1

INDEX DIGGA PRO ULTRA v1.1.1 — the bench follows the player

Same source, same change, and the sixteen CSV presets regenerated with it.

The clock is a timezone. “Owner’s clock: UTC offset (hours)” — a fixed number, an hour wrong all winter — is replaced by 🕓 Owner’s clock: timezone, default Europe/Athens. Text, not a dropdown, so the CSV import keeps it.

Out of the preset. The clock left the string (123, not 124 — a v1.1 string is refused, re-export), and the CSV presets lost only that one row.

Measured — MNQ 15m Regular, futures preset, same build, same windows:

UTC+3           −8,067.30 / +66,696.78   = v1.1 to the cent
Europe/Athens  −13,242.94 / +75,469.14   winter months only

Opposite signs across the windows: noise, not an edge. The point of the change is that the arming hours now mean the same thing on your wall clock in January as in July.

ver1.1

INDEX DIGGA PRO ULTRA v1.1 — the bench follows the player

Both are generated from one source, so every change in the player is the same change here, and the sixteen CSV presets were regenerated with them.

No measured result moves. The daily-levels guard is off in all sixteen shipped presets, so removing it changes not one arming. Everything else is drawing.

Removed • The “dark chart background” tick — the background is read from the chart now (Rec. 601 luma), as in ZONE, FLOW, REGIME and CRYPTO DIGGA. • The daily levels entirely: the green lines, the untested daily pivots, the level store, and the proximity guard with its four settings.

Kept, deliberately Yesterday’s high and low are still tracked, and the break rule that reads them — a close beyond yesterday’s low pauses shorts, mirrored at the high — is untouched. It was measured separately and ships on.

Fixed • A closed week’s value area took the previous week’s colour and stayed on the chart under the developing switch. Three week objects now have three switches and three identities. • The day POC left the blue family. Blue means week, orange means day. • Spent and closed lines fade by a step on the colour picker’s own transparency instead of a flat 70/75.

Preset strings: 124, not 131. A v1.0 string is refused whole. The count and the checksum are the circuit and this is it working — re-export rather than editing an old line by hand.

ver1.0

INDEX DIGGA PRO ULTRA v1.0 — the bench of the index family

The strategy that mints every preset $$$ INDEX DIGGA PRO $$$ plays. Everything the player carries was measured here first — one lane, one position at a time — and exported as a string the player reproduces exactly. Measured on 5m and 15m, on Nasdaq futures, Nasdaq CFDs and spot gold.

Four lanes, one at a time. 👌 REGULAR — a limit at a mature order block price has returned to, with an optional value-area rule and a break-of-structure filter; the lane every shipped cell uses. 🔥 SCALPS — the faster reaction off the newest block, two targets. 🧠 PSYCHO — a round-number block that broke and turned; measured, shipped in nothing (+0.05 R a trade). 🌅 DAILY — a four-timeframe chain; four years of six, shipped in nothing. Both stay here so you can re-run them.

🔗 The other feed. A Nasdaq setup can be required to appear on both tapes before a limit rests. Nine of nine combinations improved; the gain is drawdown, not profit (MNQ1! +61.4 R vs +62.1 plain, drawdown 13.0 vs 24.0). Loses on gold, so the player applies it to the Nasdaq only.

What it reads. Order blocks on two timeframes, weekly and daily value (POC/VAL/VAH), yesterday’s high and low, untested daily swings, the psychological grid, and one two-EMA regime brain each lane obeys or ignores by measurement.

Preset strings. Tick 📋 Export a shareable preset string and the configuration prints to Pine Logs as one checksummed PD2 line. Fourteen of its values (EMA lengths and every timeframe) are carried and verified but not applied — Pine will not take a length that arrives as text — and the table says when the chart differs.

Two rules the bench now enforces: the exit goes on the bar that arms the entry, not after the fill (without it a −8.7 % year reads −26.6 %); a lower-timeframe stop belongs at that timeframe’s close.

$100,000 · 0.005 % commission · 5 ticks slippage. Invite-only, PRO ULTRA plan.

ver2.2

ZONE DIGGA ver2.2 — pivot timeframes as switches, and a weekly lane

Changed — pick your pivot timeframes one by one. The Timeframes dropdown and its fixed presets are gone. In their place, a row of on/off switches: Chart TF, 15m, 1H, 4H, 1D, 1W — any mix. Each timeframe still runs its own engine with its own ATR and its own colour.

New — 1W. A weekly lane, with its own colour.

New — Min swings per level (1D / 1W), default 2. The daily and weekly lanes only see the history loaded on your chart — on a 15m chart, a handful of swings, too few for the 3 the other lanes need. With their own minimum they draw their few real shelves instead of nothing.

Changed — new defaults. The chart now opens on Pivot S/R, with your chart timeframe and 4H switched on; a level needs 3 swings within 0.4 × ATR, up to 20 per lane, and a break counts at 0.8 × ATR. The psych grid is one switch away (Zone engine → Psych grid or Both).

Changed — the pivot menu reads top to bottom: 📐 Pivot S/R (which timeframes) → 🎨 Pivot Colors → ⚙️ Pivot settings.

⚠️ Updating from ver2.1: reset the settings once (… → Settings → Defaults → Reset settings). The pivot inputs moved and TradingView keeps saved values by position — without a reset they land on the wrong inputs. Re-create any ZONE DIGGA alerts too.

The psych grid and the untouched POCs are unchanged. Points of interest, not signals. Included with PRO.

ver2.1

ZONE DIGGA ver2.1 — untouched POCs, and levels that stay put

New — Untouched POCs. The point of control of each finished week (or day) — the price that traded the most volume — drawn as a solid red line and kept only while price has never come back through it. The moment price trades through, it is gone. • Weekly or Daily, independent of the zone engine — works with the psych grid, the pivot levels, or alone. • Age at the right-hand end: W+3 is a week that closed three weeks ago and was never revisited. • Newest 8 kept by default, optional expiry after N periods; width, label size and colour are yours. • New alert 📊 Untouched POC Filled, and the nearest POC above/below is published for other scripts.

Improved — Stable pivot levels (on by default). In ver2.0 the pivot ladder was rebuilt from the whole swing pool on every new swing, so a level could shift after you had marked it. Now a level keeps its price once born: the swings that form it lock its price and width; later swings inside it add touches (thicker line) but never move it. It leaves only when its lookback passes without a touch, or at the level ceiling (farthest from price first). Stable levels off gives you ver2.0 back.

Changed — fewer, heavier levels by default. A level now needs 5 swings (was 2) over the last 2,000 bars (was 1,000): shelves the market kept coming back to, not every double-top. Both are still settings.

The psychological grid is unchanged. Points of interest, not signals. Included with PRO and PRO ULTRA.

ver2.0

ZONE DIGGA ver2.0 — the levels the chart drew itself

ZONE DIGGA has always drawn the levels the market agrees on before price ever gets there: round numbers. ver2.0 adds the other kind — the shelves a chart builds for itself, where price turned again and again and left a cluster of swing highs and lows behind.

A second engine. One dropdown at the top picks Psych grid (everything ver1.0 did, untouched), Pivot S/R, or Both. A pivot level landing on a round number is the strongest thing this script can show you.

Highs and lows count as one population. A ceiling that held three times keeps its history when price later leans on it as a floor — it is the same shelf. How close two swings must sit to count as one level is measured in ATR, so the rule fits a quiet forex pair and a violent coin without being retuned.

Levels weaken, then go. A level is drawn thicker the more swings stand behind it. A close that runs clean through takes a mark; a poke that comes straight back costs it nothing. Enough marks and it turns dashed, then it is dropped. A price that no longer stops anything stops being drawn.

Several timeframes at once. Your chart alone, or 15m · 1H · 4H, or 1H · 4H · 1D, or all of them — each in its own colour, each running a completely independent engine with its own ATR, because a 4H shelf and a 5m shelf are not the same size of thing. A timeframe below your chart’s is skipped rather than invented from bars that cannot show it.

Readable by other scripts. The nearest level above and below price, the swings and breaks behind each, and the distance to the closer one in ATR are published as plots any indicator can read through its source input. Nothing in the family consumes them yet — they are there for your own tools.

Both engines draw points of interest, not signals. Included with PRO and PRO ULTRA as before, and everything in the psychological grid behaves exactly as in ver1.0.

FLOW DIGGA

free · on TradingView
ver1.6

FLOW DIGGA ver1.6 — direction, and where price and flow disagree

FLOW DIGGA is free, on TradingView, for anyone. → #free-tools

The per-bar delta candle shows what happened inside each bar. It never showed which side has held the upper hand over the last hour — the thing people read a CVD for. Now it does, three ways, and the tails stay full size.

Flow line. A line through the candles: the share of recent flow that went one way (EMA of Δ ÷ EMA of |Δ|, 20 bars), in candle units. Cyan above zero, orange below. Flow line height (5) only stretches it.

Cumulative view. Delta view → Cumulative draws the candles like TradingView’s CVD, reset every Session / Day / Week / Never. The tails shrink there, so Per-bar stays the default. Only the drawing changes.

Divergence. A higher high on negative net delta since the previous high — the rise was sold into. A lower low on positive net delta — the fall was bought into. That is the CVD divergence without a CVD line: no anchor, no reset, same answer for everyone. A lime (bullish) or pink (bearish) line joins the two swings on price; a small DIV tag marks it in the pane. Two new alerts, one new export: div dir (export).

It appears Pivot strength bars (5) after the swing — the price of not repainting.

Unmeasured. It ships as a reading aid. The scoreboard has a divergence row against the same “any bar” control as every other read, so your symbol tells you what it is worth. Expect it to fail in strong trends.

Volume now stands upward from zero. The badge shows v1.6, so an old build is visible.

Tip: keep ~5 sub-bars per bar — intrabar 1m on 5m, 1-3m on 15m. A 5m intrabar on 15m turns delta into volume × candle colour.

Every absorption, level, break, alert and score is computed exactly as in ver1.5.

ver1.5

FLOW DIGGA ver1.5 — the standing level, exported

FLOW DIGGA is free, on TradingView, for anyone. → #free-tools

ver1.11 exported the break. A break is an event: it happens on one bar and is gone. The level still standing is the other half of the book, and it now leaves the script too.

A level remembers when it was last raised or reinforced, and three new plots read off that:

held levels (export)  →  🌊 FLOW held source (BETA)
wall above (export)   →  🌊 FLOW wall above source
wall below (export)   →  🌊 FLOW wall below source

held counts the levels raised in the last 25 bars still standing — unsigned, because a buy and a sell level cancelling to zero would read as “nothing held”, the opposite of the truth. The two wall plots give the nearest of those each side of the close as a price, 0 meaning none: a count cannot say whether a level sits between your entry and your target or between it and your stop, and a price can. GOLD DIGGA PRO ver1.7 reads all three, plus ver1.11’s break dir (export). See the next post.

Count from / Count to join the self-scoring group, wide open by default. They gate scoring only — markers, levels and exports are unchanged.

These reads are unproven, and the switches say so. On 937 trades the break read was not supported. Held rests on 26 trades, below our own 30-trade floor, and reversed sign out of sample. The wall prices are unmeasured. Nothing is gated by any of them, on either side; the numbers are in the TradingView description.

The badge got a third row. REAL VOLUME / TICK PROXY, then the covered-bar count on its own, then TF: the intrabar timeframe in use and Δ: the delta extreme it was judged at. Nothing new is measured — the two settings behind every mark are simply on the pane now, so a screenshot carries its own provenance. The ⚠ for a fallback to seconds moved down to the row with the timeframe on it.

Every read, level, break and score behaves exactly as in ver1.11.

ver1.11

FLOW DIGGA ver1.11 — the break, exported

FLOW DIGGA is free, on TradingView, for anyone. → #free-tools

A broken level is the loudest thing it produces, and until now it only spoke to your eyes. It is now published as a plot other scripts can read: break dir (export).

Signed in continuation terms — a broken buy level (a defended low) exports negative, because that is the way the move continues — and additive, so a bar that runs over two levels at once reads −2. Point another script’s source input at it and that script sees what you see.

GOLD DIGGA PRO ver1.6 does exactly this. See the next post.

Nothing else changed. Every read, level, break and score behaves exactly as in ver1.1.

GAP DIGGA

free · on TradingView
ver1.1

GAP DIGGA v1.1 — no more fake gaps from single-price bars

Free, on TradingView. → #free-tools

Fixed. Some feeds start decades back with single-price bars: one price per day, high equal to low. FXCM’s daily gold is one, back to the 1970s. Between two dots every move looks like a three-candle gap the middle candle can’t cover, so v1.0 counted thousands of them as opening gaps. On daily gold they swamped the real ones and made the panel say opening gaps rarely hold and candle gaps hold twice as often. That was the data, not the gaps. v1.1 records a gap only when all three of its candles have a range.

Measured before shipping. On real bars nothing changes: gold 15m, FXCM daily gold 2021-26 and micro gold futures daily give the same gaps as v1.0, gap for gap. On a test history of dots followed by normal bars, v1.0 found 6,076 gaps (94% “opening”), v1.1 found 362 (0%).

Withdrawn. The v1.0 daily finding (opening gaps hold 22%, candle gaps 48%, self-check +7%).

Added. Every gold 15m gap against two plain levels of the same size, distance and stop. Fill: 85-87% for both. Hold at 1R: gaps 47-48%, plain levels 45-48%. A gap is a slightly better level than a random one, not an edge.

After updating, recreate your alerts. An existing alert keeps the v1.0 snapshot.

ver1.0

GAP DIGGA v1.0 — a fair value gap tool that keeps count, and checks itself

GAP DIGGA is free, on TradingView, for anyone. → #free-tools

Every FVG tool draws every gap the same way. This one follows each gap it draws until it fills or the trade from it wins or loses, and that record rates the next one: will it fill, will it hold at 1R, 2R and 3R, from the chart’s own history.

Made by. A gap the middle candle covers is a candle gap — a move made it. A gap that opened between two candles is an opening gap — nobody pushed price through it. The panel shows the two side by side.

It grades itself. Every score is fixed at birth from gaps already decided, so when the gap plays out the tool can compare what it said with what happened. One word at the bottom of the panel: yes / a little / no / overconfident.

What it found on gold, GBPNZD, AUDUSD and NAS100: intraday, every gap is the same gap and the self-check reads zero.

Correction (2026-10-20): the daily result first posted here (opening gaps hold 22%, candle gaps 48%, self-check +7%) is withdrawn. It came from decades of single-price bars at the start of FXCM’s daily gold history: between two dots every move counts as an opening gap. On daily bars with a real range opening gaps barely exist. Compared with plain levels of the same size, distance and stop, gold 15m gaps fill the same (85-87%) and hold 1-3 points better at 1R (47-48% vs 45-48%): a slightly better level, not an edge.

Measured out before shipping: regime alignment (no lift on any market) and displacement (the same fact as made-by, counted twice; the self-check caught it).

Simple panel by default — percentages, ▲ ▼ ? — and a Detailed view with counts, ranges and the calibration bins. Nothing repaints.

SESSION DIGGA

free · on TradingView
ver1.0

SESSION DIGGA v1.0 — liquidity pools that keep count

SESSION DIGGA is free, on TradingView, for anyone. → #free-tools

Asia, London and New York sessions, their highs and lows, PDH / PDL and (optional) equal highs / lows as liquidity pools. Each pool is followed for three sessions: taken or not, and by which session. The record per pool type sits next to every live pool and in the panel, with the count behind it and a 95% range on hover.

Sweep markers. When price takes a pool, a marker appears on the exact spot in the pool’s colour, a solid core fading to a faint halo, and the pool’s line goes. The last 20 are kept, three sizes in the settings.

Session profiles. Drawn when each session closes: POC line, the 70% value area in the session’s colour, the rest in grey. 50 rows and the last two session days by default; with more rows fewer sessions are kept (100 rows → the last 5).

Sessions. Time pickers and a colour per session, your own time zone with daylight saving. A solid line along the bottom of the pane under each session, its name above it, dotted lines at each open.

What it found on gold (5m, ~74 session days): London pools 73–77%, New York 64–69%, Asia 58–64%, PDH / PDL 50–56%, equal highs / lows ~90%.

Left out of v1: the two London setups from the design (Asia sweep & reverse, break & retest). On ten months of 15m they fired 2–10 times per direction, too few to show a number worth trusting. They stay in the reference model for a later tool.

Charts of 30 minutes or less, whose bars start on every session edge. Nothing repaints.

VSA DIGGA

free · on TradingView
ver1.0

VSA DIGGA ver1.0 — narrow-spread bases, read the Williams way

Free, on TradingView, for anyone. → #free-tools

A narrow bar on low volume is the market saying “nobody here”. VSA DIGGA draws the demand base (NBF, uptrend pull-back) and the supply base (NSF, downtrend rally) those bars reveal, and does three things most zone tools do not.

Every threshold is a percentile of your own chart. Narrow = the quietest fifth of the last 200 bars, wide = 80th, ultra volume = 95th. One setting for gold, an index CFD, a coin, a pair.

A base is confirmed by its departure — and only live zones stay. A base bar starts a forming zone: faint, unscored, unalerted. Clusters merge into one. A close the right way confirms it; a close the wrong way, or 20 bars without one, cancels it. Measured before it was written: without this rule 60-70% of XAUUSD bases were “broken” while still being built. Confirmed zones die on a close beyond their far side or after 300 untouched bars. The last 50 scored zones stay frozen with ✓ / ✗.

Theory as tags, not a score. Each zone carries the events that describe it: NS · ND · TEST · NR7 / NR4 · ID on the base bar, SV · BC · UT · SPR in the five bars before. Every switch and every label carries the full definition. Strong zones (any of NS, ND, TEST, NR7, SV, BC, UT, SPR) are drawn solid.

A scoreboard, per tag. Zones, tested, and how often a tested zone travelled one height before it broke. Untested, expired and never-departed bases are counted, never scored.

XAUUSD, volume ignored, defaults: 15m 704 zones, 54% held · 1H 900 zones, 65% NBF / 55% NSF · Spring best on both (62-68%, n = 31 / 46 — too few to call). No control row yet; a held rate without a baseline is a description, not an edge. The same table runs on your symbol.

One alert() per event — a single “Any alert() function call” covers a chart, tags in the message.

MOMENTUM DIGGA

free · on TradingView
ver1.0

$$$ INTRADAY MOMENTUM DIGGA $$$ v1.0 - Noise Area Breakout (NQ)

Free, on TradingView, for anyone. → #free-tools

Most of the day the Nasdaq just makes noise. MOMENTUM DIGGA waits until price leaves the normal noise range for that time of day, then follows it until the close. The idea is from Zarattini, Aziz & Barbon (2024); this is an independent build, checked trade by trade against CME NQ 1m data.

Rule. For every half hour, the band is the average move from the open by that time over the last 14 days, anchored past any gap. Every 30 min: long above band + VWAP, short below, otherwise flat. Flat at 16:00, nothing overnight.

Default = forward test. It trades only with the 15m Trend Magic (KivancOzbilgic’s indicator) and exits on a 5m close across it. Best version of recent years (2025-26 +18.1 pt/trade vs +9.1 without it; drawdown −27% overall), but worse in 2010-21, so it failed our pre-registered test. It ships on, with the numbers in the tooltip; “Off” gives the original rule.

Measured, NQ, 1 contract, 1.5 pt cost: TradingView 5m, 2020-07 → 2026-10: 1,468 trades, +12,986 pt, PF 1.35, win 41%, max DD 1,566 pt.

Honest part. • The profit comes from a few trend days a year. Without each year’s 5 best trades, every period is negative. • 2010-17 was flat to negative. • Clusters of quick stopped-out trades are normal. Re-entries still pay overall. • We also tested London-open and gold versions: all failed. It’s an NQ, New York-hours tool.

Run it on a 5m chart. CFD users: set Slippage to 75 ticks (0.75 pt per side).

https://www.tradingview.com/script/jiwqijwC-INTRADAY-MOMENTUM-DIGGA-Noise-Area-Breakout/

BLOCK DIGGA

free · on TradingView
ver1.1

$$$ BLOCK DIGGA $$$ v1.1 - cleaner filtering and a sharper 🥇 outline

Blocks the zone filter leaves out are no longer kept in the background. In v1.0 a hidden block still took a slot in its timeframe’s limit and could remove a visible block it overlapped. Now it is never created, so you see more of the blocks you asked for, further back, especially on 1m and 3m.

One filter instead of two. “Only show OBs containing a Psych Zone” (Order Blocks) is removed: its reach was so wide that every block passed it. The filter that works is “↳ Only show order blocks on these zones” under Psych Zones.

The 🥇 outline counts a round number only when an x50 or x100 level is inside the box. Before, nearly every block got those points, so the outline now picks out the blocks that formed on the bigger levels.

⚠️ If you saved settings: check the 🥇 outline, label and Psych Zones settings once after updating. They moved up one place.

https://www.tradingview.com/script/ps3lZgs8-BLOCK-DIGGA-Order-Breaker-Blocks/

ver1.0

$$$ BLOCK DIGGA $$$ v1.0 - Order & Breaker Blocks

Free, on TradingView, for anyone. → #free-tools

The order-block layer of GOLD DIGGA PRO, on its own. Visuals only: no signals, no alerts.

Four timeframes on one chart. 1m, 3m, 5m and 15m order blocks, each with its own toggle and colours (5m + 15m on by default). On a 15m chart the 1m and 3m blocks are read bar by bar from the intrabar data, so every block is found, and a block only appears once its candle has closed: no repaint.

Breakers. A close through a block flips it into a breaker (role reversed, lighter and dashed). It goes on a second break or after two retests.

Filtered to your levels. Tick the psych zones you trade around (x100 / x50 / x25 by default). With “Only show order blocks on these zones” on, a block shows only if one of those levels sits inside the box.

🥇 Key-level outline on blocks that formed with displacement, liquidity taken nearby, a gap and a round number together.

Honest part. • It runs on any symbol; the price step adapts. • 1m/3m history is limited by TradingView’s intrabar data (about 2 months of 1m on a 15m chart). • An order block is where price moved hard before, not a promise it reacts there again.

https://www.tradingview.com/script/ps3lZgs8-BLOCK-DIGGA-Order-Breaker-Blocks/