Home › Templates › Trading journal template
Trading Journal Template (Excel & Google Sheets)
A free trading journal template that logs every trade, calculates P/L and R-multiple for you, and turns your log into a dashboard: win rate, profit factor, expectancy, losing streaks and how often you followed your plan.
- 90 KB · .xlsx
- No sign-up
- 500-row log
- 20 example trades
Use it in Google Sheets: open a blank sheet and choose File → Import → Upload, pick the .xlsx and select Create new spreadsheet. Or upload the file to Google Drive, open it, and choose File → Save as Google Sheets (Google's steps). All formulas use functions that work in Excel 2016+, Google Sheets and LibreOffice.
Preview of the Example tab (first 8 of 20 fictional trades). Shaded columns are formulas.
| Date | Symbol | Dir. | Setup | Entry | Stop | Target | Exit | Size | Fees $ | Risk $ | P/L $ | R | Plan? | Mistake | Emotion |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-01 | ABC | Long | Breakout | 50.00 | 49.00 | 53.00 | 52.80 | 100 | 2.00 | 100.00 | 278.00 | 2.78R | Y | None | Calm |
| 2026-09-02 | XYZ | Short | Reversal | 120.00 | 122.00 | 114.00 | 122.00 | 50 | 2.00 | 100.00 | −102.00 | -1.02R | Y | None | Calm |
| 2026-09-03 | QRS | Long | Pullback | 35.00 | 34.20 | 37.40 | 36.10 | 125 | 2.00 | 100.00 | 135.50 | 1.36R | Y | Exited early | Anxious |
| 2026-09-04 | ABC | Long | Breakout | 53.50 | 52.50 | 56.50 | 52.40 | 100 | 2.00 | 100.00 | −112.00 | -1.12R | N | Moved stop | Frustrated |
| 2026-09-08 | LMN | Long | Gap play | 18.00 | 17.40 | 19.80 | 17.40 | 170 | 2.00 | 102.00 | −104.00 | -1.02R | Y | None | Calm |
| 2026-09-09 | XYZ | Short | Range fade | 118.00 | 119.50 | 113.50 | 114.00 | 66 | 2.00 | 99.00 | 262.00 | 2.65R | Y | None | Confident |
| 2026-09-10 | QRS | Long | Pullback | 36.50 | 35.70 | 38.90 | 38.90 | 125 | 2.00 | 100.00 | 298.00 | 2.98R | Y | None | Calm |
| 2026-09-11 | DEF | Long | News | 75.00 | 73.00 | 81.00 | 73.00 | 100 | 2.00 | 200.00 | −202.00 | -1.01R | N | No valid setup | FOMO |
What's inside the template
Five tabs. You only type in the Journal tab (and, if you like, rename tags on Lists).
| Tab | What it does |
|---|---|
| Start here | Instructions, the formulas, limits and version (1.0, 23 Oct 2026). |
| Journal | Your empty 500-row trade log with dropdowns and formulas already filled down. |
| Dashboard | 18 metrics, P/L by setup, P/L by emotion, an equity curve and a P/L-by-setup bar chart. All formulas. |
| Example + Example dashboard | 20 fictional trades and the same dashboard, so you can see every number working before you log your own. |
| Lists | Dropdown options: direction, 8 setup tags, 8 mistake tags, 8 emotions, Y/N. Edit the words to match your plan. |
Journal fields
| Column | Type | Notes |
|---|---|---|
| Date, Market / symbol | Input | Date validation; any symbol text. |
| Direction | Dropdown | Long or Short. Short flips the P/L sign. |
| Setup tag | Dropdown | From Lists. Drives the P/L-by-setup table. |
| Entry, Stop, Target, Exit | Input | Prices. Exit stays blank while the trade is open. |
| Size (units), Fees $ | Input | Shares, coins, or $ per 1.00 price move for contracts. |
| Planned risk $ | Formula | |Entry − Stop| × Size. You can overwrite it if you risk a fixed $ amount. |
| P/L $ | Formula | After fees. |
| R-multiple | Formula | P/L ÷ planned risk. |
| Planned R:R | Formula | |Target − Entry| ÷ |Entry − Stop|, to check the trade met your minimum. |
| Followed plan? (Y/N) | Dropdown | Feeds the rule-adherence rate. |
| Mistake tag, Emotion | Dropdown | Feeds the P/L-by-emotion table and your reviews. |
| Screenshot link, Notes | Input | Paste a chart image link (TradingView, Drive, etc.) and one line on why. |
| Result, Loss streak, Equity, Closed | Helper formulas | Used by the Dashboard and the equity chart. |
How to use it
- Edit the Lists tab first. Replace the sample setup tags with the setups in your trading plan. Keep it to eight or fewer.
- Log the trade when you open it. Date, symbol, direction, setup, entry, stop, target and size. Planned risk $ fills in. If you need a size, use the position size calculator.
- Close it out. Type the exit price and fees. P/L $, R-multiple and the equity curve update.
- Grade yourself. Mark Followed plan? Y or N, pick a mistake tag (or None) and an emotion, then add a screenshot link and one-line note.
- Review weekly. Open the Dashboard. Compare average R when you followed the plan vs. when you did not, and look at which setups have negative net P/L.
The formulas, explained
These are the exact formulas in row 2 of the Journal tab (they are filled down to row 501).
Planned risk $ (K) =IF(OR(E2="",F2="",I2=""),"",ABS(E2-F2)*I2)
P/L $ (L) =IF(OR(E2="",H2="",I2=""),"",(H2-E2)*I2*IF(C2="Short",-1,1)-N(J2))
R-multiple (M) =IF(OR(L2="",K2="",K2=0),"",L2/K2)
Planned R:R (N) =IF(OR(E2="",F2="",G2="",E2=F2),"",ABS(G2-E2)/ABS(E2-F2))
Loss streak (U) =IF(L3="","",IF(L3<0,IF(ISNUMBER(U2),U2,0)+1,0)) (row 3 shown)
The Dashboard reads those columns (rows 2–501):
Win rate = wins ÷ closed trades wins: =COUNTIF(Journal!$L$2:$L$501,">0")
Profit factor =IF(B11=0,"",B10/ABS(B11)) gross profit ÷ |gross loss|
Expectancy $ =IF(B5=0,"",B9/B5) net P/L ÷ closed trades
Expectancy R =IFERROR(AVERAGE(Journal!$M$2:$M$501),"")
Max consec. losses =MAX(Journal!$U$2:$U$501)
Rule adherence = COUNTIF(O,"Y") ÷ (COUNTIF(O,"Y") + COUNTIF(O,"N"))
P/L by setup =SUMIFS(Journal!$L$2:$L$501,Journal!$D$2:$D$501,A26)
Profit factor is gross profit divided by gross loss; MetaTrader's documentation defines it as the "ratio of the gross profit to the gross loss" and notes that a value of one means the two are equal (MetaTrader 5 Help). Expectancy is the average result of one trade. Net P/L ÷ trades gives the same number as (win rate × average win) + (loss rate × average loss). In R it shows what you made per unit of risk, so results stay comparable when your position size changes. The blog post understanding expectancy covers the idea in more depth.
Worked example from the sample data
All numbers below come from the Example tab. The trades are fictional and the symbols are placeholders.
- Trade 1 (long): entry 50.00, stop 49.00, exit 52.80, 100 units, $2 fees. Planned risk = |50 − 49| × 100 = $100. P/L = (52.80 − 50.00) × 100 − 2 = $278.00. R = 278 ÷ 100 = 2.78R.
- Trade 2 (short): entry 120.00, stop 122.00, exit 122.00, 50 units. P/L = (122 − 120) × 50 × −1 − 2 = −$102.00, or −1.02R. The extra 0.02R is the fee.
- Totals: 11 wins, 9 losses. Gross profit $2,504.10, gross loss −$1,098.60. Profit factor = 2,504.10 ÷ 1,098.60 = 2.28. Net P/L $1,405.50 ÷ 20 = $70.28 per trade, and the average R is 0.78R.
- Rules: 16 of 20 trades followed the plan (80%). Those averaged +1.25R. The 4 that broke a rule averaged −1.09R. This split is the main reason to keep the Y/N column.
- Setups: Pullback made $1,192.40 over 5 trades. Breakout lost $159.00 over 5. That is a prompt to review the breakout rules, not proof. Twenty trades is a very small sample.
Every figure above was recomputed in Python from the raw rows and matched the workbook's formula results.
Why track trades and rule breaks at all
A journal shows how often you trade and what that trading costs. In "Trading Is Hazardous to Your Wealth" (Journal of Finance, 2000), Brad Barber and Terrance Odean studied 66,465 households at a large discount broker from 1991 to 1996. The households that traded most earned 11.4% a year, while the market returned 17.9%. The average household earned 16.4% and turned over 75% of its portfolio each year. The authors conclude: "Our central message is that trading is hazardous to your wealth."
That study is about trading frequency and costs, not about journals. It does not show that journaling improves returns. What a journal does is make your own trade count, fees and rule breaks visible, so you can judge them with data instead of memory. See also why win rate alone doesn't matter.
Common mistakes
- Logging only winners, or only "real" trades. Skipped losers make every metric look better than it is.
- No stop in the row. Without a stop, planned risk and R-multiple stay blank. Then you can't compare trades of different sizes.
- Moving the stop, then editing the row. Keep the original stop. Record the move with the "Moved stop" mistake tag.
- Too many setup tags. Fifteen tags with three trades each tell you nothing. Use eight or fewer.
- Judging a setup on 10 trades. Small samples swing a lot. Wait for more trades before you drop or add a rule.
- Inserting columns in the middle. The Dashboard reads columns by position. Add your own columns after column W.
FAQ
What should a trading journal include?
At minimum: date, symbol, direction, setup, entry, stop, exit, size, fees and P/L. Add planned risk so you can compute R-multiples, a yes/no for whether you followed your plan, a mistake tag, your emotion, a screenshot link and a short note. This template has all of these columns.
How do I make a trading journal in Excel or Google Sheets?
Download the .xlsx above and open it in Excel, or import it into Google Sheets with File → Import → Upload. Type trades into the Journal tab. P/L, R-multiple and the Dashboard calculate automatically, so you do not need to write formulas.
How do you calculate R-multiple?
R-multiple = P/L ÷ planned risk, where planned risk = |entry − stop| × size. A trade that risked $100 and made $250 is +2.5R. A trade stopped out at the planned stop is about −1R, plus fees.
What is a good profit factor?
Profit factor = gross profit ÷ gross loss. Above 1 means winners added up to more than losers over that sample; below 1 means the opposite. There is no universal good number. It depends on the sample size, costs and market, and a high value over a few trades can easily be luck.
How do you calculate trading expectancy?
Expectancy = (win rate × average win) + (loss rate × average loss), with average loss as a negative number. That equals net P/L ÷ number of trades. In R terms it is the average R-multiple. The template shows both the $ and the R version.
Is a trading journal app better than a spreadsheet?
Apps can import trades from a broker automatically. A spreadsheet is free, works offline, keeps your data in your own file, and lets you change any formula. If you prefer the browser, BeCoin also has an online trading journal.
Related tools and templates
- Online trading journalLog trades in the browser instead of a spreadsheet.
- Trading plan templateWrite the rules this journal grades you against.
- Position size calculatorSize from account, risk % and stop distance.
- Risk/reward calculatorCheck planned R:R before entry.
- Stock portfolio trackerTrack long-term holdings and cost basis.
- Dividend trackerLog dividend income by holding.
- Net worth trackerAssets, debts and net worth over time.
- Building trading disciplineBlog: routines that support rule-following.
Sources
- Barber, B. M. and Odean, T. (2000). "Trading Is Hazardous to Your Wealth: The Common Stock Investment Performance of Individual Investors." Journal of Finance 55(2), 773–806. Abstract (RePEc), doi:10.1111/0022-1082.00226. Retrieved 23 Oct 2026.
- MetaQuotes. "Testing Report" (definitions of profit factor, expected payoff, consecutive losses). MetaTrader 5 Help. Retrieved 23 Oct 2026.
- Google. "Use both Excel & Sheets: Best practices." Google Docs Editors Help. Retrieved 23 Oct 2026.
Disclaimer: This template is an educational record-keeping tool, not financial advice. It measures past trades and does not predict future results. Example data is fictional. Trading involves risk of loss, including more than your initial deposit with some leveraged products.