Every latency arbitrage trade starts with the same bet: the fast feed has already moved, and the trading account’s price is about to follow. Most of the time that is exactly what happens. But sometimes the fast feed turns around while your position is still open. When that happens, the trading account’s price is about to follow the fast feed again, this time against you, and the only question is how much of that move you sit through before something closes the trade.
Until now the answer was: whatever your S/L, T/P, trailing stop or Order Lifetime decided. Reverse signal diff is a new per-instrument parameter in the HFT Arbitrage Platform that adds one more exit. It closes the position the moment the fast feed signals the opposite direction, before the trading account’s price catches up. This guide explains how it works, which strategies support it, how to pick a value and how to read it in the log.
The problem: an exit that waits too long
A latency arbitrage entry is based on a difference: the fast feed leads the trading account by more than your Diff to open. A Buy opens because the fast feed is above the account’s price; a Sell opens because it is below. The strategy then manages the position with its hidden S/L and T/P, a trailing stop and Order Lifetime.
Those exits all look at what the trading account’s price has already done. None of them reacts to what the fast feed is doing now. If the fast feed drops sharply a few seconds after your Buy opened, the strategy already has the information that the account’s price is about to fall. A classic stop still waits for that fall to happen and then closes the trade at the worse price. Reverse signal diff closes it on the quote where the reversal first shows up.
What Reverse signal diff is
| Where | The instruments table, one value per instrument. In Latency the column sits right after Diff to open; in the 2 Legs Latency strategies, right after Diff to open 2. |
| Value | 0 or empty turns it off. This is the default, so instruments you already have keep trading exactly as before. |
| Units | The same as Diff to open: points, or percent for a Latency instrument whose Units is set to Percent. |
| Closes when | The difference in the direction opposite to the open position is greater than the value. |
How it works, step by step
- The same measurement as for entries. On every price update from the fast feed, the strategy measures the difference between the fast feed and the trading account, exactly as it does when it looks for entries. These are the numbers you already see in the Curr Buy Diff and Curr Sell Diff columns (Curr Diff 1 and Curr Diff 2, shown as Buy/Sell, in the 2 Legs Latency strategies).
- The opposite direction. For each open position it reads the difference in the opposite direction: the Sell difference for a Buy position, the Buy difference for a Sell position. With Reverse trading on, the directions swap, matching how the position was opened.
- Close on that quote. If that difference is greater than Reverse signal diff, the position is closed on that same quote. It does not wait for S/L, T/P, the trailing stop or Order Lifetime.
- A normal close. The close is done exactly the way the strategy closes a position when its hidden S/L or T/P is hit, so locking, virtual positions and the trade history all behave as usual.
A worked example: Latency on EURUSD
Diff to open is 3 and Reverse signal diff is 2, both in points.
- Curr Buy Diff reaches 4, above 3, so the strategy opens a Buy.
- A few seconds later the fast feed turns down and Curr Sell Diff shows 3. That is above 2, so the Buy is closed on that quote, before the trading account’s price drops after the fast feed.
- Without the parameter, the Buy would stay open until its S/L, T/P, trailing stop or Order Lifetime closed it.
Which strategies support it
Reverse signal diff works in the one-leg Latency strategy and in four of the 2 Legs Latency strategies. Because the two-account strategies handle positions differently, “close” means something slightly different in each:
| Strategy | Column after | Positions it watches | How the position is closed |
|---|---|---|---|
| Latency (latency arbitrage bot) | Diff to open | The open arbitrage position | Closed at market on the trading account. |
| 2 Legs Latency 1 | Diff to open 2 | Arbitrage positions not yet locked, and virtual positions | Open position: locked with an opposite position on the other account. Virtual position: a new position opens on the other account and the pair is locked again. |
| 2 Legs Latency 2 | Diff to open 2 | Arbitrage positions not yet locked, and virtual positions | Open position: locked with an opposite position on the other account. Virtual position: the closed leg is reopened on its account. |
| 2 Legs Latency 4 | Diff to open 2 | Arbitrage positions not yet locked | Locked with an opposite position on the other account. |
| 2 Legs Latency 5 | Diff to open 2 | Arbitrage positions not yet locked, and virtual positions | Open position: locked with an opposite position on the other account. Virtual position: the matching position on the other account is closed. |
A virtual position is what a 2 Legs Latency strategy holds after it closes one leg of a locked pair on an arbitrage signal; the log reports it as “Virtual order … was created”. Pairs that are already locked are not touched. Other strategies, including 2 Legs Latency 3 and 3 Legs Latency, do not have this parameter. If you are not sure which execution model fits your accounts, our guide to one-leg vs two-leg latency arbitrage explains the difference, and the live comparison of 2-Legs Latency 1 and 3-Legs shows both on real accounts.
Rules to know
- Per instrument. You can use it on some symbols and leave it off on others.
- Strictly greater. The difference must be greater than the value. A difference equal to the value does not close the position.
- One value, two accounts. In the 2 Legs Latency strategies one value covers both accounts. Each account is checked against its own difference: Curr Diff 1 for positions on the first account, Curr Diff 2 for the second.
- Minimum order lifetime. In Latency, Min. order lifetime applies to these exits the same way it applies to the S/L. Tick Ignore min lifetime for S/L to let them close inside the minimal lifetime too.
- Busy instrument. If an order for the instrument is still being processed, or Close all is running, the check waits for the next price update.
- Same conditions as the hidden S/L. Otherwise it works under the same conditions as the strategy’s hidden S/L.
Choosing a value
| Lower value | Higher value |
|---|---|
| Exits on smaller reversals and limits the loss on a reversal sooner. It also closes more trades early, including on ordinary quote noise. | Closes only on strong opposite signals. Smaller reversals are left to S/L, T/P and trailing, as before. |
A sensible start is your Diff to open, the signal strength the strategy already trusts for entries. Then watch the logs: lower the value if reversals still reach your S/L, and raise it if positions close on noise. Because every early exit costs a spread and commission, closing on noise is not free, so tune it per instrument rather than copying one number everywhere. Our article on beating slippage in latency arbitrage covers the cost side in more detail.
Advanced: a negative value closes the position as soon as the opposite difference rises above that level, that is, once the trading account has caught up with the fast feed. Positions can then close within moments of opening.
Reading it in the log
Each exit is logged with the difference that triggered it, so you can see exactly why a position closed. Example lines (cut at the end):
[Tick 1452] Closing order #12345678[EURUSD] ( Reverse signal: Sell difference 3.0 > 2.0, ... Locking order #12345690[EURUSD] ( Reverse signal: Buy difference 2.0 > 1.0, ... Locking virtual order #12345702[EURUSD] ( Reverse signal: Buy difference 1.5 > 1.0, ...
The first line comes from Latency, the other two from the 2 Legs Latency strategies. When you tune the value, these lines are the place to start: count how many positions closed on a reverse signal, and check whether the account’s price really did follow the fast feed afterwards.
FAQ
Does Reverse signal diff change anything if I leave it at 0?
No. 0 or an empty cell turns it off, and that is the default. Instruments you already have keep trading exactly as before.
Does it replace my S/L, T/P or trailing stop?
No. It is an extra exit checked on every fast-feed update. If the opposite difference never passes the value, the position is still managed by S/L, T/P, the trailing stop and Order Lifetime as usual.
What units does it use?
The same as Diff to open: points, or percent for a Latency instrument whose Units is set to Percent.
Which strategies support it?
Latency and the 2 Legs Latency 1, 2, 4 and 5 strategies. 2 Legs Latency 3, 3 Legs Latency and the other strategies do not have this parameter.
In 2 Legs Latency, is there one value per account?
No. One value covers both accounts, but each account is checked against its own difference: Curr Diff 1 for positions on the first account and Curr Diff 2 for the second.
What value should I start with?
Start with your Diff to open for that instrument. Lower it if reversals still reach your S/L, and raise it if positions start closing on ordinary quote noise.