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.

Download Excel template (.xlsx)
  • 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.

DateSymbolDir.SetupEntryStopTargetExitSizeFees $Risk $P/L $RPlan?MistakeEmotion
2026-09-01ABCLongBreakout50.0049.0053.0052.801002.00100.00278.002.78RYNoneCalm
2026-09-02XYZShortReversal120.00122.00114.00122.00502.00100.00−102.00-1.02RYNoneCalm
2026-09-03QRSLongPullback35.0034.2037.4036.101252.00100.00135.501.36RYExited earlyAnxious
2026-09-04ABCLongBreakout53.5052.5056.5052.401002.00100.00−112.00-1.12RNMoved stopFrustrated
2026-09-08LMNLongGap play18.0017.4019.8017.401702.00102.00−104.00-1.02RYNoneCalm
2026-09-09XYZShortRange fade118.00119.50113.50114.00662.0099.00262.002.65RYNoneConfident
2026-09-10QRSLongPullback36.5035.7038.9038.901252.00100.00298.002.98RYNoneCalm
2026-09-11DEFLongNews75.0073.0081.0073.001002.00200.00−202.00-1.01RNNo valid setupFOMO
20Closed trades
55.0%Win rate (11 / 20)
2.28Profit factor
+0.78RExpectancy per trade
$70.28Expectancy $ per trade
2Max losses in a row
80%Rule adherence
Equity curve of the 20 example tradesCumulative P/L after fees rises from $0 to $1,405.50 over 20 fictional trades, with the lowest point $95.50 after trade 5.$0$500$1,000$1,50005101520Trade #

What's inside the template

Five tabs. You only type in the Journal tab (and, if you like, rename tags on Lists).

TabWhat it does
Start hereInstructions, the formulas, limits and version (1.0, 23 Oct 2026).
JournalYour empty 500-row trade log with dropdowns and formulas already filled down.
Dashboard18 metrics, P/L by setup, P/L by emotion, an equity curve and a P/L-by-setup bar chart. All formulas.
Example + Example dashboard20 fictional trades and the same dashboard, so you can see every number working before you log your own.
ListsDropdown options: direction, 8 setup tags, 8 mistake tags, 8 emotions, Y/N. Edit the words to match your plan.

Journal fields

ColumnTypeNotes
Date, Market / symbolInputDate validation; any symbol text.
DirectionDropdownLong or Short. Short flips the P/L sign.
Setup tagDropdownFrom Lists. Drives the P/L-by-setup table.
Entry, Stop, Target, ExitInputPrices. Exit stays blank while the trade is open.
Size (units), Fees $InputShares, 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 $FormulaAfter fees.
R-multipleFormulaP/L ÷ planned risk.
Planned R:RFormula|Target − Entry| ÷ |Entry − Stop|, to check the trade met your minimum.
Followed plan? (Y/N)DropdownFeeds the rule-adherence rate.
Mistake tag, EmotionDropdownFeeds the P/L-by-emotion table and your reviews.
Screenshot link, NotesInputPaste a chart image link (TradingView, Drive, etc.) and one line on why.
Result, Loss streak, Equity, ClosedHelper formulasUsed by the Dashboard and the equity chart.

How to use it

  1. Edit the Lists tab first. Replace the sample setup tags with the setups in your trading plan. Keep it to eight or fewer.
  2. 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.
  3. Close it out. Type the exit price and fees. P/L $, R-multiple and the equity curve update.
  4. 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.
  5. 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.

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

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

Sources

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.