High-impact news, such as a central bank decision or the US jobs report, can move a market further in a minute than in a normal hour, and spreads widen just before the figure comes out. Since 2 October at 18:05 UTC, Project Iris prepares open trades for these moments gradually: the closer the release, the tighter their break-even and trailing distances. This post explains how that tightening builds, what happens when several events line up, and what Iris deliberately does not do.
Which news counts
Iris uses the same economic calendar that its entry rules already read, and only events marked high impact count. Each event belongs to a currency. An open trade is affected when its instrument carries that currency. For example, US news affects US indices, gold priced in dollars, and dollar pairs.
How the tightening builds
- Well before the release: nothing changes.
- As the release approaches: break-even and trailing distances shrink gradually, a little more with every minute, instead of jumping from normal to tight all at once.
- In the final minutes and around the release: distances are at their tightest.
- Shortly after the release: distances return to normal.
A shorter distance means break-even arms sooner and the trail stays closer to price, so a trade that is already in profit keeps more of that profit if the release goes against it.
The first version of this protection went live on 30 September at 23:37 UTC. It was a single fixed step. The gradual version replaced it so that a trade is not jolted from normal to tight in one moment.
When several things line up
Sometimes two high-impact releases come out at the same time, or a release falls close to a market open. In that case the effects combine:
- Two releases at once tighten more than one.
- Several at once tighten further still, down to a floor that the tightening never passes.
- A market open also counts, but more lightly than a news release. The opens that count are COMEX for gold, New York for US indices, London for the UK, German and French indices, and Tokyo for the Japanese index. Market opens do not affect FX.
- A release next to a market open tightens more than either would alone.
Market opens only tighten distances. Unlike news releases, they do not stop recovery legs from being added.
A walk through one release
As an illustration, take a US jobs report and an open gold trade priced in dollars.
- Well before the release. Distances are normal.
- As it approaches. The trade's break-even and trailing distances shrink step by step.
- In the final minutes. The tightening is at its strongest. As before, no new trades open in the affected instruments. If the trade is already in profit by more than its costs, its stop moves to just behind the current price, never below the entry. A small move against the trade then closes it with a small profit, instead of the trade riding the release.
- The figure comes out. Stops keep following price at the tight distances.
- Shortly after. Distances return to normal.
What never changes
- Iris never closes a trade just because news is coming. It only moves stops, and only in the trade's favour.
- A trade that is under water keeps its stop. Its stop is not tightened towards a loss, and no new recovery leg is added during the event window.
- The family profit trail gives back less. While a family has an open trade in an affected instrument, the trail that protects that family's combined open profit allows a smaller give-back than usual.
What we decided against
We also looked at freezing every stop in the last minutes before a release, because spreads widen sharply then. We decided against it: stops keep moving through releases. What protects a trade from those wide spreads is the rule described in How a stop moves on a winning trade: a brief spread spike is ignored.
Since 4 October: smaller entries before news
Since 4 October at 13:51 UTC, a gentler version of the same tightening also applies to new entries: the closer a high-impact release for one of the instrument's currencies, the somewhat smaller a new trade. It only ever makes a trade smaller. The pause on new trades in the final minutes before a release is a separate rule and stays as it was.
The tightening as a small program
The idea behind "gradual, and more when several things line up" is short enough to read as code. This sketch is an illustration of the shape. The real ramp, its length and its floor are not published, and it is not the engine's source code.
def event_strength(minutes_to_release, ramp_minutes):
"""0.0 = normal distances, 1.0 = tightest. Rises a little every minute."""
if minutes_to_release > ramp_minutes:
return 0.0
return 1.0 - max(0.0, minutes_to_release) / ramp_minutes
def distance(normal, floor, strengths):
"""strengths: one value per high-impact release, lighter ones for market opens."""
total = min(1.0, sum(strengths)) # several at once tighten more...
return max(floor, normal * (1.0 - total)) # ...down to a floor, never past it
def tightened_stop(trade, price, new_distance, costs):
if trade.profit <= costs:
return trade.stop # under water: the stop is not touched
candidate = price - new_distance if trade.side == "buy" else price + new_distance
return next_stop(trade, candidate) # only ever in the trade's favour
The last function carries the rule from "What never changes": a trade that is under water keeps its stop, and a stop only moves in the trade's favour. next_stop is the same ratchet shown in How a stop moves on a winning trade.
What you need to do
Nothing. The calendar, the tightening and the market opens are all handled by the engine.
Notes
- The gradual tightening went live on 2 October 2026 at 18:05 UTC. The single-step version it replaced went live on 30 September 2026 at 23:37 UTC.
- The walk-through is an illustration, not a record of a particular trade.
- Internal change references: #484 (caution before high-impact news), #490 (gradual, stacked, open-aware tightening), #489 (brief spread spikes), #492 (entry sizing before news, live 4 October 2026 at 13:51 UTC).