XrayCharts/Method
Five sockets, five clocks, five prices for the same coin at the same instant. Get any of it wrong and you have built a chart that is confidently wrong instead of one that is honestly partial. These four problems are the product.
Five connections over five networks do not arrive in the order things happened. Prints are held for a moment and released oldest first, so a running total is running over a stream that is genuinely in sequence rather than in the order your router felt like.
At any instant the exchanges quote a few dollars apart. Added up raw, a single price level smears across two rows and the busiest price on your chart lands somewhere nothing actually happened. The offset is measured from live quotes and applied when the ladder is built. Stored executions are never rewritten.
A liquidation cascade on one venue, or one thin book at three in the morning, must not become the market's high. The bar is priced from the exchanges that were actually quoting, so a wick has to be real before it appears.
The admission test is not volume, it is whether the exchange serves an arbitrary historical range over its public API. Two larger venues are left out because they publish only the last few hundred prints, and a gap there could never be repaired. Where flow was not collected the chart says so instead of drawing a quiet market.