One row per fill, one shared trade_id per round trip, prices on the 0–1 dollar share scale. A complete Polymarket position is two rows:
trade_id,symbol,event_type,position_side,time,price,quantity,fee,note
PM-BTC120K-01,btc-120k-2026,buy,long,2026-06-21T09:12:00Z,0.41,250,0,exchange=Polymarket outcome=Yes
PM-BTC120K-01,btc-120k-2026,sell,long,2026-06-29T16:45:00Z,0.58,250,0,exchange=Polymarket outcome=Yes
From these two rows KLinePic draws entry and exit markers on the market's candles, shades the holding window, and computes return, max run-up, and max drawdown. To start from a working file, the prediction market CSV template has this shape ready to edit.