FIFO requirement

This FAQ contains information regarding upcoming First in First Out (FIFO) changes that OANDA is making to its order handling. This FAQ contains the following information:

1. What is FIFO?
2. Who does FIFO impact?
3. When are these FIFO changes going to occur?
4. What do these changes entail and how do they impact customers?
5. How does this affect/limit stop orders (Web & MT4) and entry orders (Mobile & Desktop)?
6. How does this affect MT4
7. Examples of what the FIFO changes will look like (market orders)

1. What is FIFO?

First in First Out (FIFO) is a forex trading requirement that complies with National Futures Association (NFA) regulation. It is a requirement that the first (or oldest) trade must be closed first if a customer has more than one open trade of the same pair and size.

In order to address this, changes will be implemented that will require all trades that have a take profit (TP), stop loss (SL), or trailing stop (TS) to be a unique size. After these changes are implemented, the only scenario in which two trades of the same currency pair can be the same size is if neither trade has a TP, SL, or TS.


2. Who does FIFO impact?

Please note, these changes will only impact customers who contract accounts from OANDA Corporation, this applies to both live and practice accounts. If you are not sure which division you contract with, please review our ‘What division will I contract with when I apply for an OANDA account’ FAQ.

3. When are these FIFO changes going to occur?

FIFO changes are planned to come into effect by August 16, 2019.

4. What do these changes entail and how do they impact customers?

After OANDA’s FIFO changes come into effect, any new trades entered on our fxTrade platforms which do not comply with the FIFO requirement will be prompted with a warning prior to execution that the SL, TP or TS may cause a FIFO violation.

For additional information, please email fifo@oanda.com.

Please see some examples below of what will happen when users attempt to complete orders that are not FIFO compliant.


5. How does this affect/limit stop orders (Web & MT4) and entry orders (Mobile & Desktop)?

Limit/stop and entry orders are checked for FIFO compliance during trigger of their conditional price rather than during the order entry. If a limit/stop or entry order triggers and violates OANDA’s FIFO requirement, then the order is cancelled.

Customers will be able to check if their order was cancelled due to a FIFO violation under their activity history on fxTrade or in their mailbox on the MT4 platform.


6. How does this affect MT4

MT4 will have the same restrictions as OANDA’s proprietary fxTrade platform. However, OANDA is unable to inform customers of these cancellations when they are running expert advisors (EAs), although they will still receive a message in their MT4 Mailbox.

 On August 16th, MT4 users will receive a message in their MT4 Mailbox whenever an order is cancelled due to OANDA’s FIFO requirement.
 
7. Examples of what the FIFO changes will look like (market orders)

7.1 fxTrade example 1
 
Step
Customer action
Trade activity
1

 
Buy 1,000 EUR/USD +SL @ 1.05
Trade 1: +1,000 EUR/USD +SL @ 1.05
2

 
Buy another 1,000 EUR/USD +SL @ 1.05
Trade 1: +1,000 EUR/USD +SL @ 1.05
Trade 2: +1,000 EUR/USD +SL @ 1.05
3

 
Customer receives notification that the trade has been cancelled
Trade 2 is cancelled because all trades with a SL, TP, or TS must have a unique size

7.2 fxTrade example 2
 
Step
Customer action
Trade activity
1

 
Buy 1,000 EUR/USD
Trade 1: +1,000 EUR/USD
2

 
Buy another 1,000 EUR/USD
Trade 1: +1,000 EUR/USD
Trade 2: +1,000 EUR/USD
3

 
Customer receives notification that the trade has been executed
Trade 2 is accepted because neither trade has a SL, TP, or TS


7.3 fxTrade example 3

 
Step
Customer action
Resulting open trades
1

 
Buy 1,000 EUR/USD
Trade 1: +1,000 EUR/USD
2

 
Buy another 1,000 EUR/USD
Trade 1: +1,000 EUR/USD
Trade 2: +1,000 EUR/USD
3

 
Add a SL to trade 1 +SL @ 1.05
Attempt to add SL is cancelled because any trade that has a SL, TP, or TS must be of a unique size

7.4 fxTrade example 4
 
Step
Customer action
Resulting open trades
1

 
Buy 1,001 EUR/USD +SL @ 1.05
Trade 1: +1,001 EUR/USD +SL @ 1.05
2

 
Buy 1,000 EUR/USD +SL @ 1.05
Trade 1: +1,001 EUR/USD +SL @ 1.05
Trade 2: +1,000 EUR/USD +SL @ 1.05
3

 
Sell 1 EUR/USD To partially close the position by 1 unit, in turn reduces the size of trade 1 from 1,001 to 1,000 units.
Trade 1: +1,000 EUR/USD +SL @ 1.05
Trade 2: +1,000 EUR/USD +SL @ 1.05

 
4

 
Customer receives notification that the trade has been cancelled
Attempt to partially close trade is cancelled because all trades with a SL, TP, or TS must have a unique size
5

 
Sell 2 EUR/USD
Trade 1: +999 EUR/USD +SL @ 1.05
Trade 2: +1,000 EUR/USD +SL @ 1.05
6

 
To partially close the position by 2 units, in turn reduces the size of trade 1 from 1,001 to 999 units.
Trade is accepted because all trades with a SL, TP, or TS have a unique size

7.5 MT4 example 1
 
Step
Customer action
Resulting open trades
1

 
Buy .01 EUR/USD
Trade 1: +.01 EUR/USD
2

 
Buy .01 EUR/USD
Trade 1: +.01 EUR/USD
Trade 2: +.01 EUR/USD
3

 
Buy .02 EUR/USD with Stop Loss @ 1.20
Trade 1: +.01 EUR/USD
Trade 2: +.01 EUR/USD
Trade 3: +.02 EUR/USD + SL @ 1.20
4

 
Buy .01 EUR/USD
Trade 1: +.01 EUR/USD
Trade 2: +.01 EUR/USD
Trade 3: +.02 EUR/USD + SL @ 1.20
Trade 4: +.01 EUR/USD
5

 
Buy .03 EUR/USD with Stop Loss @ 1.20
Trade 1: +.01 EUR/USD
Trade 2: +.01 EUR/USD
Trade 3: +.02 EUR/USD + SL @ 1.20
Trade 4: +.01 EUR/USD
Trade 5: +.03 EUR/USD + SL @ 1.20
6

 
Buy .04 EUR/USD
Trade 1: +.01 EUR/USD
Trade 2: +.01 EUR/USD
Trade 3: +.02 EUR/USD + SL @ 1.20
Trade 4: +.01 EUR/USD
Trade 5: +.03 EUR/USD + SL @ 1.20
Trade 6: +.04 EUR/USD
7

 
Buy .05 EUR/USD
Trade 1: +.01 EUR/USD
Trade 2: +.01 EUR/USD
Trade 3: +.02 EUR/USD + SL @ 1.20
Trade 4: +.01 EUR/USD
Trade 5: +.03 EUR/USD + SL @ 1.20
Trade 6: +.04 EUR/USD
Trade 7: +.05 EUR/USD
8

 
Buy .02 EUR/USD with Stop Loss @ 1.25 (or anywhere)
Trade is cancelled - All trades with a SL, TP, or TS must have a unique size. Trade 3 was .02.
9

 
Buy .02 EUR/USD with Take Profit @ 1.15 (or anywhere)
Trade is cancelled - All trades with a SL, TP, or TS must have a unique size. Trade 3 is at .02 with a SL.
10

 
Buy .01 EUR/USD with Stop Loss @ 1.10 (or anywhere)
Trade is cancelled - All trades with a SL, TP, or TS must have a unique size. Trades 1,2, and 4 were .01.
11

 
Buy .03 EUR/USD
Trade is cancelled - All trades without a SL, TP, TS must not have the same size as a trade with a SL, TP, and TS. Trade 5 is at .03 with a SL.
 
8. Examples of what the FIFO changes will look like (limit orders)

8.1 fxTrade example 1

 
Step
Customer action
Resulting open trades
1

 
Place a buy limit of 1,000 EUR/USD @ 1.15 AND +SL @ 1.05
Order 1 is accepted
2

 
Place another buy limit of 1,000 EUR/USD @1.10 +SL @ 1.05
Order 2 is accepted
3

 
Order 1 is triggered as the price reaches 1.15
Order 1 is accepted because there are no other trades with a SL, TP, or TS of the same size
4

 
Order 2 is triggered as the price reaches 1.10
Order 2 is cancelled because an existing trade of 1,000 units with a SL already exists

8.2 fxTrade example 2
 
Step
Customer action
Resulting open trades
1

 
Place a buy limit of 1,000 EUR/USD @ 1.15 and +SL @ 1.05
Order 1 is accepted
2

 
Place another buy limit of 1,000 EUR/USD @ 1.10 +SL @ 1.05
Order 2 is accepted
3

 
Order 1 is triggered as the price reaches 1.15
Order 1 is accepted because there are no other trades with a SL, TP or TS of the same size
4

 
Customer manually closes trade 1
Trade 1 closes
5

 
Order 2 is triggered as the price reaches 1.10
Order 2 is accepted because there are no other trades with a SL, TP or TS of the same size

Get more help