The essential columns
Date and time, instrument, direction, entry price, stop loss, target, exit price, quantity, fees and result. Add three context columns: setup, emotional state and rules followed (yes or no).
Keep one row per trade and never merge cells: that way the sheet stays filterable and you can import it elsewhere without rewriting it.
The formulas you need
Initial risk = |entry − stop| × quantity. Result in R = result ÷ initial risk. With these two columns you can compare trades of different sizes.
Win rate = winning trades ÷ total trades. Expectancy = average result in R. With a pivot table by setup or day of the week you can see straight away what works.
The limits of a spreadsheet
The sheet doesn't stop you: if you go past your daily stop or skip the checklist, only someone rereading it will notice. And entering every trade by hand, with screenshots and notes, soon becomes the part you skip.
Equity and drawdown charts, statistics by hour and comparisons between emotional states need ever more fragile formulas as the journal grows.
When to switch to an app
When you have more than one account, trade every day or want your rules enforced while you trade. The switch is painless: export the sheet as CSV and import it, the columns are recognised and your history isn't lost.

