# Momentum Rotation

> Momentum Rotation is a strategy that trades EURUSD, GBPUSD, USDJPY and AUDUSD on 4-hour bars. It holds at most 1 open trade.

Source: https://algobarsx.com/docs/ex-24-momentum-rotation/

```algobarsx
strategy "Momentum Rotation"
    markets: EURUSD, GBPUSD, USDJPY, AUDUSD
    bars: 4h
    max_open: 1

input lookback = 30
input threshold = 2%

when bar.confirmed and trades.open(tag: "rotation").len == 0:
    for s in [EURUSD, GBPUSD, USDJPY, AUDUSD]:
        if roc(close_of(s), lookback) > threshold:
            buy market: s, risk: 0.5%, stop: 30 pips, target: 2R, tag: "rotation"
            break

when trades.open(tag: "rotation").len > 0 and roc(close, lookback) < 0:
    close_all tag: "rotation"
```
What this script says

Momentum Rotation is a strategy that trades EURUSD, GBPUSD, USDJPY and AUDUSD on 4-hour bars. It holds at most 1 open trade.

You can change 2 inputs: `lookback` (default 30) and `threshold` (default 2%).

When the bar has closed and the number of open trades tagged "rotation" is 0, it goes through each `s` in EURUSD, GBPUSD, USDJPY and AUDUSD and checks whether the rate of change of the close of `s` over `lookback` bars is above `threshold` and, if so, buys `s` at market, risking 0.5% of the balance, with a stop 30 pips from the entry, with a target 2R from the entry and tagged "rotation"; it also stops the loop.

When the number of open trades tagged "rotation" is above 0 and the rate of change over `lookback` bars is below 0, it closes all trades tagged "rotation".
