Real forex trading costs — the full list beyond the spread
Paul started trading with 10,000 PLN, convinced the only real cost was the spread his broker advertised as "from 0.8 pips on EUR/USD." A year later his platform showed a trading profit of 1,850 PLN, but the money that reached his bank account once everything had settled was 1,050 PLN. The missing 800 PLN did not vanish in one disaster — it dissolved across seven separate layers of cost, two of which no one had ever mentioned. This is the full list and an honest tally of a trading year.
The spread — the layer everyone sees
The spread is the difference between the ask and bid price of the same instrument at the same moment — the most visible cost, and the most misread. At a market-maker broker the EUR/USD spread typically sits between 1.0 and 2.5 pips, which is 10–25 USD per standard lot. At an ECN broker it formally starts at 0.0 but in practice cycles between 0.1 and 0.3 pips in peak hours, alongside a separate commission. More important than the number is that a variable spread widens exactly where it hurts: after the New York close and around macro data. We work through the mechanics in our article on fixed versus variable spread.
Commission — an explicit cost, but only at one type of broker
In the ECN model, commission is charged separately from the spread, as a flat amount per full lot, round-trip. Market rates are typically 5–8 USD per lot at brokers regulated in Europe or Australia; a mini lot is ten times smaller, a micro lot a hundred times. Market makers charge no forex commission at all because they earn from a wider spread — that looks better in the "commission-free" advertising, but the arithmetic often runs the other way: a spread wider by 1 pip on a standard lot costs 10 USD, more than the 7 USD commission at an ECN. ECN becomes clearly cheaper above a few full lots per week. We compare both models in spread versus commission, and the execution differences in ECN versus market maker.
Overnight swap — the cost you see after the position closes
Swap is the daily charge or credit arising from the interest-rate differential between the two currencies in a pair. Any position not closed before the rollover moment (around 22:00 GMT) rolls into a new value date and incurs that day's interest cost. Buying EUR/USD economically means borrowing dollars to hold euros, so you settle the difference between the Fed and ECB rates. When the US rate sits clearly above the European one, a long position in EUR/USD generates a negative swap of a dozen-plus dollars a day on a full lot.
The detail the advertising never teaches: on Wednesdays the swap is charged at triple rate, because the interbank market settles on T+2 and a Wednesday position carries the weekend in advance. The consequence: a position held over a weekend can cost more in swap alone than the entire spread and commission combined. We dig into the rollover mechanism with a worked example in what is a forex swap. Traders who want to avoid the overnight swap charge can look into how an Islamic (swap-free) account works and where the catch is.
Slippage — the cost that shows up on no statement
Slippage is the gap between the price you clicked and the price at which the order filled. At a regulated broker with fair execution it should be statistically symmetric — sometimes in your favour, sometimes against — running 0.1–0.3 pips in quiet hours and washing out close to zero over time. During macro data or an unexpected central-bank statement it widens to 1–2 pips on a market order, and in extreme events (the Swiss National Bank decision in January 2015) to several dozen. If you log the click and fill price for two weeks and the result is consistently negative — worse every time, never better — that is not ordinary slippage but asymmetric execution, a warning sign. A method for measuring it is in what is slippage.
Converting your currency into the account currency, plus hidden fees
This is the layer most non-eurozone clients only discover after their first withdrawal. Most brokers keep accounts in EUR, USD or GBP while the client deposits in local currency, so a conversion happens somewhere. A direct transfer into a EUR account is converted at the bank's own rate, with a spread of around 1.5–2.5% over the midmarket — plus the broker's markup on that conversion, and micro-conversions of your result if you trade a pair in another currency. The workaround is to keep the account in USD and convert once a year through an online FX bureau, where the spread over the midmarket is only 0.2–0.4%.
A separate set is the hidden fees written into the terms almost nobody reads before depositing: an inactivity fee (a few to a few dozen euro a month after a dormant period), a withdrawal fee (zero on SEPA at solid brokers, dozens of euro plus a percentage charge at offshore ones) and small items such as Level II data feeds or guaranteed stop-loss charges. Each is small, but on an active account they stack up.
The 19% Polish capital-gains tax — the layer your broker does not mention
Every realised forex profit booked by a Polish tax resident is taxed at 19% on the PIT-38 form, due by April 30 of the following year. What counts is the net result — profits minus losses — for the whole calendar year, across every broker. Floating profit or loss on positions open on December 31 does not count; only closed trades are taxable. A Polish broker issues a PIT-8C statement automatically, so you copy the numbers across. A foreign broker does not: you download the history, convert each closed trade at the NBP mid rate of its close day and sum it in zloty — several hours of January work. Remember form ORD-U too if a foreign account balance exceeds the equivalent of 10,000 euro during the year.
"Choosing a properly regulated broker with low transaction costs is one of the most important decisions a trader makes — because every pip you give away in spread and commission is a pip you will not earn." — Kathy Lien, Day Trading and Swing Trading the Currency Market (Wiley, 2016)
A hypothetical annual tally — Paul's case
Back to Paul. Assume an EU-regulated ECN broker, six trades a week of 0.1-lot EUR/USD, around 300 trades a year. Spread and commission eat roughly 1,100 PLN. Converting the deposit through a bank rather than a bureau loses another 150 PLN, and small micro-costs — wider spreads in poor hours, occasional slippage on news, an annual withdrawal fee — add a few hundred more. Finally, 19% tax comes off the net profit. In this hypothetical tally, 1,850 PLN of gross profit leaves roughly 1,050 PLN in hand — so for every 100 PLN of profit, more than 40 PLN went to one cost layer or another. Had Paul chosen a market maker with a 1.5-pip spread instead of a cheap ECN, the same gross result would have turned into a loss. That is why the advertised spread is usually the smallest, not the largest, line of cost.
What to do — a cost checklist before you deposit
Before you wire the first transfer, run four steps. First, compare brokers not on the advertised spread but on the full matrix: spread, commission, typical swap for the pairs you trade, inactivity fee and the real cost and time of withdrawal. Second, choose the account currency where most of your result is generated (usually USD) and convert rarely and in bulk. Third, keep a journal with a separate "trade cost" column you compute by hand — after a quarter you will see whether costs stay within 30–40% of gross profit or have crept higher. Fourth, in January block an evening for PIT-38 (and ORD-U where it applies). The full broker-selection process is in the 2026 broker checklist, and a deeper guide to costs and execution sits in the choosing a broker section.
Sources & bibliography
-
European Securities and Markets Authority (ESMA) ESMA adopts final product intervention measures on CFDs and binary options · Limit dźwigni 30:1, ochrona przed ujemnym saldem, zakaz zachęt do handlu i zasada zamknięcia przy 50% depozytu — środki z 2018 roku kształtujące koszty i ryzyko handlu CFD w UE. www.esma.europa.eu ↗
-
Bank for International Settlements (BIS) Triennial Central Bank Survey of Foreign Exchange and OTC Derivatives Markets 2022 · Struktura globalnego rynku FX i modele egzekucji u brokerów detalicznych — kontekst dla pochodzenia spreadu i prowizji. www.bis.org ↗
-
Komisja Nadzoru Finansowego (KNF) Lista ostrzeżeń publicznych KNF · Rejestr ostrzeżeń przed podmiotami działającymi bez zezwolenia — narzędzie weryfikacji brokera przed wpłatą, zanim policzysz jego koszty. www.knf.gov.pl ↗
-
Ministerstwo Finansów PL Twój e-PIT — rozliczenie podatku dochodowego · Oficjalny serwis rozliczeń PIT (w tym PIT-38 dla zysków kapitałowych z forex u polskiego płatnika). www.podatki.gov.pl ↗
-
Narodowy Bank Polski (NBP) Kursy średnie walut obcych — tabela A · Kursy średnie używane do przeliczenia zysku w walucie obcej na PLN na potrzeby PIT-38. nbp.pl ↗
Frequently asked
How do I calculate the total cost of a single forex trade?
Add four components: spread plus commission plus swap times nights held plus expected slippage. Take a hypothetical 1 standard lot of EUR/USD held three nights at an ECN broker. Opening spread 0.2 pips, or roughly 2 USD. Commission 7 USD round-trip (open and close). Swap on a long position in EUR/USD at illustrative May 2026 rate differentials runs about -1.2 pips per night, or roughly 36 USD over three nights. Symmetric slippage tends towards zero over time. The total is about 45 USD — that is what you must earn just to break even. For a mini lot (0.1) divide everything by ten. Holding the same position over a weekend turns swap into the single largest cost line in the trade.
Does an account in a foreign currency always lower trading costs?
No. A foreign-currency account removes the per-trade conversion, but it shifts the cost to deposit and withdrawal. If you fund the account once a year and withdraw once a year, you are better off with a PLN account and the tiny 0.02–0.03 pip conversion baked into each trade than paying 1–1.5% bank spread both ways. If you trade large notional volume every day, a USD account at the broker plus a single bulk exchange through an online FX bureau (a spread of roughly 0.2–0.4% over the NBP midmarket) comes out clearly cheaper. The breakeven sits, illustratively, around 50,000 PLN of capital turnover per year. Below that stay in PLN; above it consider USD and convert rarely and in bulk.
Is the 19% Polish capital-gains tax paid on every profitable trade?
No. The Polish PIT-38 return is filed once a year, by April 30 of the following year, on a net basis. You sum all profits and subtract all losses for the whole calendar year, across every broker combined. Only that net figure, if positive, is taxed at 19%. A loss year produces zero tax owed and carries forward to offset profits for up to five years. A Polish broker (e.g. XTB) issues a PIT-8C statement automatically — you copy the numbers across. A foreign broker (IC Markets, Pepperstone) does not issue PIT-8C — you download trade history yourself, convert each closed trade at the NBP mid rate of the trade day and sum the result in zloty. Several hours of January work, but mandatory without exception.
What exactly is an inactivity fee and how do I avoid it?
It is a monthly fee the broker deducts from the client balance when no trade has been placed for a defined dormant period — usually three, six or twelve months. The rates are disclosed but buried in the small print and vary between brokers, typically from a few to a few dozen euro a month after the dormancy window. A small balance left untouched for a year can be almost wiped out. You have three ways out. First, place a single 0.01-lot micro-trade every few months — the cost is trivial and it resets the dormancy clock. Second, withdraw the balance and close the account if you genuinely no longer use it. Third, before you open the account, check the inactivity threshold in the terms and set a calendar reminder ahead of it.