Trading Journal Template for Excel: Keep a Clear Record of Every Trade
Build your free Excel journal before you download it. Keep partial exits together, account for costs once and see which completed positions actually enter your statistics.
Author · Editor
- Author
- Mykola Zavarov
- Editor
- Andriy Bondarenko
Reviewed

The essentials
Use one main record for one position and a separate record for each exit. Two partial closes do not automatically become two completed trades.
Choose either a reconciled net result or gross exit results with separate costs. The journal must not deduct the same commission, spread or financing twice.
Review the records included in each statistic. An unknown original risk can leave R unavailable while the completed money result remains valid.
Customize and download your trading journal
Trading journal toolkit
Make the blank journal yours
Choose the workbook language, account currency and input method before downloading. Your choices are applied to the Excel file.
Your download
EnglishUSDUTCNET
200 positions · 600 closing events · 5 worksheets
Review fields visible
Customize the template
The calculation ranges have a fixed capacity. When full, start another file and review it separately; adding rows does not extend the calculations.
Workbook limits: money inputs have at most two decimals and an absolute value up to 1,000,000,000; quantities have at most eight decimals and a value up to 1,000,000. Use a separate file for each account currency.
The standard blank always uses USD, UTC and NET, with review fields visible.
The filled example has three fictional positions. Download it separately to explore the formulas without adding example trades to your own journal.
No sign-up or trade upload. Configuration happens in your browser.
Choose your language, account currency, timestamp convention and usual way of recording profit and loss. You can also show or hide the optional fields for your setup, plan and review notes. The download contains a new blank Excel workbook with those settings already applied; it does not require a trading account connection.
The workbook has space for 200 main position records and 600 exit events. Its five tabs are Summary, Results, Trades, Exits and Readme. Results shows the calculated status, net result and R for each position. These short tab names stay the same in every language so that instructions remain easy to follow; the headings, explanations and checks inside the sheets are translated. Readme explains the input fields and the calculation rules.
Start with the filled example if you want to follow the numbers below. It deliberately remains in USD and UTC. For your own history, download the blank file and use one account currency throughout. Choosing EUR instead of USD sets the unit of the new journal; it does not convert any historical amount. The timezone setting likewise labels your timestamps without converting them.
The XLSX file contains editable inputs and formulas. The separate Trades CSV schema and Exits CSV schema describe data columns only: CSV does not preserve the workbook's formulas, checks or formatting.
Decide what one journal record represents
This template follows one position from its original entry to its final exit. Give that episode a unique trade ID on Trades. Add every closing event to Exits with the same trade ID and its own unique exit ID. Even a position closed in one transaction needs one exit record. Use IDs such as T-123, starting with a Latin letter. IDs are case-insensitive; Readme lists the full ID rules.
For example, an EUR/USD position opened for 0.10 lots and closed in two parts of 0.04 and 0.06 lots is one main record with two exits. Record all three quantities in lots. If another instrument uses units or contracts, declare that unit and keep it consistent within the position; the workbook does not infer a cash value from the instrument's name.
MetaTrader 5 distinguishes orders, executions and positions; one order can produce several executions. A platform history row is therefore not automatically the unit you want to count in a journal.
The first version supports one original entry without later additions or reversals. Leave a more complicated episode outside this template's completed-trade statistics until you can represent it accurately in a suitable record. Splitting it into invented independent wins or losses would change the question the journal answers.
What to enter before and after a trade
Before or at entry, record the trade ID, instrument, direction, opening time, original quantity and quantity unit. If you track R, keep the original positive money risk and its basis at that point. A brief plan can explain what would invalidate the idea and what you intend to observe; it should remain distinct from the explanation written after the result is known.
When | Record | Why it matters |
|---|---|---|
At entry | Original quantity, time, risk and risk basis | Preserves the reference against which later exits and R are checked. |
At each exit | Exit ID, parent trade ID, time and quantity; gross P&L when using gross mode | Keeps every partial close attached to the right position. |
When fully closed | Completion state, reconciled net or complete cost breakdown | Allows a reliable completed result to enter the summary. |
During review | Setup, plan observation and one practical lesson | Separates what happened from what you expected to happen. |
Scroll sideways to compare all columns ↔
Use the input cells; keep the calculated columns intact. Enter actual numeric values for money and quantity, and valid spreadsheet dates for timestamps. A known zero fee is 0. An empty fee field means the amount has not been established, which is different from saying that no fee was charged. Monetary inputs, including original risk, accept up to two decimal places and an absolute amount of 1 billion in the chosen account currency. Keep more precise source amounts in a suitable record instead of silently rounding them to fit.
Use one timestamp convention across both sheets and the summary's date range. UTC is the simplest choice when records come from different zones or cross a daylight-saving clock change. Selecting a regional zone does not make Excel resolve repeated local times. Normalize the source timestamps before entering them.
Partial closes: one position, several exit events
The example file uses EDU-LINEAR, an invented teaching instrument, with all money amounts in USD. Position A has two exit events. Their gross results are +$80 and −$60, so the position's gross result is +$20. Total commission is $6, other fees are $0 and financing is −$2. The completed net result is $20 − $6 − $0 − $2 = +$12.
Completed position | Gross result | Commission / other fees / financing | Net result |
|---|---|---|---|
A: two exits | +$80 − $60 = +$20 | $6 / $0 / −$2 | +$12 |
B: one exit | +$50 | $4 / $2 / +$1 | +$45 |
C: one exit | −$20 | $3 / $1 / −$1 | −$25 |
Three completed positions | +$50 | $13 / $3 / −$2 | +$32 |
Scroll sideways to compare all columns ↔
The completed-position sample contains two winners out of three positions: 66.67%. Counting the four exit rows would use a different denominator. For illustration, allocating A's total costs as $3 to its first exit and $5 to its second produces exit-level net amounts of +$77 and −$65. Together with +$45 and −$25, that is two positive rows out of four, or 50%, even though the total remains +$32.
That allocation is a stated teaching convention, not a claim about a broker's reporting method. The workbook keeps costs on the parent position and counts completed positions in its headline statistics. Before comparing its win rate with a terminal or another journal, align the trade unit, date selection and treatment of costs.
Trading journal toolkit
One position, two closing events
Follow position A through two exits. Change the remaining quantity or costs to see when the completed result can enter the journal summary.
Fictional EDU-LINEAR instrument, USD: buy 100 units at 50. A price move of 1 changes gross P&L by 1 per unit. There are no added units or reversals.
Use ungrouped numbers with a dot or comma and up to two decimals. Money limit for this example: 1,000,000 USD in magnitude.
| Event | Units | Exit price | Gross P&L, USD |
|---|---|---|---|
| First exit | 40 | 52 | +80.00 |
| Second exit | 60 | 49 | -60.00 |
Scroll the table horizontally to see every column.
Completed and included
- Completed net P&L
- +12.00 USD
- Realized R
- 0.12R
Completed and included. Completed net P&L: +12.00 USD. Realized R: 0.12R.
GROSS mode: net = closing gross P&L − commission − other fees + signed financing.
R = completed net P&L ÷ recorded positive initial risk.
Both exits use the stated fictional prices. Changing the second quantity changes its gross P&L; a remaining unit prevents a completed-position result.
Why 66.67% can become 50%
Separate, fixed example from the filled workbook: A = +12, B = +45 and C = −25 USD. Two winners out of three completed positions means a 66.67% win rate.
| Observation unit | Count | Win rate | Net total, USD |
|---|---|---|---|
| Whole positions | 3 | 66.67% | +32.00 |
| Closing rows | 4 | 50% | +32.00 |
Scroll the table horizontally to see every column.
In this constructed history, A’s exits are +77 and −65 after explicitly assigned costs: commission 3 on each exit and financing −2 on the final exit. Together with +45 and −25, that makes two winning rows out of four. Both groupings still total +32 USD. The journal counts whole positions.
C has no recorded initial risk. All three positions contribute money results; only two contribute R. These small teaching samples do not establish a strategy’s future performance.
Choose one way to account for trading costs
In NET mode, enter the signed, reconciled result of the entire completed position and confirm that you checked it against your records. That amount must include every partial exit and every cost that belongs to the position. A missing cost breakdown does not invalidate a known net amount; any breakdown you keep is explanatory and is not subtracted again. Optional details may stay blank; if supplied, they must meet the field rules.
In GROSS mode, enter each exit's gross money result and the position's total commission, other fees and signed financing. The journal calculates net P&L = gross exit results − commission − other fees + financing. Commission and other fees are nonnegative costs. Financing can be a debit or a credit: −$2 reduces the result; +$1 increases it.
MQL5 documents profit, commission, swap and fees as separate deal properties. Check what your particular report includes before mapping its columns. A field called profit is not enough evidence that every cost has already been accounted for.
- Include relevant entry and exit commissions in the parent's total once, even if they appeared on different report rows.
- Do not subtract spread or slippage again when the money result already uses actual execution prices.
- Keep deposits, withdrawals, account credit and unrelated account charges outside trade P&L.
- If you cannot establish a complete gross breakdown, use a verified whole-position net amount when available; do not fill unknown costs with invented zeros.
The checks can identify missing or contradictory inputs. They cannot establish that a broker statement is authentic or recognize every case in which a net figure was mistakenly pasted into a gross field. Reconciliation is a decision supported by your records, not something a confirmation box proves.
Read the summary together with its coverage
A completed position enters the money summary only when its records support a complete result. Open positions, incomplete records and unsupported episodes remain visible without becoming imaginary zero-result trades. Duplicate IDs, an exit without a matching parent, mismatched quantities or contradictory timestamps need attention before you rely on the affected record.
The date range selects completed positions by their final closing date. All results and costs belonging to a selected position are included, even when an earlier exit occurred before the start of that range. A partially closed position that remains open is outside this completed-position cohort. The summary is consequently not a statement of every cash posting during the period.
For A, B and C, total net P&L is +$32. Positive completed results total $57 and the magnitude of negative results is $25, giving profit factor 57 ÷ 25 = 2.28. A zero-result completed position is neither a win nor a loss, but it remains in the completed-position denominator for win rate. With no loss amount, profit factor is unavailable rather than a finite score proving performance.
R compares the completed net result with a known positive original risk. Van Tharp's R-multiple framework uses initial risk as that reference. The example records A's original price risk as $100 and B's as $50: their results are +0.12R and +0.90R. C's original risk is unknown, so its −$25 remains in the money summary while its R stays unavailable.
Mean R for the two eligible positions is (0.12 + 0.90) ÷ 2 = +0.51R, with coverage of 2 out of 3 completed positions. That is a description of the eligible subset, not an average over all three. Choose one risk basis for the R summary; a price-distance risk and an all-in risk budget are not automatically interchangeable.
Moving a stop later does not rewrite the original risk record. Nor should the eventual loss, final stop or worst observed price movement be used to invent a missing denominator. An initial risk estimate is a measurement reference, not a guaranteed maximum loss.
Turn the journal into a useful weekly review
Begin with completeness, before interpreting a win rate or average. Resolve unlinked exits and duplicate IDs, confirm quantities and inspect records left outside the summary. Then compare a small set of similar positions using a consistent unit, cost policy, risk basis and period. Keep the number of eligible observations next to the result.
- Which records still need a source amount, closing event or explanation?
- Did the recorded action follow the plan that existed before the outcome?
- Was a difference caused by execution, costs, position size or a change of plan?
- What specific observation should be recorded more consistently next time?
A useful note is specific: “The second exit was moved after the scheduled release; the original plan had no rule for that situation.” “Bad trade” is less informative. Keep the observation separate from a proposed change, so the journal does not turn a single outcome into a new rule without further evidence.
The three-position example demonstrates bookkeeping only. Neither its positive result nor a high statistic establishes a repeatable edge. Reviewing a journal can make your records clearer; it does not promise that future trades will be profitable.
What this template cannot reconstruct
This is a manual record for one original entry followed by one or more exits. It does not automatically import broker exports, support additions to an existing position, resolve reversals or calculate a universal cash value from pips, lots or contract names. Copy source figures deliberately and keep the original report available for reconciliation.
MQL5 notes that a position identifier can survive a netting reversal. Grouping every row with the same terminal identifier would therefore not guarantee the single-entry episode this template expects.
Completed results do not reconstruct an account's return percentage, its intratrade equity path or maximum adverse and favorable excursions. Those questions require additional balance, cash-flow or within-trade data. The journal also does not turn account-level charges into position costs without a documented allocation.
Stay within the prepared 200-position and 600-exit input areas. Cells pasted beyond them are outside the calculations. Keep a new file for the next batch and do not split an unfinished position across files; leave enough exit capacity to finish the positions already recorded. Keep backups before changing formulas or reorganizing sheets.
Trading journal template: common questions
Is the Excel trading journal free?
Yes. You can download the blank workbook and the filled example without registration. The configurator changes the blank file before download; your trading history is not uploaded to the page.
Can I use it in Google Sheets?
The supplied format is XLSX. A native Google Sheets version is not included, and importing a file is not the same as verifying its formulas, validation and formatting in Sheets. If you import it, check the supplied example and representative edits before relying on its summaries.
How do I log a position that is only partly closed?
Keep its main record open and add the completed exit events. It joins the completed-position statistics only after the full original quantity is closed and the other required records are complete. Do not mark it closed just because one exit made a profit.
What if I know net P&L but not the fee breakdown?
Use NET mode with the reconciled result of the whole completed position and confirm that reconciliation. Unknown gross or cost components can remain empty. The exit identities, quantities and times are still required; the known net amount does not replace those checks.
What if initial risk is blank or zero?
R needs a known positive original risk on the selected basis. A blank means unknown; zero or a negative amount is not a valid denominator. Keep a trustworthy completed money result, but do not assign 0R or infer risk from the eventual loss.
Does changing currency or timezone convert my data?
No. These settings describe the numbers and timestamps you will enter. Convert mixed-currency amounts using a documented method and normalize timestamps before recording them. The example download remains USD and UTC regardless of the blank-file settings.