Average holding time

Average holding time is computed from closed trades. The position you have been sitting on for three weeks because closing it would make the loss real is, by construction, not in the number.

The formula

average holding time = Σ (exit time − entry time) ÷ number of closed trades

Simple arithmetic, and the interesting part is entirely in what qualifies for the sum.

What is counted

Three filters apply before a trade contributes:

  • It must be closed and carry an exit timestamp. Open positions do not appear.
  • Exit must be after entry. Rows where the two timestamps are equal or inverted — which happens in exports where the exit was written with the entry's date, and in a few crypto ledgers where two fills share a second — are dropped rather than counted as zero-length trades.
  • Both timestamps must parse. A malformed date removes the row.

Dropped rows leave the denominator as well as the numerator, so they neither shorten nor lengthen the average. Counting a broken row as zero seconds would drag the figure down while looking like a measurement, which is the failure mode worth naming: a metric that quietly treats missing data as a small value rather than as missing.

The exclusion that matters

"Closed trades only" sounds like a technicality. It is the single most important thing about this metric.

The disposition effect — closing winners quickly and holding losers in the hope they come back — has a specific signature in a statement. The winners resolve, so they enter the average. The losers do not resolve, so they do not. The result is that an account most affected by the habit reports the shortest holding times, and reports them right up until the day those positions are finally closed, at which point the average jumps.

So a short average holding time can mean two opposite things:

  1. You are a fast trader who exits decisively.
  2. You are a fast trader with your losers still open.

The metric cannot tell you which. What distinguishes them is one look at the open positions alongside it: their count, their age, and whether they are green or red. An account with three open positions older than the entire average holding time is describing habit, not strategy.

Why the mean is the wrong average here

Holding times are heavily right-skewed. Most trades cluster at the short end and a few run far longer, so the arithmetic mean sits above the typical trade and often above the majority of them.

One position left open across a weekend contributes about 60 hours. On a set of a hundred day trades averaging fifteen minutes, that single row roughly triples the reported figure. The median would move by nothing.

Read the mean as a total-exposure figure, not as a description of a typical trade. When the two matter — and for judging whether you are trading your stated timeframe, they do — look at the distribution rather than the summary.

Timezones cancel, except when they do not

Holding time is a difference between two timestamps, so the timezone they were written in normally cancels out. A MetaTrader statement recorded in broker server time gives the same duration as the same trades recorded in UTC.

It stops cancelling when the two timestamps come from different sources — an entry imported from a broker file and an exit recorded manually, or two accounts merged into one journal where one exports server time and the other local time. The gap then equals the offset between them, which is why some rows come back as negative durations and get dropped by the filter above. What broker server time actually is, and why it drifts twice a year, is covered in server time.

What to do with the number

On its own, very little. It becomes useful in two comparisons:

  • Against your stated timeframe. If you describe yourself as a swing trader and the average is 40 minutes, the description and the file disagree, and the file is right.
  • Against itself over time. A holding time that shortens over a session is one of the clearer markers of overtrading — the same account taking progressively less time to decide.

More in Trading terms, defined by how they are computed

  • Net P&LThe result of a trade after commission and swap, and why the sign convention in broker exports makes double-counting so easy.
  • Profit factorGross profit divided by gross loss, the edge case that breaks it, and why a high profit factor on few trades means almost nothing.
  • ExpectancyThe expected value of one trade, the break-even win rate it implies, and why the figure needs an error bar to mean anything.
  • R-multipleExpressing results as multiples of the amount risked, why it survives account growth, and the case where R stops being comparable.
  • Win rateWhat share of trades finished positive, how break-even trades are counted, and why the figure is uninterpretable without the win-to-loss ratio.
  • Maximum drawdownThe largest peak-to-trough fall in your account, and the measurement choice that decides whether a prop account survives.
  • Trailing drawdownA loss limit that rises with your account and usually never falls back, plus the two sentences in a rulebook that decide when it can end your account.
  • Consistency ruleA cap on how much of your profit may come from a single day or trade, why it exists, and how it turns a winning account into an unpayable one.
  • Payoff ratioThe size relationship between a typical winner and a typical loser, how break-even trades drop out of both averages, and why the realised ratio rarely matches the planned one.
  • SQN (System Quality Number)Mean R divided by the standard deviation of R, multiplied by the square root of the sample, and the two reasons the score is not comparable between accounts.
  • Sharpe ratioMean daily result divided by its standard deviation and annualised, plus the three assumptions that make a trading journal's Sharpe different from a fund's.
  • Sortino ratioDownside deviation instead of total deviation, the two competing conventions for computing it, and which one our implementation uses.