v0.5.3
Highlights
- Open-market OHLC bar refresh — while a session is still open, the OHLC bar drops its
Cglyph and bullish/bearish body fill, and the OCP data row rendersC: -in place of the live close. Today's open hasn't actually closed yet, so claiming a closing price would assert a value the data doesn't carry. With the body fill gone, the L..H span gains a⟦/⟧frame (U+27E6 / U+27E7) just outside the markers so the day's range still reads as a single bracketed unit; literal[/]would re-frame the bar row as a pylon nested element, so the white-square pair is a pylon-safe visual substitute. - Asymmetric price band — each half of each bar (OHLC and MA) is now fit independently to its own widest marker × 1.10. On a gap-down day where
lowandopensit near-5%whilehighis only modestly above price, both halves of the bar use their full width instead of compressing the quieter side toward center. Previously the band was symmetric and fit to the largest single offset. The 0.5% per-side floor is also gone, so a tight day where every offset is under a percent fits exactly to the markers instead of clustering near center. Oalways draws on the bar — the prior gate skipped the open marker when today's open rounded to the same column as the live price (a near-doji on a quiet day, or/stock?region=twwhen TWII's open ≈ live index).Onow wins overCon the shared column; the close value is still readable from the OCP data row.
Other changes
Lis now drawn unconditionally on the open-market path (it gated onlowBarCol < leftColpreviously, which silently hid the marker when the day's low fell inside the would-be open-close body span). On the open-market path,LandHalso win overOon shared columns so a gap-down day wherelow == openstill shows theLletter.- The
MAbar keeps itsCglyph at the center column regardless of market state — the bar'sCis purely positional (the OHLC bar'sC: -already conveys close-not-finalized), and without it the bar collapses to floating MA labels when bothM5/M10cluster on one side of price. - Saturated sides (where
◀/▶already signal off-screen) skip the⟦/⟧frame; each bracket also skips when its target column would clobberO. - New
render.PriceBand{Lower, Upper}struct replaces theband float64parameter onrender.OHLCBar,render.MAPositionBar, andrender.PriceBandFor. Arender.SymmetricBand(b)helper expresses the legacy "same width both sides" form for tests and ad-hoc invocations.
Container image
ghcr.io/cmj0121/imagelet:0.5.3