Define one comparable trade per row
The field gross_pnl represents signed trading profit or loss before the fee column is deducted. A losing trade therefore needs a negative value. Net trade result equals gross_pnl minus fees. Do not import an exchange field that already includes commissions and subtract those commissions again. Use one quote currency for every row. Aggregate partial closes into the trade definition you intend to measure, and include all closed trades in the period rather than selecting only successful setups.
Calculate returns without discarding zeros
Win rate is the number of positive net trades divided by all accepted trades, including zero results. Average net expectancy is total net result divided by that same count. Profit factor divides the sum of positive results by the absolute sum of negative results. When there are no losses, that ratio is not a reliable finite performance estimate. Break-even trades affect sample size and win rate even though they add nothing to total profit. Costs can also turn a gross winner into a net loser.
Reconstruct the equity path
Starting equity plus cumulative chronological net results gives the modeled closed-trade equity curve. Drawdown measures its decline from an earlier running peak, including initial equity as the first reference. This curve cannot reveal losses that occurred while trades remained open. Deposits, withdrawals, funding and interest require consistent treatment before results resemble an actual account statement. A profitable short sample can reflect chance or selection. Use the output to inspect records and compare defined samples, not to extrapolate a guaranteed income.