# Rule modifiers reference

> All 7 rule modifiers in AlgoBarsX, each with its parameters, defaults, ranges and an example: every, skip, max, cooldown, once, within, from.

Source: https://algobarsx.com/docs/ref-modifiers/

### `every <ordinal> | every bar`

Act on every Nth trigger, or count every bar the condition holds.

```algobarsx
when crosses_above(close, ema(close, 20)) every 4th:
    buy risk: 1%, stop: 20 pips, target: 2R
```

Works in: strategy, alert. Since 1.0.

### `skip first <n>`

Ignore the first N triggers, then act on every trigger.

```algobarsx
when crosses_above(close, ema(close, 20)) skip first 3:
    buy risk: 1%, stop: 20 pips, target: 2R
```

Works in: strategy, alert. Since 1.0.

### `max <n> per <period>`

Cap actions per day, session, hour or week.

```algobarsx
when crosses_above(close, ema(close, 20)) max 2 per day:
    buy risk: 1%, stop: 20 pips, target: 2R
```

Works in: strategy, alert. Since 1.0.

### `cooldown <duration | n bars>`

Ignore triggers for a while after acting.

```algobarsx
when rsi(close, 14) < 30 cooldown 30m:
    notify "Oversold"
```

Works in: strategy, alert. Since 1.0.

### `once per bar`

In tick mode, act at most once per bar.

```algobarsx
when close > highest(high, 20)[1] once per bar:
    notify "Breakout"
```

Works in: strategy, alert. Since 1.0.

### `within sessions <name>, ...`

Only trigger inside the named sessions.

```algobarsx
when crosses_above(close, vwap()) within sessions london, new_york:
    buy risk: 1%, stop: 20 pips, target: 2R
```

Works in: strategy, alert. Since 1.0.

### `from <time> to <time> [zone]`

Only trigger inside a daily time window.

```algobarsx
when crosses_above(close, vwap()) from 08:00 to 11:00 Europe/London:
    buy risk: 1%, stop: 20 pips, target: 2R
```

Works in: strategy, alert. Since 1.0.
