01What forex actually is
A forex (FX) pair quotes the exchange rate between two currencies. The price is how many units of the quote currency you need to buy one unit of the base currency:
EUR.USD = 1.0850→ 1 euro costs 1.0850 US dollars.GBP.JPY = 195.30→ 1 pound sterling costs 195.30 Japanese yen.
Buying EUR.USD means you think the euro will strengthen against the dollar. Selling means the opposite. There's no “real” price — it's always one currency relative to another.
The bot uses BASE.QUOTE form with a dot. Both legs must be 3-letter ISO 4217 codes. The dot distinguishes FX from crypto (BTC/USD), stocks (no separator), and futures (ROOT@YYYYMM).
FX on IBKR is leveraged spot, traded 23/5 (Sunday 5pm → Friday 5pm ET). Even a 1% move in EUR/USD is huge in pip terms; with 20× leverage, that's 20% of your account. Paper-trade first.
02Majors vs. minors vs. exotics
FX pairs are bucketed by liquidity. The buckets matter because spreads (your trading cost) scale roughly with them.
| Bucket | Examples | Typical spread |
|---|---|---|
| Majors | EUR.USD, USD.JPY, GBP.USD, USD.CHF, AUD.USD, USD.CAD, NZD.USD | 0.1–0.3 pips on IDEALPRO |
| Minors / crosses | EUR.GBP, EUR.JPY, GBP.JPY, AUD.JPY | 0.5–2 pips |
| Exotics | USD.MXN, USD.TRY, USD.ZAR, USD.BRL | 5–50 pips, big gaps |
EUR.USD alone is ~30% of total FX volume. Stick to majors when starting out. Exotics are where retail traders bleed slowly via spread.
03How FX leverage works (and the NFA caps)
FX is the most leveraged retail product. US regulation via the NFA caps it at:
- 50:1 on majors (2% margin).
- 20:1 on minors and exotics (5% margin).
Outside the US, brokers offer 100×, 500×, even 1000×. Same underlying market, just no regulator stopping you from blowing up.
IBKR's margin requirements for retail: ~2% on majors (50:1 effective), ~5% on minors. The bot ships with a much tighter cap via risk.max_leverage — even the Aggressive preset only goes to 2.0×, well below the 50× the broker would allow.
Concrete: $10,000 account, 50:1 leverage. You can control $500,000 of EUR.USD. A 1% adverse move on the pair = $5,000 loss = 50% of your account. That's why “blew up the FX account” is a meme.
04Pips and lot sizes
A pip is the smallest standard price increment. For most pairs it's the 4th decimal (EUR.USD: 1.0850 → 1.0851 = 1 pip). For yen pairs it's the 2nd decimal (USD.JPY: 150.05 → 150.06 = 1 pip).
A lot is the order size unit:
- Standard lot — 100,000 base-currency units.
- Mini lot — 10,000 units.
- Micro lot — 1,000 units.
Pip values for a standard EUR.USD lot: 1 pip = $10. For a micro lot: 1 pip = $0.10. IBKR allows fractional sizing via CashQty — you can trade arbitrary notional, not just whole lots.
The bot sizes positions in base-currency units directly:
base_units = target_dollars / entry_price
qty = int(base_units)
# Example: EUR.USD @ 1.0850, $5,000 budget
base_units = 5000 / 1.0850 ≈ 4608.3
qty = 4608 # 4,608 EUR position (~0.046 lots)05Spread + commission economics
Two costs eat your edge in FX:
- Spread — the gap between bid and ask. On IDEALPRO majors this is 0.1–0.3 pips.
- Commission — IBKR charges ~$2 per $100k traded on FX. Some retail brokers bundle commission into a wider spread (1–3 pips) instead.
Round-trip cost on a 1-standard-lot EUR.USD trade through IBKR: ~$4 commission + ~$2 spread = $6 total. Through a typical retail bucket-shop with a 2-pip spread: ~$20. The cheap broker matters more than the edge for most retail strategies.
06Carry trade + daily swaps
Holding a long position in a high-rate currency against a low-rate currency earns the rate differential daily. IBKR pays/charges this as a daily swap or rollover.
Classic example: long AUD/JPY during 2003–2007. AUD rates were ~6%, JPY near zero — carry earned ~5%/year just from the roll, on top of FX appreciation. The trade blew up violently in 2008 when carry unwound.
Mid-2024 USD/JPY pays roughly +5%/year for the long side, −5% for the short. The bot sees this as account interest, not price action. Triple swap on Wednesday — like all FX brokers, IBKR charges 3 days of swap on Wed-Thu holds to cover weekend settlement. Plan around it if scalping.
07Currency conversion for margin
IBKR posts margin in the base currency of the pair. Trading EUR.USD with a USD account means IBKR quietly converts USD → EUR to post margin, and back to USD when you close.
This is invisible at order time but shows up as a tiny line item on the monthly statement. Realized P&L on a non-USD-quote pair (e.g. EUR.JPY) is in the quote currency (JPY) and IBKR auto-converts at end of day. The audit DB logs the JPY realization, not the converted USD.
Stick to USD-quote pairs (EUR.USD, GBP.USD, USD.JPY, etc.) until cross-currency normalization lands. The sizing math is cleanest when the quote currency matches your account.
08Session times — when liquidity is best
FX trades 24/5 — Sunday 5pm ET to Friday 5pm ET. Not all hours are equal. The major sessions:
- Tokyo 7pm ET → 4am ET — JPY pairs most active.
- London 3am ET → noon ET — peak global liquidity, tightest spreads on EUR + GBP pairs.
- New York 8am ET → 5pm ET — USD-pair news risk concentrated here (NFP, FOMC, CPI).
- London/NY overlap 8am–noon ET — the tightest spreads of the week. Most retail strategies fire here.
Off-hours (Asian session for non-JPY pairs, late Friday NY) you'll see wider spreads and slower fills.
09Weekend gap risk
FX closes Friday 5pm ET and reopens Sunday 5pm ET. Anything that breaks Saturday gets priced in at Sunday open — typically as a gap. No stop-loss can save you from a gap; the broker just fills you at the new price.
Famous example: the SNB de-pegging the Swiss franc on Jan 15, 2015. EUR.CHF gapped 30% in seconds. Multiple retail brokers went bankrupt. Anyone holding a leveraged short CHF position lost their entire account and more.
Default bot behavior: closes all FX positions Friday at 4:30pm ET. Override with broker.forex.weekend_hold: true only if you understand the tail risk.
10Why FX is hard for retail
US-regulated FX brokers are required to publish quarterly profitability stats. The number is consistent year after year: roughly 70–75% of retail FX accounts lose money in any given quarter. Across a full year, the survival rate is even worse.
Why? A combination of structural headwinds:
- Leverage misuse. 50:1 lets a 2% adverse move wipe an account.
- Spread + commission compounds against you on every round-trip. Edge has to clear that bar before profits begin.
- News is everything. Carry, rates, central bank pivots — fundamental drivers dominate. Pure technical strategies struggle.
- It's zero-sum minus costs. Unlike stocks (positive long-term drift from earnings growth), FX has no built-in tailwind.
Practical advice for paper trading: pick one major (EUR.USD), use micro lots, target 0.5–1% account risk per trade, and run for a month before going live. The bot's default sleeve cap (risk.max_forex_exposure = 0.20) plus the no-bracket-orders quirk on IDEALPRO (the adapter downgrades brackets to plain LIMIT/MARKET) means you must manage stops via separate orders.