A trading journal template is a sheet with one row per trade and fixed columns for what you traded, why, what you risked, how it ended and whether you followed your plan. The version below has 26 columns for Excel or Google Sheets and records every result in R, so trades of any size can be compared.
In short
- A complete row records the setup, the planned risk in dollars (1R), the result after costs, the result in R, the worst open loss and whether the trade followed your plan.
- R multiple = net result ÷ planned risk. A $187 gain on a $125 risk is +1.50R.
- Win rate, average win and loss, expectancy, longest losing streak and maximum drawdown can all be tracked in R with standard spreadsheet formulas.
- When a daily loss limit is measured on equity, log each trade's worst open loss as well as its closing result.
- Review the sheet once a week with the same checklist, and change one rule at a time.
What should a trading journal template include?
A trading journal template should hold four groups of fields: the trade itself (symbol, direction, entry, stop, target, size), the risk (planned dollars at risk and the result in R), what happened along the way (worst open loss, exit reason, costs) and your behaviour (setup name, plan followed, state of mind). Each row below is one column of the sheet.
The example column is one filled-in trade on a $25,000 Classic account, worked through step by step further down. Formulas assume the field names sit in row 1 and the first trade in row 2.
| Column | Field | What to enter | Example |
|---|---|---|---|
| A | Trade no. | A running number | 14 |
| B | Opened | Date and time, always in one time zone | Tue 09:12 |
| C | Closed | Date and time | Tue 14:47 |
| D | Account | Size, route and phase | $25K Classic, Phase 1 |
| E | Symbol | The instrument | GBP/USD |
| F | Direction | Long or short | Short |
| G | Setup | The setup's name in your trading plan | Trend pullback (setup A) |
| H | Entry | Fill price | 1.2740 |
| I | Stop | Stop-loss price | 1.2765 (25 pips) |
| J | Target | Take-profit price | 1.2690 (50 pips) |
| K | Size | Lots | 0.50 |
| L | Planned risk (1R) | Dollars lost if the stop is hit | $125 (0.5% of $25,000) |
| M | Planned reward in R | =ABS(J2-H2)/ABS(H2-I2) | 2.0 |
| N | Exit | Closing price | 1.2702 |
| O | Gross result | From the platform's history, before commission and holding costs | +$190.00 |
| P | Costs | Commission plus any holding costs | $3.00 (sample commission) |
| Q | Net result | =O2-P2 | +$187.00 |
| R | R multiple | =Q2/L2 | +1.50 |
| S | Worst open loss | The largest open loss while the trade was live | $80 (price reached 1.2756) |
| T | Daily limit used | =S2/1250, using that day's daily limit in dollars | 6.4% |
| U | Plan followed | Y or N | Y |
| V | Rule broken | Which rule, if column U is N | None |
| W | State before entry | 1 (rushed or frustrated) to 5 (calm) | 4 |
| X | Exit reason | Target, stop, manual or time | Manual: momentum stalled at the previous day's low |
| Y | Screenshots | Links to the chart at entry and at exit | Two links |
| Z | Lesson | One line you would tell yourself next week | Took 1.5R of a planned 2R. Check manual exits over 20 trades |
How do you set up a trading journal in Excel or Google Sheets?
Copy the Field column, then paste it into cell A1 of a new sheet with paste special, transposed, so the 26 field names run across row 1. Freeze row 1, enter the four formulas in columns M, Q, R and T on row 2, and fill them down.
Then set it up so it is quick to fill in:
- Add drop-down lists (data validation) to Direction, Setup, Plan followed and Exit reason, so the same setup is always spelled the same way.
- Format column R to two decimal places and column T as a percentage.
- Keep one tab per account and phase. A Classic Phase 1 and a Direct account have different limits, and mixing them blurs the numbers.
- Add a Summary tab for the formulas in the stats table further down.
Fill in the planning columns (B and D to M) and your state before entry (W) when you open the trade, and the rest when you close it. Entries written from memory at the end of the week lose the worst open loss and your state at entry.
A filled-in example on a $25,000 Classic account
The example row is a short on GBP/USD in Phase 1 of a $25,000 Classic account, risking 0.5% per trade. Here is how each number in it was worked out.
- The account has a $1,250 daily loss limit on its first day, a maximum loss floor of $22,500 and a Phase 1 target of 8%, which is $2,000.
- At 0.5% risk, 1R is 0.005 × $25,000 = $125.
- You sell at 1.2740 with a stop at 1.2765, 25 pips away. At $10 per pip per standard lot, $125 ÷ 25 pips = $5 per pip, so the size is 0.50 lots.
- The target at 1.2690 is 50 pips away, so the planned reward is 2.0R.
- Price first rises to 1.2756, 16 pips against you. That open loss of 16 × $5 = $80 is 0.64R, and 6.4% of the $1,250 daily limit.
- You close at 1.2702, 38 pips in your favour: 38 × $5 = $190 gross. Using a sample commission of $3 per lot each way, which is not a CMC Funded rate, costs are 0.50 × $3 × 2 = $3.00.
- The net result is $187.00, and $187 ÷ $125 = +1.50R.
The last column records the question this trade raises. You planned 2R and took 1.5R. One manual exit says nothing, but if the journal shows the same habit across 20 trades, compare what those trades would have made at their targets.
Which stats should you track in a trading journal?
Track your results in R: win rate, average win, average loss, expectancy, longest losing streak and maximum drawdown. Expectancy, the average R per trade, tells you whether the strategy earns its costs. The streak and the drawdown tell you whether your risk per trade fits your account's loss limits. The formulas below assume trades in rows 2 to 500.
| Stat | Formula (Excel or Google Sheets) | What it tells you |
|---|---|---|
| Trades | =COUNT(R2:R500) | Your sample size. Ten trades can look good or bad by chance |
| Win rate | =COUNTIF(R2:R500,">0")/COUNT(R2:R500) | Share of trades that closed above zero after costs |
| Average win | =AVERAGEIF(R2:R500,">0") | Realised reward, in R |
| Average loss | =AVERAGEIF(R2:R500,"<0") | Should sit near -1R. Worse points to slippage, moved stops or costs |
| Expectancy | =AVERAGE(R2:R500) | Average R per trade, the same as win rate × average win plus loss rate × average loss |
| Profit factor | =SUMIF(R2:R500,">0")/-SUMIF(R2:R500,"<0") | Total R won per 1R lost. Above 1 means the wins outweigh the losses |
| Longest losing streak | In AA2, =IF(R2<0,N(AA1)+1,0), filled down. Then =MAX(AA2:AA500) | How many losses in a row your plan has to survive |
| Maximum drawdown | In AB2, =SUM($R$2:R2). In AC2, =MAX(0,MAX($AB$2:AB2))-AB2. Fill both down, then =MAX(AC2:AC500) | The deepest fall from a peak, in R |
| Worst open loss | =MAX(T2:T500) | The closest a single trade came to the daily limit |
| Plan versus no plan | =AVERAGEIF(U2:U500,"Y",R2:R500), then the same with "N" | Whether breaking your rules costs you |
The risk to reward ratio guide shows how win rate and average win combine into expectancy, and how long losing streaks get at each ratio. Judge expectancy over a decent sample, such as your last 50 trades.
What should a weekly journal review cover?
A weekly review checks that the journal is complete, works out the stats above for the week and for all trades so far, and ends with at most one change to your trading plan. Run the same checklist every week so that two weeks can be compared:
- Every trade is logged, with costs, the worst open loss and both screenshots.
- Win rate, average win and loss in R, expectancy and total R for the week and for all trades.
- Total R by setup, with the number of trades behind each figure.
- Total R for trades that followed the plan and for those that did not.
- Any loss bigger than -1R, and why: a gap, slippage, costs or a moved stop.
- Your worst day in dollars, and as a share of the daily limit.
- How far the account is from the maximum loss floor and from the profit target, in R.
- Results grouped by your state before entry, to see whether low scores cost you.
- One change, written into your trading plan with the reason, or none.
The trading journal lesson works through a full week of ten trades with this kind of review.
How to use the journal on CMC Funded Classic and Direct
On CMC Funded, convert every rule into R before you trade and keep those numbers on the Summary tab. With 0.5% risk on a $25,000 Classic account, 1R is $125, so the $1,250 daily loss limit is 10R, the $2,500 maximum loss is 20R and the $2,000 Phase 1 target is 16R.
On a $25,000 Direct account at the same $125, the $1,000 daily limit is 8R, the $1,500 maximum loss is 12R and the $2,500 target is 20R. The tighter limits are why the worst-open-loss column matters more on Direct.
The daily loss limit is measured on equity and open positions count against it, so column S matters as much as the closing result. It is 5% (Classic) or 4% (Direct) of your equity at the start of each day, so it moves with your account: work it out from the equity at the start of the day and type that figure into column T's formula, never a share of your current balance. Reaching it ends the account, with no warning stage, which is why the review checks your worst day every week.
The maximum loss floor is fixed and never moves: $22,500 on the $25,000 Classic account and $23,500 on Direct. (Balance minus the floor) ÷ $125 gives your remaining room in R. Each phase needs at least 3 trading days, and the Opened column shows how many you have.
Simulated trades carry trading costs, as they would on a live account: a commission when a trade opens and when it closes, a price markup on some symbols, and holding costs on positions kept overnight. The markup sits inside the fill price, so it is already in column O. Commission and holding costs go in column P. The carry trade guide shows how holding costs add up on positions kept for weeks.
Common mistakes
- Logging only the dollar result. A $200 gain is +2R at $100 risk and +0.8R at $250, and the sheet cannot compare them without column L.
- Recording the close but not the worst open loss. On an equity-measured daily limit, open losses count, so a trade can reach the limit before it closes.
- Leaving costs out. A journal without them makes every setup look better than it is, and short-term setups most of all.
- Adding columns you never fill. If a column has been empty for two weeks, delete it. Columns L, R, S and U are the four to never skip.
- Changing the plan after a handful of trades. Ten trades are too few to judge a setup, so let the sample grow before you drop one.
Questions traders ask
Is there a free trading journal template?
Yes. The 26 fields above are free to copy into Excel or Google Sheets: paste the Field column into row 1 with paste special, transposed, then add the formulas from the two tables. Journal apps exist too, but a spreadsheet lets you see and change every formula.
Is a trading log the same as a trading journal?
A trading log template records the facts of each trade: time, symbol, size, prices and result. A journal adds why you took the trade, whether it followed your plan, your state before entry and what you learned. Columns A to T of the template are the log, and U to Z turn it into a journal.
What should a forex trading journal include?
A forex trading journal needs the same fields as any other, plus the stop and target in pips, the pip value used for sizing and the session you traded in. Record holding costs on positions kept overnight, and note scheduled data releases, because a news spike can turn a 25-pip stop into a bigger loss.
Excel, Google Sheets or Notion: which works for a trading journal?
A spreadsheet does the maths: running totals, drawdown and losing streaks each take a formula or a helper column. Google Sheets is free in a browser and keeps one copy online, while Excel also works offline. Notion is good for notes and screenshots but needs more setup for running totals, so some traders keep the numbers in a sheet and the notes in Notion.
Next steps
Work through the trading journal lesson to practise the weekly review, and use the position size calculator so the dollars at risk on each trade match column L. The daily and maximum loss limits for every account are on the rules page.
You can compare both routes and every account size on the challenges page.
