Author: Publish Date: February 25, 2026Updated Date: September 22, 20269 min read

Editorial standards and corrections

Copy Trading Costs:
Spread, Commission and Account Comparisons

Compare copied forex trades by filled quantity, verified charges and a defined price benchmark. A larger dollar cost can simply reflect a larger position. Spread, commission and execution-price differences need separate columns, while an already-net account result must not have the same costs deducted again.

This guide builds an account-by-pair-by-session ledger using official documentation checked September 22, 2026. Every number below is hypothetical. The examples demonstrate arithmetic, not broker performance, customer results or a TradeCopier cost-saving claim.

Start with units and the correct side of the quote

For an immediately executable forex quote, buying uses the ask and selling uses the bid. The spread is ask minus bid. A quoted spread is not itself a separate cash debit: its effect enters the execution price. Commissions and other booked charges can appear separately.

Record the exact symbol, base currency, quote currency, contract size, quantity unit and account currency. MetaQuotes symbol properties distinguish point size, minimum price change, contract size and profit currency. These are different fields; neither a platform point nor a lot is a universal dollar amount.

In this example only, EUR/USD is USD per EUR, one lot means 100,000 EUR and a pip means 0.0001 USD per EUR. Therefore 25,000 EUR × 0.0001 USD/EUR = $2.50 per pip. A different pair, contract or account currency needs its own specification and conversion.

Worked comparison: normalize before comparing accounts

Assume two completed long round trips with no financing or other fees. Both use a fictional commission of $3.50 per 100,000 EUR per side. Our constructed entry reference is bid 1.10000 / ask 1.10020; the exit reference is 1.10100 / 1.10120. These shared snapshots simplify the illustration; real accounts require timestamped, identifiable quote evidence.

Hypothetical completed EUR/USD trades; all money is USD
MeasureAccount AAccount B
Completed round-trip size25,000 EUR50,000 EUR
Entry average / exit price1.10032 / 1.101001.10030 / 1.10100
Gross fill-price P&L$17.00$35.00
Round-trip commission$1.75$3.50
Net after stated charges$15.25$31.50
Modeled spread component$5.00$10.00
Modeled adverse slippage$3.00$5.00
Benchmark shortfall plus commission$9.75$18.50
Same cost per 10,000 EUR round-trip size$3.90$3.70

B has more dollar cost but less cost per equal quantity in this constructed observation. That does not establish better execution generally. Account conditions, instrument, order type, size, time and benchmark availability must be comparable before drawing a broader conclusion.

Hypothetical account comparison: A costs 3.90 dollars and B 3.70 dollars per 10,000 EUR round-trip size; modeled price costs are already reflected in fill profit.
Original arithmetic illustration. Normalize the denominator and keep benchmark attribution separate from the booked result.

Weight fills by quantity, then reconcile the result

A's entry consists of 10,000 EUR at 1.10020 and 15,000 EUR at 1.10040. Its average is (10,000 × 1.10020 + 15,000 × 1.10040) ÷ 25,000 = 1.10032. A simple average would be wrong. cTrader order documentation distinguishes submitted, remaining and filled quantity and defines the order fill price as a volume-weighted average.

For A, gross price P&L is (1.10100 − 1.10032) × 25,000 = $17. Commission is $3.50 × 25,000 ÷ 100,000 × two sides = $1.75. Net is $15.25. Preserve individual fills and match closed quantities to their opening inventory; a partial close is not a completed round trip for the entire original request.

cTrader history documentation distinguishes gross realized P&L from net realized P&L including swaps and commissions. Check the actual export definition. If you start from a net field, do not deduct those charges again. Keep deposits, withdrawals and account-level adjustments outside trade P&L unless an explicit allocation reconciles them.

Explain spread and slippage without double-counting

The hypothetical midpoint rises from 1.10010 to 1.10110. At A's quantity that benchmark move is $25. A's actual gross result is $17, leaving $8 of price shortfall.

For this constructed long trade, half the entry spread plus half the exit spread costs (0.00010 + 0.00010) × 25,000 = $5 relative to those midpoints. A's entry average exceeds the reference ask by 0.00012, adding $3 of adverse slippage; its exit equals the reference bid, adding zero. Thus $25 − $5 − $3 − $1.75 = $15.25, matching the fill calculation.

These are two explanations of the same result. Subtracting $5 and $3 from the already-net $15.25 would double-count. The spread decomposition is a chosen benchmark model, not another broker invoice.

For each buy, signed adverse slippage is fill minus reference ask; for each sell it is reference bid minus fill. Multiply each difference by its filled quantity. Negative values represent improvement and should remain negative. Use synchronized snapshots with a documented selection rule; a stale quote mixes market movement into the comparison. Missing quotes make this decomposition unavailable, even when booked P&L remains known.

Read commission and currency conventions literally

A schedule can quote per side, per round turn, per lot, per base-currency unit or per monetary notional. Posting time is a separate question. For example, OANDA Global Markets' core-pricing explanation describes commission on USD notional and both legs charged at opening. It also describes conversion to the account's home currency. That entity-specific arrangement differs from our fictional per-EUR, per-side schedule.

Store the schedule basis, applicable tier, minimums, currency, effective date and whether the export already includes both sides. Prefer actual charges for reconciliation; label schedule estimates separately. An entry debit covering the round turn must not be charged again merely because the close appears in another row.

Retain original amounts before conversion. A hypothetical $9.75 cost at 0.80 GBP per USD becomes £7.80. Save rate direction, timestamp and source. Comparing it with another account at a different conversion time can introduce a currency effect unrelated to execution quality.

Build the account, pair and session ledger

MetaQuotes deal properties provide deal and order identifiers, execution timestamps, quantities, prices, commission, swap and fee fields. Separate commission operations also exist. Map your provider's records before adding columns; repeated order summaries and underlying deals must not both contribute the same charge.

Recommended review fields and decision rules
GroupKeep in the ledger
IdentityAccount alias, broker entity, account type, source/follower match, unique order and deal references
QuantityExact pair, direction, requested and filled units, contract specification, closed quantity and inventory match
TimeQuote, request and fill timestamps separately; original zone/offset, UTC value, precision and session rule
MoneyGross/net field definitions, actual signed charges, modeled attribution, original/reporting currencies and conversion evidence
CompletenessObserved, unavailable, pending or estimated status; missing reason; evidence reference and reconciliation difference

Choose the session rule before aggregating. For example, label entry fills within the fixed interval 12:00–16:00 UTC on a stated date as a review window; do not silently call it a universal London/New York overlap. Keep exit timestamps too. Date-specific local sessions need explicit time-zone and daylight-saving handling. Timestamp precision does not prove synchronized clocks.

Group by account, exact pair, direction and defined window. Divide summed eligible cost by summed eligible completed round-trip quantity, then multiply by 10,000. Our denominator counts opened-and-closed quantity once; turnover counts both legs and would halve the quoted rate. Never mix those conventions or average row rates without quantity weights.

Keep pairs separate: 10,000 EUR and 10,000 GBP are different exposures. Cross-pair summaries need a common monetary notional, stated valuation time and consistent conversion policy. Report financing separately when holding periods differ.

Review the reconciliation before interpreting a session

Keep one summary row per matched closed quantity, with a reference to the underlying fill records. A multi-fill entry or staggered exit needs those supporting records; an average-price cell alone cannot explain which inventory was closed. Do not match trades only because their symbols and approximate times look similar. Use the available source-to-follower relationship and order evidence, and mark uncertain matches.

Set a reconciliation tolerance appropriate to the export's currency precision. Compare the reconstructed result with the statement, retaining rounding differences rather than adjusting an unknown fee to make the totals fit. If an account-level charge cannot be assigned reliably, retain it in a separate unallocated balance and disclose its exclusion from pair or session totals.

Finally, inspect whether the sample contains different order types or unusually large trades. Quantity weighting prevents small rows from dominating a rate, but a large trade can still dominate the total. Show trade count, total quantity and the comparison window alongside the normalized result. A smaller measured cost is descriptive evidence for that sample, not proof of a permanent advantage.

Keep missing observations visible

An absent commission field is unknown, not zero. Use a blank numeric value with a missing reason; reserve zero for an observed zero. Exclude incomplete records from that metric's calculation while retaining them in coverage counts. Rejected requests have no filled-price cost, but still belong in the request and failure counts.

For example, if eight of ten completed trades have usable reference quotes, report quote coverage as 8/10 and calculate benchmark cost only for those eight. Also report their quantity share. Do not present that subset as the cost of all ten or discard inconvenient missing records.

Download the blank cost-ledger CSV to document the comparison. Its initial rows are unobserved placeholders with blank numeric cells, not zero-cost trades. It is a manual review template, not a claimed TradeCopier export. In actual_signed_* fields, record debits as negative and credits as positive; modeled cost is positive for adverse cost and negative for improvement. Use account aliases and redacted evidence references; never enter credentials. Reconcile the ledger before changing account settings, then compare repeated observations under the same rules. Normalization helps explain unequal outcomes; it cannot guarantee equal fills or profitable copying.

Quick answers

Frequently Asked Questions

Find answers to the most common questions about this topic.

How do I compare trading costs across copied accounts?

Use the same instrument, quantity convention, reporting currency and time window. Compare total eligible cost divided by total eligible filled or completed quantity, and report missing-data coverage. Raw dollar totals alone can mislead when account sizes differ.

Is one forex pip always worth $10?

No. Pip value depends on quantity, instrument specification and currency. In this guide's EUR/USD example, a 0.0001 USD-per-EUR pip on 25,000 EUR is $2.50 before any account-currency conversion.

Should I subtract spread from realized net profit?

Do not subtract it again when fill prices already include its effect. A midpoint-based spread and slippage model explains the difference from a benchmark; it is not an additional cash charge on top of an already-net result.

How is the average price of partial fills calculated?

Multiply each fill price by its filled quantity, sum those products and divide by total filled quantity. Preserve the individual deals and match closed quantities to their opening inventory rather than treating requested quantity as fully executed.

What is the difference between per-side and round-turn commission?

Per-side commission applies to one direction of execution, while a round-turn quote covers the stated opening and closing transaction. Check the schedule's quantity or notional basis and posting convention: some providers charge both legs upfront.

How should I compare accounts with different currencies?

Keep the original charge and currency, then convert using a documented rate direction, timestamp and source. Use the same comparison policy across accounts and separate conversion effects from execution-price differences.

How should missing commission or quote data be recorded?

Keep the numeric value blank with an unavailable or pending status and a reason. Do not replace missing values with zero. Report observation and quantity coverage, and exclude incomplete records only from metrics that require those fields.

Can session cost differences prove a broker or copier is better?

A limited sample cannot establish that. Compare matching instruments, sizes, order types, session definitions and benchmark quality over repeated observations. Preserve failures and missing records; price differences alone do not identify their cause.

Topics:forex cost attribution by account pair and session

Ready To Start Copy Trading?

TradeCopier supports MT4, MT5, cTrader, NinjaTrader 8, DXtrade, TradeLocker, MatchTrader and VertexFX. Verify your exact broker route before trading live. Explore trade copier pricing, copy configuration, and forex and futures trade copier.