BrokerCheck percentage ZigZag Default Depth 12 bars, DeviationPercent 1 percent, Backstep 3 bars. Depth selects trailing-window extremes, not a percentage. This guide also discusses percentage filters; this download uses a percentage reversal threshold, not a points threshold. Wait for a full Depth window; seed its earliest minimum low. Starting on the next bar, current highs/lows must be extrema of the trailing Depth window. A strictly more extreme same-kind point replaces the pending endpoint. Equal prices retain its time. Otherwise an opposite candidate must be at least Backstep bars later and differ by at least abs(endpoint price) times DeviationPercent divided by 100. Extension takes priority on an outside bar. Confirm the old endpoint when an opposite endpoint is accepted; leave the new endpoint provisional. Confirmed pivots stay fixed only when appending closed bars with unchanged history/settings. The last endpoint moves and its former point disappears. Confirmations from the forming bar are tentative. Full history reloads recalculate everything. This is a descriptive tool without trade, alert or network functions. Place the compiled file in the custom-indicator folder, or compile the source with the platform editor. Attach through the custom-indicator controls. Inputs must be positive; Depth and Backstep are whole bars. Native chart attachment and drawing have not been tested. CSV: historical EURUSD hourly bars; terminal bar-open times, UTC+3 measured at capture, without historical daylight-saving adjustment. Zigzag is a pivot price, blank elsewhere. Kind is +1 high, -1 low, 0 absent. Confirmed_at is the zero-based chronological confirmation-bar index, -1 for a provisional or absent point. This table shows the full-history result, not what was known at every earlier date. See the guide for successive-cutoff examples. No trading performance was measured.