Trading Journal — Methodology Handbook
Internal note (not for publication). This is the working source for the public methodology page. Every feature is documented here as it is built. Whenever a journal feature is added or changed, update this file in the same change, to a professional, publication-ready standard.
Overview
The CalculatorAI Trading Journal is a multi-asset trading journal and performance-analytics platform. A trader records every position they take — across crypto, forex, stocks, futures, options and sports betting — and the journal turns that record into objective insight: it computes profit and loss, win rate, R-multiple, expectancy, drawdown and dozens of other metrics automatically, and surfaces them through a filterable analytics dashboard.
It is built for one purpose: helping a trader find and keep their edge. Beyond plain record-keeping it offers a multi-account ledger, broker CSV and MetaTrader 4 import, a customizable trade table, options-specific tooling (multi-leg spreads, greeks, MAE/MFE), a pre-trade discipline checklist, and an AI trading coach — powered by Anthropic's Claude — that grades individual trades on process quality and mines the whole journal for recurring behavioral patterns.
The journal is one tracker inside CalculatorAI, a broader suite of financial calculators and trackers. This handbook explains, in full, what every part of the journal does and how every number is calculated.
1. Core concepts
Trade
One position in the journal. It has two independent dimensions:
- Type — the asset class: crypto, forex, stock, futures, options, sports.
- Style — how long the position is held: scalp, day, swing or position.
These are separate on purpose — a crypto trade can be a scalp, a stock trade can be a swing. A trade also has a status (open, closed, pending, cancelled, completed), a symbol, a side, entry/exit data and type-specific detail fields.
Asset class (type)
The type answers what you traded — it changes which detail fields the form shows and, for sports, how P&L is computed:
- Crypto — cryptocurrency pairs (BTCUSDT, ETHUSDT …).
- Forex — currency pairs (EURUSD …).
- Stock — company shares (AAPL …).
- Futures — exchange-traded contracts (/ES, /CL …); point value applies.
- Options — calls and puts; supports multi-leg spreads and greeks.
- Sports — sports bets; P&L is wager-based (
payout − wager).
Trading style
The style answers how long you held it — independent of the asset:
- Scalp — minutes; many small trades.
- Day — opened and closed within the same session.
- Swing — held days to weeks.
- Position — held weeks to months.
Keeping style separate means you can filter and compare performance by holding period across every asset class — e.g. "are my scalps profitable?" regardless of whether they were crypto or futures.
P&L derivation
For price-based trades, realized profit/loss is computed automatically:
pnl_gross = (exit_price − entry_price) × quantity × side_factorwhereside_factoris+1for long/buy and−1for short/sell.pnl_net = pnl_gross − commission − swap_feespnl_percent = pnl_net / (entry_price × quantity) × 100r_multiple = pnl_net / one_r(see R-multiple)hold_seconds = exit_date − entry_datewin_loss = sign(pnl_net)→ win / loss / breakeven
Sports bets use a wager-based formula instead: pnl_net = payout − wager.
Partial entries and exits
A position can be scaled into and scaled out of across several "legs", each with its own quantity, price and date.
- Partial entries — when a position is built up over several fills, the journal saves the weighted-average entry price, the total quantity established, and the earliest entry date (when the position opened).
- Partial exits — when a position is closed over several fills, it saves the weighted-average exit price, the total exited quantity, and the latest exit date.
A single entry or exit needs no per-leg quantity — the lone leg inherits the
position size. P&L stays exact regardless of how many legs there are, because
(avg_exit − avg_entry) × Σqty ≡ Σ((leg_price − price) × leg_qty). The full
leg breakdown is preserved, so a scaled position is still one journal row
instead of many.
R-multiple and 1R
1R is the cash you risked on the trade (entry minus stop-loss, in money).
The R-multiple expresses profit as a function of risk: +2R means you made
twice what you risked. It makes trades of different sizes comparable.
You do not have to type 1R in by hand. If the field is left blank, the journal
derives it from the stop loss: 1R = |entry − stop_loss| × quantity × point_value. So entering a stop loss is enough for the R-multiple, the
Risk (1R) column and the risk statistics to work — no extra bookkeeping.
Risk columns
- Risk (1R) — the cash at risk on the trade, in money: the entered 1R, or the value derived from the stop loss. It answers "how much could this trade have lost if the stop was hit".
- Risk % — the share of the account put at risk on the trade, as a percentage. It is entered per trade; most disciplined traders keep it at 1–2%. Tracking it exposes oversized, over-leveraged trades.
Risk / Reward ratio
The risk/reward ratio (R:R) is a planned figure, set before the trade is
taken: |take_profit − entry| ÷ |entry − stop_loss|. A value of 3 means the
target is three times the distance to the stop. Unlike the R-multiple — which
is the realised outcome — R:R describes the trade you intended to take, so a
column of R:R values shows whether you consistently take trades worth the risk.
It is shown only when both a stop-loss and a take-profit are recorded.
Position size
Position size is the cash committed to the trade at entry:
entry_price × quantity × point_value. It answers "how much was on the table"
independently of the outcome, and makes it easy to spot oversized trades when
sorting the journal table by this column.
Point value
For futures and options one price point is not one dollar — an /ES future
is $50 per point, an option contract covers 100 shares. Each trade carries a
point value (contract multiplier) and P&L is scaled by it:
pnl = (exit − entry) × quantity × point_value. Point value defaults to 1,
so crypto, stock and forex are unaffected. The Setup → Tickers list holds
a point value per symbol; when a trade's symbol matches, it is filled in
automatically.
Trade screenshots
Each trade can carry one chart screenshot. Images are uploaded to private per-user storage and shown on the trade and as a small indicator in the journal table — so you can review the setup exactly as you saw it.
Display currency
The journal labels every amount with the currency chosen in the site header (dollar, euro, pound and many more). It is a display setting — the journal shows the amounts you logged under your chosen symbol, it does not convert between currencies. Trading accounts each keep their own base currency.
Logging trades fast
Four ways to add trades: the full Add trade form (every field), the Quick add modal (type, symbol, side, entry/exit, quantity — P&L derives automatically), a broker CSV import, or a MetaTrader 4 statement import. The text fields (account, strategy, exchange) autocomplete from values you have used before, so repeated trades take only a few keystrokes. The journal table can be sorted by any column and exported back to CSV at any time.
MetaTrader 4 import
Instead of typing trades in, a MetaTrader 4 trader can export an HTML statement (right-click Account History → Save as Report) and upload it. The journal reads every closed trade — symbol, direction, lot size, open and close prices and times, stop loss, take profit, commission and swap — and uses the broker's own realized Profit figure directly, so the numbers match the broker exactly. The contract point value is derived from that profit, and each trade is tagged with its MT4 ticket so re-importing the same statement never creates duplicates.
Bulk editing
Tick the row checkboxes (or the header box for all) to select trades, then delete them or set their account, strategy or an added tag in one action — useful for cleaning up a fresh CSV import.
Duplicating a trade
The duplicate action on any row copies that trade into a new one and opens it for editing — the fast way to log another trade with the same setup.
Saved filter views
Any combination of filters can be saved under a name and re-applied with one click — for example a "losing options trades" or "this week's scalps" view.
2. The workspace — four tabs
- Journal — the trade table with customizable, type-aware columns and filters; add trades by hand or import a broker CSV.
- Dashboard — one filterable analytics screen (period / account / strategy) that replaces the separate Monthly / Annual / Strategy / Comparison reports of a spreadsheet.
- Accounts — trading accounts with live balances and a deposits / withdrawals ledger.
- Setup — managed strategies and monthly profit goals.
The four tabs share one server-rendered layout. When you open the journal section that layout fetches everything the tabs need — trades, accounts, the cash ledger, strategies, tickers and profit goals — together in one server round-trip, so the first screen arrives with the data already in the HTML (no loading spinner, no client round-trip). The layout then stays mounted, so switching tabs is instant: every tab — Journal, Dashboard, Accounts and Setup — reads its data straight from memory instead of fetching again. Accounts and Setup additionally revalidate quietly in the background, so edits made elsewhere always catch up.
After any change — a trade saved, deleted, duplicated or imported — the section re-runs on the server, so every tab always reflects current data.
3. Analytics — how each metric is computed
- Win rate — share of closed trades that ended in profit.
- Profit factor — gross profit ÷ gross loss. Above 1 is profitable.
- Average win / loss — mean P&L of winning vs losing trades.
- Max drawdown — the largest peak-to-trough drop of the cumulative P&L curve.
- ROI — net P&L ÷ invested capital (Σ entry_price × quantity).
- Avg per day — net P&L ÷ number of distinct trading days.
- Equity curve — cumulative net P&L over closed trades, by close date.
- P&L calendar — net P&L per calendar day (timezone-correct).
- Account current balance — starting balance + net deposits + realized P&L of that account's closed trades.
Risk statistics
- Expectancy — the average P&L you can expect per trade (net P&L ÷ number of closed trades). Positive expectancy means a profitable edge.
- Avg R-multiple — the average of every closed trade's R-multiple (profit measured in units of risk). It is expectancy expressed in R instead of money, so it is comparable across position sizes and accounts; above 0 is a positive edge.
- Standard deviation — how spread out your trade results are; lower is more consistent.
- Win streak / loss streak — the longest run of consecutive winning and losing trades, in close-date order. The loss streak is your worst-case losing run so far.
- Kelly % — the Kelly criterion: the fraction of capital a positive edge mathematically supports risking per trade. Most traders use a fraction of it. A negative Kelly means the strategy currently has no edge.
- P&L by weekday — net P&L grouped by the day of the week a trade closed; surfaces "I always lose on Mondays" patterns.
- P&L by tag — net P&L attributed to every tag a trade carries, so you can see which setups and mistakes cost or make the most.
- P&L by asset class — net P&L grouped by trade type (crypto, forex, stock, futures, options, sports). Shows where the edge actually is.
- P&L by trading style — net P&L grouped by style (scalp, day, swing, position), so a trader can tell whether scalps or swings carry the account.
The Dashboard is one filterable screen — by period, account, strategy, asset class and trading style — so any of these breakdowns can be narrowed to a single slice. It replaces the separate Monthly, Annual, Strategy, Comparison and Ticker reports of a spreadsheet: each is just the Dashboard with a different filter applied.
MAE / MFE — trade excursion
- MFE (maximum favorable excursion) — the best unrealized profit a trade reached before it was closed. Entered per trade as a positive amount.
- MAE (maximum adverse excursion) — the worst unrealized loss a trade reached before it was closed. Entered per trade as a positive amount.
- MFE efficiency —
net P&L ÷ MFE. It shows how much of the best available move you actually captured; a low number means you tend to give profits back, a number near 100% means you exit near the peak.
4. AI — how it analyzes your data
The journal AI runs on Anthropic Claude. Three surfaces:
- Per-trade review — grades one closed trade on process quality (not just outcome): a disciplined loss can score well, a sloppy win poorly. Returns a grade, a verdict, strengths, improvements and lessons.
- Journal insights — analyzes the whole journal. It is fed statistical breakdowns computed over every settled trade (by strategy, symbol, type, side, weekday, month) plus the best/worst trades and a recent sample, so the analysis stays complete for journals of any size.
- Chat assistant — a conversational helper grounded in a compact summary of the user's journal; answers questions about their data and about how to use the app.
What the AI receives: aggregate stats and per-trade rows (symbol, type, side, P&L, R, strategy, tags, notes). It never receives account credentials. All output is "education, not financial advice".
5. Options-specific features
Detail fields: option type (call/put), strike, expiration, contracts, premium, breakeven, max profit, max loss, buying power, exit type (closed / expired / executed / assigned).
Greeks — the option's risk sensitivities, entered per trade:
- Delta — how much the option price moves per $1 move in the underlying.
- Theta — daily time decay; value the option loses each day.
- Vega — sensitivity to a 1-point change in implied volatility.
- Gamma — how fast delta itself changes as the underlying moves.
- Implied volatility (IV) — the volatility priced into the option, as %.
- IV rank — where current IV sits versus its own 52-week range.
Chance of profit (COP %) — the probability the trade finishes profitable.
DTE (days to expiration) — a computed column: calendar days between the trade's entry date and the option's expiration date.
Multi-leg spreads
An options trade can hold several legs, so a spread is logged as one position instead of many rows. Each leg has an action (buy/sell), a type (call/put), a strike and a ratio (contracts per spread) — one leg for a single option, two for a vertical spread, four for an iron condor, and so on. The legs describe the structure; realized P&L still comes from the trade's net entry and exit premium, the way an options trader actually closes the position. The journal table shows the spread's strikes and whether it is a call, put or mixed structure.
(More to be documented as built — see Planned.)
5b. Forex-specific features
Detail fields: leverage and chart timeframe.
Lot size — forex position size is measured in lots, and for a forex trade the core Quantity field is labelled Lot size and holds exactly that (one standard lot is 100,000 units of the base currency; 0.1 is a mini lot, 0.01 a micro lot). There is no separate lot-size field to keep in sync. The point value in the Entry section is the contract size that converts a price move into money — for an MT4 import it is derived automatically from the broker's profit.
Pips — a computed column showing the trade's net price move in pips,
signed by direction. A pip is the standard smallest quote increment of a
currency pair: 0.0001 for most pairs, and 0.01 for pairs quoted in
Japanese yen (the journal detects "JPY" in the pair name automatically).
The column is computed as (exit − entry) ÷ pip_size, flipped for a short,
and is shown only for forex trades. Pips let a forex trader compare the
size of moves independently of lot size or account balance — the way the
discipline is traditionally scored.
Chart timeframe — the timeframe the setup was taken on (M1, M5, M15, M30, H1, H4, D1, W1). It is a tagged column, so performance can be filtered and compared by timeframe — for example, whether M5 scalps actually beat H1 swings. The timeframe field is available for crypto trades as well.
5c. Futures-specific features
Detail field: contract expiration date.
Point value drives futures P&L. One price point on a futures contract is
rarely worth one dollar — an /ES contract is $50 per point, /NQ $20, and
so on. The point value is entered once in the Entry section (it is a core
field shared by every asset type) and P&L is scaled by it:
pnl = (exit − entry) × quantity × point_value. Because it lives in one
place, there is no second "point value" field to keep in sync.
Points — a computed column showing the trade's net price move in points,
signed by direction: (exit − entry), flipped for a short. Unlike forex pips
there is no divisor — a point is the contract's natural price unit. Points
let a futures trader judge the size of the move on the chart, separately
from the dollar result, which the point value and contract count determine.
The column is shown only for futures trades.
Days to expiration (DTE) — the same computed column used for options works for futures: calendar days between the entry date and the contract's expiration.
5d. Stock-specific features
Detail fields: company, industry, holding period and leverage.
Company and Industry are tagged columns. Recording the industry lets a stock trader sort the journal by sector and see, at a glance, whether the edge is real or just concentrated in one hot sector.
Leverage — stocks bought on margin carry leverage. It is recorded per trade and feeds the required-margin calculation below.
Required margin — a computed column: the collateral needed to open the
position, position_size ÷ leverage. With no leverage it equals the full
notional (a cash purchase); at 10× leverage it is a tenth of it. It answers
"how much capital did this trade actually tie up", which position size alone
does not show for a margined account.
A note on currency: each trade belongs to a trading account, and every account has its own base currency — so a trade's currency is its account's currency. Trade in two currencies by keeping two accounts; the journal does not mix currencies inside one account, which keeps every total coherent.
6. Discipline — the pre-trade checklist
In Setup the trader keeps a reusable list of rules — the things that must be true before taking a trade ("setup confirmed on H4", "risk ≤ 2%", "no news in the next hour"). On every trade form those rules appear as a checklist; the trader ticks the ones the trade actually followed. The journal table shows how many rules each trade satisfied, making it easy to see whether discipline correlates with results.
7. Shared performance profile
From Setup a trader can create a public, read-only link to a snapshot of their aggregate performance — key stats, the equity curve and monthly P&L. Individual trades, accounts and strategies are never exposed. The link is an unguessable token resolved server-side; sharing is opt-in and can be revoked at any time, which invalidates the link immediately.
8. Status
All gold-standard features benchmarked against TraderSync, Tradervue and Edgewonk have shipped. Remaining work is the public methodology page itself, translated from this handbook.
9. References & further reading
The metrics and concepts in this handbook follow standard, widely used trading definitions. For independent explanations of the underlying ideas:
- Risk / reward ratio — Investopedia: Risk/Reward Ratio
- Drawdown — Investopedia: Drawdown
- Kelly criterion — Investopedia: Kelly Criterion
- Option Greeks — Investopedia: Greeks
- Pips (forex) — Investopedia: Pip
- Futures contracts & point values — CME Group: Education
- Options education — Cboe: The Options Institute
These are external references for the concepts only; all calculations in the journal are performed by CalculatorAI exactly as described above.