TradingView Backtesting

Portfolio Turnover: One-Way, Two-Way and Rebalance Definitions

Portfolio turnover measures the amount traded relative to portfolio capital over a stated period. The number depends on the convention: two-way turnover counts purchases plus sales, while one-way measures may use half that total or the smaller side. A rebalance calculation instead compares target weights with actual weights immediately before trading. Specify the formula, asset denominator and cash treatment before comparing TradingView signal portfolios.

See the decision guide

Choose the definition before comparing strategies

Let B be total purchase value, S total sale value and A positive average portfolio assets over the same measurement window. Values must share one currency and one asset scope. These labels are not standardized across all software; save the equation beside the result. The following are account research conventions, with the regulated fund definition treated separately below.

  • When B = S, half-gross and smaller-side turnover agree and two-way turnover is twice either. The identity does not hold for the smaller-side measure when B differs from S.
  • Count executed amounts, not submitted or canceled orders. Opening purchases and closing sales both contribute to a cost budget, including executions belonging to positions still open at the end of the window.
ConventionFormulaWhat it counts
Two-way turnover(B + S) / ABoth sides of gross executed trading.
Half-gross one-way turnover(B + S) / (2 × A)Half the gross traded amount, even when buys and sells differ.
Smaller-side turnovermin(B, S) / AThe smaller of total purchases and total sales.
Purchase or sale ratioB / A or S / AA single specified side, useful when cash allocation changes.

Recalculate a quarter from amounts and average assets

Assume a hypothetical long-only USD account with four quarterly valuation snapshots: opening $100,000, then month-end $110,000, $120,000 and $110,000. Each includes cash and marked-to-market holdings. For this illustration, define A as their arithmetic mean: ($100,000 + $110,000 + $120,000 + $110,000) / 4 = $110,000. This snapshot convention is explicit; it is not a daily average or a regulatory fund denominator.

  • Two-way = $100,000 / $110,000 = 90.9091%. Half-gross = $50,000 / $110,000 = 45.4545%. Smaller-side = $40,000 / $110,000 = 36.3636%.
  • The separate purchase and sale ratios are 54.5455% and 36.3636%. Their sum is the two-way result; their average is the half-gross result.
  • Opening capital alone would give 100% two-way turnover. Ending capital happens to equal the average here, but that coincidence is not a general rule. Obtain more frequent valuations if sparse snapshots miss major funding or exposure changes.
  • Report these as quarterly observations. Multiplying 90.9091% by four gives a 363.6364% annualized trading pace under a repeat-quarter assumption, not an observed annual result. Turnover is activity, so do not compound it like a return.
ExecutionQuantity × fill pricePurchase valueSale value
Buy asset A200 × $100$20,000$0
Buy asset B800 × $50$40,000$0
Sell asset C100 × $150$0$15,000
Sell asset D500 × $50$0$25,000
TotalFour executions$60,000$40,000

Rebalance turnover uses drifted holdings

For a rebalance with unchanged capital and no transaction costs, define each trade weight as target weight minus current weight immediately before execution. Sum the absolute non-cash trade weights for two-way turnover; half that sum is the half-gross convention used by Cvxportfolio. Compare against drifted holdings, rather than the target weights saved at the previous rebalance.

  • Two-way turnover is |0.50 - 0.60| + |0.50 - 0.40| = 20%; half-gross is 10%. If the previous targets were also 50% and 50%, comparing targets alone would incorrectly report zero.
  • Specify whether cash is an asset in the weight sum. Moving an unchanged $100,000 account from all cash to all stock gives 50% half-gross turnover when cash is excluded, or 100% if both the cash reduction and stock increase enter the half-sum. Only $100,000 of securities was purchased.
  • When deposits, withdrawals or fees change capital during a rebalance, normalized before-and-after weights can change without equivalent trades. Calculate executed dollars first and disclose the denominator; do not infer trading solely from weight differences.
AssetBefore rebalanceTargetTrade on $100,000
A60%50%Sell $10,000
B40%50%Buy $10,000
Total100%100%$20,000 gross trading

Separate cash flows from securities trading

A deposit is an external flow into the account, not a security purchase. A withdrawal is not itself a security sale. Trades financed by a deposit or used to fund a withdrawal still incur execution costs and belong in gross traded value. Keep a dated flow ledger alongside the trading ledger and asset valuations.

  • In a separate simple example, an account receives $20,000 and immediately invests it, with no sales. Purchases are $20,000, sales are zero, half-gross traded value is $10,000 and smaller-side traded value is zero. Zero smaller-side turnover does not mean zero activity or zero cost.
  • Even without external flows, purchases can exceed sales because existing cash is invested. Sales can exceed purchases when the strategy raises cash. The smaller-side convention is not a complete adjustment for funding or allocation changes.
  • For a flow-adjusted research statistic, identify actual flow-related executions and state the allocation rule. Subtracting every deposit from gross trading assumes all new cash was invested in the window and can produce nonsense when it remained in cash.

A fund prospectus uses a different denominator

SEC Form N-1A instructs funds to divide the smaller annual purchase or sale amount by average portfolio securities value. Its monthly average uses 13 observations: the opening fiscal-year value and the 12 month-end values. Securities acquired with one year or less to maturity or expiration are excluded from both parts of the calculation. This is not simply average total account NAV including cash.

  • Hypothetical eligible securities values of $100,000, $102,000, $104,000, continuing in $2,000 steps through $124,000, average $112,000 across 13 observations. Eligible annual purchases of $60,000 and sales of $40,000 produce $40,000 / $112,000 = 35.7143%.
  • This annual fund example is separate from the quarterly account example. To reproduce a published fund figure, follow the complete Form N-1A instructions, including applicable transaction exclusions, rather than substituting the account formula.

Convert trading amounts into a cost budget

For a hypothetical linear execution cost of 10 basis points per traded dollar, the quarterly ledger costs ($60,000 + $40,000) × 0.001 = $100, or 0.0909% of its $110,000 average assets. Equivalently, cost as a fraction of average assets equals two-way turnover × the per-side rate. Using half-gross turnover requires multiplying by two. The assumed rate is an illustration, not a broker quote.

  • Four executions can trade $100,000 or $1,000,000. Splitting the same order into ten fills can increase execution count while leaving traded value unchanged. Trade count matters for fixed ticket charges, but cannot determine a percentage-of-notional cost.
  • Minimum fees, spread, market impact, borrow charges and financing do not all scale linearly with traded value. Model those separately, and do not charge the same commission or slippage again if a reported return already includes it.
  • For several TradingView signals, first define shared portfolio capital and the actual combined execution policy. Opposing orders may offset before execution or trade separately; use the trades that policy would execute. Summing standalone turnover percentages ignores capital weights and possible netting.

Audit TradingView exports and the report boundary

TradingView exports each Strategy Report tab separately; a List of Trades export contains trade information, while Performance Summary contains metrics. Backtest Deep Report parses trade timestamps, direction, prices, quantity and P&L, and reports supported metrics such as net profit, profit factor and total trades. The current report does not supply the portfolio turnover methods calculated on this page.

  • Retain raw entry and exit rows and reconcile to executions before aggregating. Include opening or closing legs inside the measurement window even when their paired leg lies outside it. Avoid counting a duplicated export twice.
  • For ordinary shares, absolute quantity × price gives fill value. Futures require their contract multiplier; currency conversion must use a declared rate convention. Option premium turnover and underlying-notional turnover are different measures, so label either explicitly.
  • Keep the turnover worksheet alongside the report. Use Pine Script AI Coding Agent to draft strategy logic or custom simulated statistics with an explicit definition, then verify its output independently. It cannot recover missing broker flows or valuations from a trade CSV.
  • If average assets are zero, the ratio is undefined. Very small or negative net assets, substantial leverage and missing fills require a different analysis or an explicit warning, not a forced zero. Turnover above 100% is possible when capital is traded repeatedly.
Required inputWhat to verifyWhat the report cannot replace
Execution ledgerActual side, timestamp, fill quantity and value; partial exits and reversals reconciled.A closed-trade count is not gross traded value.
Portfolio assetsCash plus marked-to-market positions on the declared valuation schedule.Closed-trade cumulative P&L does not provide all interim asset valuations.
Funding and instrument termsExternal flows, reporting currency and any contract multiplier.A trade CSV alone is not a complete portfolio cash-flow or instrument ledger.
Where Pineify fits

Backtest Deep Report

Inspect supported trade metrics from your TradingView CSV. Keep the separate executed-value and asset-valuation worksheet needed for portfolio turnover.

Also useful: Pine Script AI Coding Agent. Draft strategy rules or custom simulated statistics with a specified turnover convention, then compare the generated results with an independent ledger.

Explore trade report analysis

Frequently asked questions

Educational information, not investment advice. All amounts and cost rates are hypothetical arithmetic examples. Turnover measures trading activity; it does not establish profitability or guarantee future execution costs.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.