Free trading journal analyzer
This free trading journal analyzer shows your win rate, expectancy, profit factor, drawdown and streaks.
Inputs
Example valuesSeparator and rows appear here once you add trades.
Columns are matched by their names. Check them.
Your trades stay in your browser. Empty lines are skipped. Leave the limits empty to skip the limit check.
Result
Live result- Trades–
- Win rate (Wilson range)–
- Profit factor–
- Net result–
- Trades
- Win rate (Wilson range)
- Profit factor
- Net result
- Average win / average loss
- –
- Payoff ratio
- –
- Expectancy in R
- –
- Break-even win rate
- –
- Max drawdown (amount)
- –
- Deepest drawdown (% of peak)
- –
- Longest win / loss streak
- –
- Best day / worst day
- –
- Overall loss limit
- –
- Daily loss limit
- –
Days and hours use the time zone of your browser.
| Weekday | Trades | Win rate | Net | Average |
|---|---|---|---|---|
| – | ||||
Key takeaways
- Expectancy is the average result per trade over the trades you load.
- Rates from a small number of trades swing a lot with each new trade, so read them as rough.
- Your trades stay in your browser: the file is read on your device and is not uploaded.
Load or paste the CSV of your closed trades. Your trades stay in your browser.
How to use this trading journal analyzer
- Export your closed trades as a CSV file from your journal or spreadsheet, or from your trading platform if it offers an export. Choose the file, or paste the rows into the box. The tool detects comma, semicolon and tab separators.
- Match the columns. Only the net result of each trade is required. A time column adds the breakdown by weekday and hour and the best and worst day. A risk column, the amount you planned to lose at the stop, turns every result into an R-multiple.
- Add a starting balance to see drawdown in percent. If you want, enter your own loss limits to see whether the history would have reached them.
Your trades stay in your browser: the file is read on your device and is not uploaded. The analyzer opens with the hypothetical example from this page, marked as example values. The tool never fills in a loss limit for you; only the example adds a starting balance.
Formulas: win rate, expectancy, profit factor and drawdown
N = number of trades
W = winning trades (result above 0), L = losing trades (below 0)
Z = trades with a result of exactly 0, so N = W + L + Z
win rate p = W / N
average win = sum of wins / W
average loss = |sum of losses| / L
payoff ratio b = average win / average loss
expectancy E = sum of all results / N
= p x average win - (L / N) x average loss
profit factor = sum of wins / |sum of losses|
break-even win rate = (1 - Z / N) / (1 + b)
R-multiple of a trade = result / risk of that trade
expectancy in R = average R-multiple over all trades
equity after trade t = starting balance + results of trades 1 to t
peak after trade t = highest equity so far, start included
drawdown at t = peak - equity
max drawdown = largest fall from a running peak, in your currency
deepest drawdown % = the largest percentage fall from a running peak
(fall divided by the peak it fell from)
drawdown duration = trades from the peak of the max drawdown until equity is back at it
Wilson range for the win rate, z = confidence factor (see the example):
(p + z²/2N ± z x √(p(1 - p)/N + z²/4N²)) / (1 + z²/N) A trade with a result of exactly zero counts in N, but neither as a win nor as a loss, and it ends a streak. Without a risk column, the tool estimates 1R as your average loss and marks the R values as estimated. The break-even win rate is the win rate at which your observed payoff ratio gives an expectancy of zero. Both rates use all N trades, so you can compare them directly; trades at zero lower the break-even win rate, because they count in N but neither win nor lose. Without at least one winning and one losing trade there is no payoff ratio, and the tool shows a dash with the reason instead of a break-even win rate.
Why the range next to the win rate matters
A win rate from a small sample can sit far from the rate the same trading would show over many trades. The Wilson range shows that uncertainty: with few trades it is wide, and it narrows as trades add up. The tool shows a warning when the sample is small.
If the lower end of the range sits below the break-even win rate, your trades so far are also consistent with a win rate that loses money at the observed payoff ratio. That is not a verdict on the strategy. It says the sample is not yet large enough to tell.
Drawdown, streaks and the best and worst day
Max drawdown is the largest drop from a peak in your equity to a later low, measured on closed trades in the order they happened. The duration counts the trades from that peak until equity got back to it, or until the last trade if it has not. A journal of closed trades does not show the swings of open positions between entry and exit, so the drawdown on the account can have been deeper. More on the concept: what is a drawdown in trading.
A streak counts trades in a row with the same outcome. Days and hours use the time zone of your browser, which the tool names above the breakdown table. If your file stores times without a zone and they come from another zone, a trade late in the day can land on the next day. With a time column, the trades are sorted by time; without one, the tool keeps the order of the file. If the file has both an open time and a close time, the tool picks the close time, because a closed trade counts when it closes. You can choose another column.
Checking a history against loss limits
Enter an overall loss limit and a daily loss limit in percent of the starting balance to see whether your history would have reached them. The check uses a simple model. The overall floor is the starting balance minus the limit. The daily check adds up the closed results of each calendar day in trade order and compares the lowest point of that day with the limit.
A real limit can be measured on equity including open trades, can trail a peak upward, or can reset the day at a fixed time. This check models none of that. Your rulebook decides how a real limit is measured.
Worked example
Limits of this analyzer
It analyzes the closed trades in your file and nothing else. Fees and funding count only if they are already part of the result column. The numbers describe the past, not the next trades: an expectancy that is positive over a short sample can turn negative as more trades come in.
Cells must hold plain numbers. A dollar sign right before the digits is fine; other currency signs and codes are not read. A number with a thousands comma goes in quotes, or the comma is left out, because a row with more cells than the header is not read. The tool names up to eight lines it could not read, counts the rest, and leaves all of them out of the numbers instead of skipping them silently. For the habit behind the numbers, read about tilt in trading.
Trading journal analyzer FAQ
How do I analyze my trading journal?
Export your closed trades as a CSV file, load or paste it here and match the column that holds the net result of each trade. The analyzer then shows win rate, average win and loss, expectancy, profit factor, max drawdown, streaks and the best and worst day. For the habit of keeping the journal, read the trading journal guide.
Are my trades uploaded?
No. Your trades stay in your browser: the file is read on your device and the analysis runs in the page itself.
How do I calculate expectancy in R?
Divide the result of each trade by the risk you planned for it, then average these R-multiples over all trades. If your journal has no risk column, the analyzer uses the average loss as an estimate of 1R and marks the result as estimated.
What does the profit factor tell me?
It divides the sum of your winning trades by the sum of your losing trades. Above 1, the wins earned more than the losses cost; below 1, the reverse. A profit factor from a short sample can change a lot with the next trades, so read it together with the number of trades.
What does the analyzer show when there are no losing trades?
The profit factor has nothing to divide by, so the analyzer shows ∞ and says that the file holds no losing trade. Payoff ratio and break-even win rate need both wins and losses and show a dash.
Why does the tool warn about a small number of trades?
Rates from a short sample move a lot with each new trade. The warning and the range next to the win rate show how far the rate over many trades could sit from what you measured so far.
Which file format does the analyzer read?
A text file with one trade per row and the same separator in every row: comma, semicolon or tab. The first row can hold column names. Numbers can use a dot or a comma as the decimal sign; when the tool reads a comma, it says how it read it. Times can be ISO dates (year-month-day, with an optional time), day.month.year, slash dates or Unix timestamps.
All calculators
- Position Size Turn your balance, risk and stop into a size in coins, with notional, margin and the loss at the stop.
- Leverage & Margin See the margin a position locks at a given leverage, or the size a given margin allows.
- Liquidation Price Estimate where an isolated-margin position gets liquidated and whether your stop sits in front of it.
- Futures PnL Net profit or loss, return on margin and break-even price of a perp trade after fees and funding.
- Funding Cost What holding a perpetual position costs or earns in funding, per payment and over your holding time.
- Risk/Reward Risk to reward net of fees, the win rate you need to break even, and your expectancy. Next step
- Risk of Ruin Simulate how likely a losing streak reaches a loss limit before a profit target.
- Drawdown & Daily Loss How much you can still lose today before a daily loss limit or a max loss limit is reached.
- Consistency Rule Check whether your best day stays within the share of total profit a consistency rule allows.
- Journal Analyzer Load the CSV of your closed trades and see win rate, expectancy, profit factor, drawdown and streaks. You are here