FIFO Rule
Also known as: first in first out, NFA FIFO rule, NFA Rule 2-43b, oldest-position-first rule
What is it?
The FIFO rule requires that when you hold several positions on the same symbol, the oldest one is closed first - first in, first out. It is a US regulatory requirement under NFA Rule 2-43b and it applies to every forex account held at a US-regulated broker. The rule is invisible until an automated strategy tries to close a specific position.
What the EA intends
- Opened #1 - buy 1.0 lot at 1.0850
- Opened #2 - buy 1.0 lot at 1.0865
- Opened #3 - buy 1.0 lot at 1.0880
- Sends: close ticket #3 at 1.0890
- Expects +10 pips, with #1 and #2 still open
What a FIFO broker does
- Close is applied to ticket #1, the oldest
- Booked result is +40 pips, not +10
- Still open: #2 and #3
- The EA's records say #1 and #2 are open
- Every later stop or exit acts on the wrong ticket
An expert advisor that opens three EUR/USD buys and later sends a close instruction for the third ticket will not get that ticket closed; the broker closes the first one instead, or rejects the order outright. The strategy's internal record of what is open then diverges from the account, and every decision it makes afterwards is based on a position map that is wrong. Because the same regulation also bans hedging, US accounts are netting accounts: opening a buy and a sell on one symbol leaves a single net position rather than two.
A bot written and tested offshore, on a hedging account where per-ticket closes work normally, can therefore pass every backtest and still misbehave from its first live day at a US broker.
Why it matters: US brokers must close your oldest position on a symbol first, which silently breaks any bot that closes trades by ticket ID rather than in the order it opened them.
A bot that cannot close the ticket it intends loses track of its own positions, so its stops and risk controls start acting on trades that are no longer open.
Real-world example
An EA holding three EUR/USD buys opened at 1.0850, 1.0865 and 1.0880 sends a close for the 1.0880 ticket; the US broker closes the 1.0850 one instead, booking a different result than the strategy recorded.
How SignalBots handles it
SignalBots issues one directional call per symbol, so a single-position workflow on a US netting account never needs a close-by-ticket instruction and never meets the FIFO conflict. See /risk-warning.
Pro tip
If your broker is US-regulated, hold one position per symbol and manage it by modifying its stop and target; close-by-ticket logic has nowhere to work.
Common pitfalls
Buying an EA developed for offshore hedging accounts and running it unchanged at a US broker, where its close-by-ticket and grid logic quietly fail.
Frequently asked questions
Which brokers does FIFO apply to?
Brokers regulated by the US NFA and CFTC, for accounts held by US residents. Offshore brokers and most EU, UK and Australian ones do not impose it, though an individual broker may choose to.
Does FIFO stop me taking partial profits?
No, but it changes which position is reduced. A partial close is applied to the oldest position first, so plan partials in the order the positions were opened rather than by which one you prefer to trim.
Is FIFO the same thing as a netting account?
They travel together but are different rules. Netting merges opposite trades on one symbol into a single position, while FIFO governs the order in which same-direction positions are closed.
Can I get around the FIFO rule?
Not at a US broker; it is a regulatory requirement rather than a broker setting. The workable adaptation is to design the strategy to hold a single position per symbol.
How do I know whether a bot is FIFO-safe?
Check whether it ever closes by ticket ID, opens multiple same-symbol trades, or hedges. Grid, martingale and hedging bots are the usual failures. Test on a US demo account first. Your capital is at risk.
Trading involves substantial risk of loss. Historical and backtested results do not guarantee future performance. Read the full risk warning.