Read the columns before the pattern labels
A column contains one symbol type. X means the recorded move is upward; O means it is downward. Columns alternate after a qualifying reversal. Horizontal distance counts column changes, so two columns need not cover equal amounts of time.
For a fixed box size B and reversal R, the opposite move needed is B × R. Suppose B = 1 and R = 3. From an X high at 104, 105 adds an X, 102 adds nothing, and 101 starts O boxes at 103, 102 and 101. The reversal is measured from the column extreme, not from the latest close or the first price of the column.
This follows the construction rules described in TradingView's point and figure guide. The selected box size determines which moves remain visible; a filtered chart does not establish the next market direction.
The same prices, three different charts
Reproduce this example with chronological date/close rows of 100, 104, 102, 101 and 105. Assume the grid starts at 100. Close-only data supplies one price per row, so there is no intrabar high/low ordering question in this example.
| Fixed box | Reversal | Column endpoints | Why it changes |
|---|---|---|---|
| 1 | 3 boxes = 3 | X 104 → O 101 → X 105 | The drop to 101 reaches the reversal threshold. |
| 2 | 3 boxes = 6 | X 104 only | The drop never reaches 98, and 105 does not reach the next X at 106. |
| 1 | 4 boxes = 4 | X 105 only | The pullback stops at 101, above the required 100 reversal. |
A larger box changes the grid; a larger reversal changes how far price must move against a column. Record both values when comparing results. Selecting the combination that makes one historical pattern look clean is not evidence that it will work on another sample.
Why the source and OHLC sequence matter
Start with an existing X column at 104 and use a 1-unit box with a three-box reversal. For a row with open 103, high 104, low 101 and close 103, close-only processing leaves X at 104. High/low processing starts O at 101. The OHLC row is identical; the selected source changes the result.
Now change that row's high to 106. This tool extends the X column to 106 and gives continuation priority, without also drawing an O column from the same row. OHLC does not tell you whether 106 or 101 came first. A different reconstruction convention can produce different columns from the same candles. Use finer source data to investigate that ambiguity; it still cannot recover missing ticks.
What this CSV tool actually does
- Reads rows in file order. It requires date and close, accepts high and low, and uses close when an extreme is absent. Open is not used. Sort the file oldest first; rows are not sorted automatically.
- Uses a fixed grid anchored at zero. The first close is rounded down to a grid level. The first full move establishes direction; if the initial row reaches both directions, upward movement takes priority.
- Only adds price levels actually reached: highs round down to the grid, lows round up. A low of 101.2 cannot create an O at 101.
- Rebuilds the chart when you change the CSV or settings. It does not implement ATR, percentage sizing or TradingView's one-step-back option for one-box charts.
- Limits rendering to 1,000 price levels, 200 columns and 50,000 cells. Increase box size or shorten the data range if the display limit is reached.
The sample is illustrative data. CSV parsing and column calculations run in your browser, and the tool attempts to retain the data and settings in local storage. It does not fetch live prices or send orders.
Match TradingView settings before comparing
In TradingView, select Point & Figure from chart types, then open chart settings. Record the source, box method and reversal alongside the symbol, interval, session and loaded history. Its Traditional method uses a fixed box; ATR derives sizing from volatility. Percentage (LTP) uses the latest closing price and can recalculate earlier chart structure as that price changes. Projected columns can also change before the source interval closes. See TradingView's settings reference.
TradingView documents that P&F bars are built from lower-timeframe prices and approximate tick-based construction. A CSV with daily high/low values cannot be expected to reproduce that feed. Reload comparisons should preserve the starting history, price adjustments and session as well as the visible box settings.
Separate the signal structure from executable prices
A double top label means an X column exceeded the preceding X high; a double bottom means an O column fell below the preceding O low. Here, triple patterns require two equal prior same-direction extrema. These rules describe the columns, without measuring the probability or size of a future move. The detector does not provide a profit target or a complete entry, stop and exit policy.
In Pine Script, ticker.pointfigure() creates an identifier for P&F data requested through request.security(). The returned OHLC values represent synthetic column values, rather than a record of executable trades. There is no dedicated Pine function that renders the native P&F chart. These constraints are described in the Pine Script non-standard data documentation.
- Define the source, box method, reversal and exact column comparison before writing a signal.
- Observe requested P&F values on a standard candlestick chart. Decide when the signal becomes known; prevent historical requests from using future information.
- Test orders on standard price bars with explicit order timing, commission and slippage. Inspect gaps and bars that contain both a stop and target.
- Compare forward observations with the rebuilt chart. Keep a signal log so later reconstruction does not erase the evidence of what was available at the time.
TradingView warns about unrealistic non-standard chart backtests. A box threshold crossed during a gap is not a guaranteed fill at that threshold. Even a standard-chart backtest remains a simulation. This page is educational and does not provide investment advice or promise trading returns.
Sources checked October 17, 2026. The numeric comparisons above are calculated examples, not market performance.
Continue with TradingView workflows or compare price-based views in the Kagi chart generator.