Forex Trading Journal: Track Pips, Lots, Spread, Swap, and Execution
Structure a forex trading journal around pair, lot size, pip value, spread, swap, session, and MT5 position and deal IDs, with a template and a worked EUR/USD example.
A forex trading journal is a trade record that keeps the currency pair’s own terms attached to every decision: the pair and its quote convention, the lot size and the units it represents, the pip size and pip value in your account currency, the spread at entry, the planned risk in pips and in money, every fill with its platform ticket, the commission and overnight swap actually charged, the session in which the trade happened, and whether each entry, add, stop change, hold, and exit followed the written plan.
A generic journal entry such as “EURUSD long, +$190” loses most of that. It cannot show how many pips the stop really was, what one pip was worth at that size, whether the result included a swap charge from holding overnight, or whether the position was held past the time the plan said to be flat. Currency pairs differ in pip size, quote currency, and financing, so the journal has to record those terms instead of assuming them.
This guide covers journal structure only. It does not recommend a pair, broker, platform, leverage level, stop distance, or position size, and the examples are record formats, not trade ideas. Retail forex is traded on margin: a small price move can produce a large gain or loss relative to the deposit.
What should a forex trading journal track?
A useful forex journal keeps six layers separate:
| Layer | What to record | Question it answers |
|---|---|---|
| Instrument | Pair, base and quote currency, pip size, quote digits, contract size per lot, account currency | What was traded, and what is one pip worth at this size? |
| Plan and risk | Setup condition, entry, stop, exit rule, planned risk in pips and money, maximum size, holding window | What was supposed to happen before the fill? |
| Execution | Position identifier, current position ticket, order and deal tickets; fill price; bid/ask spread at entry; adds and partial closes | What actually filled, and at what cost to enter? |
| Carry and costs | Commission as charged, swap per rollover, conversion rate used for non-account-currency P&L | What did holding and trading the position cost? |
| Exposure | Currency legs across all open pairs, account accounting mode (netting or hedging), any close-order rule such as FIFO | What currency risk existed across tickets, not just per ticket? |
| Execution review | Planned versus actual entry, size, stop, hold, and exit; rule status for each decision | Did execution follow the plan, whatever the outcome? |
The instrument and carry layers are what make a forex journal different from a stock or generic trade log. The execution-review layer is what makes it a review tool rather than a ledger. For choosing software around these needs in general, see how to choose a trading journal app.
Record pip size, lot size, and pip value per pair
Forex results are usually discussed in pips, but a pip is not the same number on every pair, and pips are not money until lot size and currency are applied.
Pip size. For most major pairs a pip is the fourth decimal place, 0.0001; for yen pairs it is the second decimal place, 0.01.1 Many platforms quote one more digit than that. OANDA calls the extra digit a pipette, one-tenth of a pip, which is why EUR/USD often shows five decimals and yen pairs three.2 Record the pair’s pip size and quote digits in the journal so that “12” never has to be guessed as 12 pips or 12 pipettes.
Lot size. A lot is a contract-volume unit whose underlying quantity is defined by the symbol’s contract size; it is not itself a currency amount. MetaTrader 5 defines the symbol’s contract size as the number of units of the asset in one lot, and the broker sets it in the symbol specification.3 Many retail platforms use 100,000 units of the base currency for 1.00 lot, but read the contract size from your own platform instead of assuming it, and record the units traded, not only the lot figure.
Pip value. One pip’s value is earned in the quote currency:
pip value (quote currency) = pip size × units traded
pip value (account currency) = pip value in quote currency × quote-to-account-currency conversion rate
| Pair (0.40 lot = 40,000 base units) | Pip size | Pip value in quote currency | In a USD account |
|---|---|---|---|
| EUR/USD | 0.0001 | 4.00 USD | $4.00 (no conversion) |
| USD/JPY | 0.01 | 400 JPY | ≈ $2.67 at 150.00 USD/JPY |
| EUR/GBP | 0.0001 | 4.00 GBP | $5.40 at 1.3500 GBP/USD |
These are arithmetic illustrations at assumed exchange rates, not current quotes. When the quote currency differs from the account currency, the dollar value of a pip moves with the conversion rate, so record the rate and when it was taken. The trading journal data-quality guide explains why converting at a different rate or moment than the broker used can create a mismatch that is not a data error.
Write planned risk in pips and money before entry
Record the planned risk before the order is placed, using the intended entry and the intended stop:
planned price risk = stop distance in pips × pip value (account currency)
estimated planned loss = planned price risk + estimated commission
For example, a planned 0.40-lot EUR/USD long with a stop 25 pips from the intended entry reads:
25 pips × $4.00 per pip = $100.00 planned price risk
The same 25-pip stop on 0.40 lot of EUR/GBP is about $135 in a USD account at the assumed rate, and on USD/JPY about $67. A trader who sizes every pair by the same lot figure is taking different money risk on each one.
Planned risk is a pre-trade number. Once orders fill, keep four figures apart:
- Original planned risk: intended entry to intended stop, fixed before the order.
- Actual-entry risk: actual fill price to the intended stop.
- Updated position risk: remaining units to the current stop, restated after every add, partial close, or stop change.
- Realized loss or gain: what the closing fills actually produced.
A stop is not a guaranteed maximum. Price can move through it, and a triggered stop fills at the next available price. The slippage and execution-costs guide covers how to measure that gap.
Margin belongs in a separate field. In the United States, the CFTC requires retail forex dealers to collect a security deposit of at least 2% of notional value for major pairs and 5% for other pairs, with NFA setting the actual percentages and designating which currencies count as major.45 On the 0.40-lot EUR/USD example at 1.1600, that minimum is about $928 on $46,400 of notional value, while the planned price risk is $100. Neither number is the other. A journal that writes “risk = margin” or “risk = leverage” loses the stop distance entirely.
Record the spread and the side each price came from
Forex quotes have two sides. In MetaTrader 5, buying executes at the ask and selling at the bid; the platform shows the spread as the difference between them, and a floating spread can change over time.63 The same help page states that stop-loss and take-profit conditions for long positions are checked against the bid, and for short positions against the ask.6
For the journal, that means:
- record the bid and ask (or the spread in pips) at the time of entry, not only the fill;
- record which side the stop and target were measured from when the plan was written;
- if a chart shows bid prices, expect a long entry to fill at the ask, above the plotted price, and a short stop to trigger on the ask, above what the bid chart shows; and
- when P&L is calculated from actual fill prices, the bid/ask spread is already reflected in those prices and should not be subtracted a second time. (A calculation based on mid prices or a plan benchmark is different; say which prices it uses.)
A spread field makes one review question answerable: did entries that “looked fine on the chart” routinely fill several tenths of a pip worse because the spread at that time of day was wide?
Log platform tickets, not just trades
MetaTrader 5 separates three records. An order is the instruction sent to the broker; a deal is the actual buy or sell; a position is the resulting open obligation. One order can produce several deals, and a position changed by several deals, such as a partial close or an add, can be traced through all of them.6
MetaTrader 5 has two position numbers, and they are not interchangeable. The position ticket usually matches the opening order’s ticket, but it can change: the server may replace it during service operations such as charging swap by re-opening the position, and in netting mode a reversal replaces it with the ticket of the order that caused the reversal. The position identifier does not change during the position’s life, and every order and deal that opens, modifies, or closes the position carries it (as ORDER_POSITION_ID and DEAL_POSITION_ID).7
Store these identifiers in the journal:
- Position identifier as the stable key linking the trade record to its orders and deals, when your platform or export provides it.
- Current position ticket as a platform reference, without assuming it stayed the same for the whole trade.
- Order tickets for every order submitted or executed.
- Deal tickets for every actual fill, add, and partial close.
- Reason for each change, written at the time.
With the position identifier in the journal, a platform history export can be matched line by line instead of by approximate time and price.
Record the account’s position accounting mode. MetaTrader 5 supports two accounting systems, set by the broker per account. In netting, there is one aggregate position per symbol: a new deal in the same direction increases it, and an opposite deal reduces, closes, or reverses it. In hedging, several separate positions on the same symbol can be open at once, including opposite ones.6 The mode determines whether the journal tracks one combined position per pair or several positions, each with its own identifier.
Record any close-order rule that applies to the account. This is a separate question from the platform’s accounting mode. For US retail forex accounts at an NFA Forex Dealer Member, NFA Compliance Rule 2-43(b) bars the dealer from carrying offsetting positions in a customer account and requires offsetting on a first-in, first-out basis.8 Where a rule like that applies, it decides which earlier position a closing trade offsets, which changes the realized P&L attributed to each entry. Note the rule, or “none known,” in the journal header next to the accounting mode.
Record swap and rollover as carry, separately from the trade
A position held past the platform’s daily rollover is charged or credited financing, usually called swap or rollover. OANDA’s US site states that a position open at the end of the trading day, 5 p.m. ET, is considered held overnight, and gives its financing calculation as position value × annual rate ÷ 365.9 The same page explains that spot FX typically settles on a T+2 basis, so the Wednesday 5 p.m. rollover typically carries about three days of financing to cover the weekend.9 MetaTrader 5’s symbol specification lets the broker set a swap multiplier per weekday; its own example charges the swap three times on the Wednesday-to-Thursday rollover.3
Rates, rollover times, and the triple day are set by each broker and symbol. Read them from the symbol specification and your statement rather than assuming them.
Record for each held position:
- number of rollovers held and the date of each;
- swap charged or credited per rollover, as shown on the statement;
- whether the hold was planned (a written holding window) or unplanned; and
- total swap as a separate cost component, even though it is included in net P&L.
Keeping carry separate matters in review. A trade can be right on direction and still lose money on a long hold if the swap is negative, and an intraday plan that repeatedly turns into overnight holds shows up as a pattern of swap lines that the plan never budgeted for.
Track currency exposure across pairs
A forex position is a pair of currency positions: long EUR/USD is long euros and short dollars. Several tickets on different pairs can therefore add up to one larger currency bet that no single ticket shows.
After each fill, record the currency legs:
| Open position (hypothetical) | Base leg | Quote leg |
|---|---|---|
| Long 0.50 EUR/USD at 1.1600 | +50,000 EUR | −58,000 USD |
| Long 0.50 GBP/USD at 1.3500 | +50,000 GBP | −67,500 USD |
| USD across both tickets | −125,500 USD |
Two “separate” trades are one $125,500 short-dollar exposure. That does not make them a single trade with a single stop, and it does not say how the pairs will move together. It records a fact the plan should address: does the maximum-risk rule apply per ticket, or per currency? Write the rule down. If there is none, mark it undefined in review instead of inventing one after the result.
Record the session in your own time zone
MetaTrader 5 shows quote times in the time zone of the broker’s trading server,3 which may not be your time zone or the one your plan uses. Record timestamps in one reference time zone, note the platform offset, and label the session using a definition you write once (for example, “London/New York overlap = 8:00 a.m.–12:00 p.m. ET”). The forex sessions guide explains the session structure itself.
A field for “inside my planned trading window: yes/no” is usually more useful in review than the raw clock time, because forex trades almost continuously during the week and nothing forces a session to end.
Separate the result from execution quality
Use two review tracks for every forex trade.
Result: calculated the same way each time:
net P&L = gross P&L − commission ± swap or financing − any other charged costs
Keep each component visible, and keep four measures distinct:
- Pips: price movement or distance. A 20-pip move is 20 pips at any position size.
- Pip value: what one pip is worth for the actual position, set by units traded and the conversion rate.
- Account-currency P&L: the economic result.
- Net R-multiple (optional): net P&L ÷ original planned risk, so trades of different sizes and pairs can be compared on one scale.
Do not treat equal pip counts on different pairs as equal outcomes. A pip on EUR/GBP and a pip on USD/JPY are different amounts of money in a USD account, because pip size, quote currency, and conversion differ.1
Execution quality: compare each material decision with the rule that applied at the time.
| Decision | Planned | Actual | Status | Evidence |
|---|---|---|---|---|
| Pair and size | Pair, lots, units, planned risk | Filled lots and units | Aligned / deviated / undefined | Deal ticket |
| Entry | Condition and price | Fill price, spread at entry | Aligned / deviated / undefined | Deal ticket and quote |
| Add | Written add condition | Add fill, updated position risk | Aligned / deviated / undefined | Timestamped reason |
| Stop | Original stop | Every stop change, with time | Aligned / deviated / undefined | Order history |
| Holding window | Flat time or overnight rule | Actual close time, rollovers held | Aligned / deviated / undefined | Position identifier, swap lines |
| Exit | Planned exit or invalidation | Actual exit and fill | Aligned / deviated / undefined | Deal ticket |
Use “undefined” when the plan had no rule for the decision. Status depends on the rule, not the result: a hold past the planned flat time is deviated even if it made money. For more worked examples of the difference, compare the futures trading journal, which applies the same review table to contract months, ticks, and rolls.
A compact forex journal template
ACCOUNT
- Account currency / accounting mode (netting or hedging):
- Close-order rule (e.g., NFA FIFO, or none known):
- Platform time zone vs reference time zone:
POSITION IDENTIFIER (stable link to orders and deals):
CURRENT POSITION TICKET (platform reference; may change):
DATE / SESSION (planned window vs actual):
INSTRUMENT
- Pair / base / quote:
- Pip size / quote digits / contract size per lot:
- Units traded / pip value in account currency (conversion rate, time):
PRE-TRADE PLAN
- Setup condition:
- Intended entry / stop / exit rule:
- Planned price risk (pips, money) / est. commission:
- Maximum size / add rule / currency-exposure rule:
- Holding window (flat by ___ / overnight allowed?):
FILLS AND EVENTS
- Time / order ticket / deal ticket / side / lots / price / bid-ask at entry / reason
- After each fill: open units / active stop / updated position risk / currency legs
- Partial close: deal ticket / units / matched against / gross P&L
CARRY AND COSTS
- Commission as charged:
- Rollovers held / swap per rollover / total swap:
REVIEW
- Gross pips / gross money / commission / swap / other costs / net money
- Net R-multiple (optional): net P&L ÷ original planned risk
- Original vs actual-entry risk vs realized result:
- Entry / size / add / stop / hold / exit status:
- Evidence to compare across similar trades:
Fill in the instrument and plan before entry. During the trade, record only fills and the reason for each change. Leave interpretation for a scheduled review so journaling does not become a second live task.
Worked example: one EUR/USD trade held past the plan
A hypothetical long trade in a USD-denominated account. Every ticket, time, price, commission, and swap figure below is invented for illustration, not taken from a real account or broker.
ACCOUNT: USD / hedging accounting mode / times recorded in ET
POSITION IDENTIFIER: EX-4471 (hypothetical)
CURRENT POSITION TICKET: EX-4471 (checked at close)
DATE: Wednesday / planned window 8:00 a.m.–4:45 p.m. ET
INSTRUMENT
- EUR/USD; pip 0.0001; 5-digit quotes; contract size 100,000
- 0.40 lot = 40,000 EUR; pip value $4.00 (USD quote = USD account)
PRE-TRADE PLAN
- Intended entry 1.16000 / stop 1.15750 (25 pips) / target 1.16500 (50 pips)
- Original planned price risk: 25 × $4.00 = $100.00
- Est. commission (hypothetical): $2.80 round turn
- Holding window: flat by 4:45 p.m. ET; no overnight holds
FILLS AND EVENTS
- 10:18 a.m.: buy 0.40 filled at 1.16012 (ask); bid 1.16004; spread 0.8 pip
1.2 pips above the 1.16000 plan benchmark
- Actual-entry risk to stop: 26.2 pips = $104.80
- 4:45 p.m.: bid 1.16180 recorded; position NOT closed
- 5:00 p.m.: Wednesday rollover; swap -$2.85 (statement)
- Thursday 9:41 a.m.: take profit 1.16500 hit on bid, filled at 1.16500
RESULT
- Gross: 1.16500 − 1.16012 = 48.8 pips × $4.00 = $195.20
- Commission -$2.80 / swap -$2.85
- Net: $189.55
- At planned flat time (bid 1.16180): 16.8 pips = $67.20 gross, no swap
REVIEW
- Pair and size: aligned (0.40 of 0.40 max)
- Entry: undefined (no maximum entry distance written); 1.2 pips vs plan
- Stop: aligned (not moved)
- Holding window: DEVIATED (held through Wednesday rollover)
- Exit: target filled, but only because of the deviated hold
The trade made more money because the plan was broken, not because it was followed. The record shows exactly how much: $128.00 of the gross result came after the planned flat time, and the $2.85 swap exists only because of the hold. A result-only journal would file this as a good trade. The execution review files it as a deviation that happened to pay, which is the pattern worth watching if it repeats, because the same unplanned hold can also land on a loss with a swap charge on top. Recording the bid at the planned flat time is what makes that comparison possible.
Common forex-journal mistakes
Recording lots without units or pip value. “0.40 lot” does not state money risk by itself. Contract size, pip size, position size, and currency conversion determine pip value; money risk also requires the stop distance.
Comparing pips across pairs. A pip on EUR/GBP and a pip on USD/JPY are different amounts in a USD account.
Mixing pips and pipettes. A five-digit quote moved 12 points is 1.2 pips, not 12.
Reporting only net P&L without preserving swap as a separate component. Carry cost then hides unplanned overnight holds.
Treating margin or leverage as risk. Margin is a deposit requirement; risk is the stop distance times pip value.
Ignoring currency overlap. Several pairs sharing one currency can be one large exposure.
Using platform time without a reference. Broker-server timestamps make session review unreliable unless the offset is recorded.
Counting spread twice. When P&L uses actual fill prices, those prices already include it.
Treating the position ticket as permanent. In MT5 it can change; the position identifier is the stable link.
Where Costante fits
A forex-specific journal or platform report is the right tool when the job is importing MT4 or MT5 history, calculating pip value and swap automatically, or reconciling statements. Costante does not connect to brokers, MetaTrader, or exchanges, does not import fills, and does not calculate pips, lot value, spread, swap, or margin. It does not execute or block orders or decide whether a trade is appropriate.
Costante covers a narrower behavioral layer for discretionary traders, including forex traders: a session plan, self-defined guardrails, pre-trade and in-session checks, low-friction logging of decisions and whether they followed the plan, and structured review of repeated drift. That fits alongside a pair-level journal when the problem is not “what did I trade?” but “why do I keep holding past my window, adding to losers, or moving stops when I know the rule?”
Frequently asked questions
What is the minimum information for a forex trade journal entry?
Record the pair, lot size and units, pip value in your account currency, entry and exit fills, stop, planned risk in pips and money, spread at entry, commission, swap, and net result. To review decisions as well, add the setup condition, holding window, and a rule status for each entry, add, stop change, hold, and exit.
Should a forex journal track pips or dollars?
Both. Pips show price distance and fill quality in the market’s own units. Pip value converts that movement into money for the actual position. Planned money risk additionally requires the stop distance. Compare outcomes across different pairs in account currency or as Net R-multiples of original planned risk.
How do I record swap in a forex journal?
Record each rollover the position was held through, the swap charged or credited on the statement, and whether the overnight hold was planned. Include it in net P&L, but keep the total visible as its own line so carry cost does not disappear inside the net figure.
Why does my journal P&L not match my MT5 history?
Common causes are a missing swap or commission line, a different conversion rate for non-USD pairs, a partial close matched to a different lot than the platform used, or timestamps in different time zones. Match by position identifier and deal tickets first, then compare each cost line.
Is leverage the same as risk in a forex journal?
No. Leverage and margin describe how much deposit supports the position. Planned risk is the distance to your stop in pips times pip value. Record them in separate fields.
Can a forex trading journal show whether my strategy works?
It can organize comparable evidence, but one trade or one good week cannot establish an edge. Strategy evaluation needs stable definitions, enough comparable trades, and all costs including swap. A journal is most reliable for showing whether execution followed the plan.
Sources
Costante provides educational workflow tools, not financial advice. Trading involves risk.
Footnotes
-
IG. Pip definition. Most major currency pairs define a pip as the fourth decimal place (0.0001); exceptions include the Japanese yen, where a pip is the second decimal place; platforms often display an additional decimal representing a fraction of a pip. Accessed September 23, 2026. ↩ ↩2
-
OANDA. What is a pip? Defines a pip as the smallest standardized move in a quote and a pipette as one-tenth of a pip, giving EUR/USD five decimal places and yen pairs three. Accessed September 23, 2026. ↩
-
MetaQuotes. MetaTrader 5 Help: Market Watch. Symbol specification fields including contract size (units per lot), tick size, tick value, spread (floating where applicable), swap type, swap long and short, and per-weekday swap multipliers, with an example tripling the swap on the Wednesday-to-Thursday rollover; quote times shown in the broker trading server’s time zone. Accessed September 23, 2026. ↩ ↩2 ↩3 ↩4
-
17 CFR § 5.9, Security deposits for retail forex transactions. Minimum retail forex security deposit of 2% of notional value for major currency pairs and 5% for all other pairs, as set by the registered futures association, which designates major currencies. Accessed September 23, 2026. ↩
-
National Futures Association. Financial Requirements, Section 12: Security Deposits for Forex Transactions with Forex Dealer Members. Effective March 18, 2026. Requires Forex Dealer Members to collect and maintain minimum deposits of 2% for transactions involving the listed currencies and 5% for other transactions, subject to the section’s terms, including its authority for temporary increases under extraordinary market conditions. Accessed September 23, 2026. ↩
-
MetaQuotes. MetaTrader 5 Help: Trading Operations, Basic Principles. Defines orders, deals, and positions and their tickets; buying at Ask and selling at Bid; netting and hedging position accounting set by the broker; stop-loss and take-profit conditions checked against Bid for long positions and Ask for short positions. Accessed September 23, 2026. ↩ ↩2 ↩3 ↩4
-
MetaQuotes. MQL5 Reference: Position Properties.
POSITION_TICKETusually matches the opening order’s ticket but can change after server service operations such as charging swap with position re-opening, and is replaced by the reversing order’s ticket after a netting reversal;POSITION_IDENTIFIERdoes not change during the position’s life cycle and is specified in each related order (ORDER_POSITION_ID) and deal (DEAL_POSITION_ID). Accessed September 23, 2026. ↩ -
NFA Compliance Rule 2-43, Forex Orders. Section (b): Forex Dealer Members may not carry offsetting positions in a customer account and must offset them on a first-in, first-out basis. Accessed September 23, 2026. ↩
-
OANDA. Financing fees. Positions open at the end of the trading day (5 p.m. ET) are considered held overnight; example financing calculation of position value × annual rate × 1/365; FX typically settles T+2, so a position held at 5 p.m. Wednesday typically carries three times the funding rate; no financing charges or credits on Saturday or Sunday. Accessed September 23, 2026. ↩ ↩2