> ## Documentation Index
> Fetch the complete documentation index at: https://uncoded.ch/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Timeframes — The 15 Cadences

> Every strategy is anchored to a timeframe at the price node. The SignalEditor exposes 15 timeframes from 1-minute to 1-month — pick the one that matches your strategy's natural rhythm.

<Info>
  **Every SignalEditor strategy is anchored to a timeframe at the Price node.** The SignalEditor exposes 15 timeframes — `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `2h`, `4h`, `6h`, `8h`, `12h`, `1d`, `3d`, `1w`, `1M`. Pick the one that matches your strategy's natural rhythm.
</Info>

## The 15 timeframes

| Timeframe | Bars per day | Best for                                        |
| --------- | ------------ | ----------------------------------------------- |
| `1m`      | 1,440        | Scalping (rare in unCoded)                      |
| `3m`      | 480          | Fast-feedback strategies                        |
| `5m`      | 288          | Active operators                                |
| `15m`     | 96           | **The recommended default for most strategies** |
| `30m`     | 48           | Slower mean-reversion                           |
| `1h`      | 24           | Trend-follow setups                             |
| `2h`      | 12           | Patient mean-reversion                          |
| `4h`      | 6            | Multi-day swing trades                          |
| `6h`      | 4            | Less active operators                           |
| `8h`      | 3            | Asia/EU/US session marker                       |
| `12h`     | 2            | Half-day cycle                                  |
| `1d`      | 1            | Daily trend filter                              |
| `3d`      | 0.33         | Multi-day macro trend                           |
| `1w`      | 0.14         | Weekly cycle                                    |
| `1M`      | 0.03         | Monthly cycle (very slow)                       |

## Choosing a timeframe

<AccordionGroup>
  <Accordion title="Match the timeframe to your strategy's natural rhythm" icon="clock">
    A mean-reversion bounce setup typically resolves in hours. A `15m` timeframe captures the rhythm: enough granularity to see the bounce, slow enough to filter noise.

    A trend-follow strategy resolves in days/weeks. A `1h` or `4h` timeframe catches the trend without firing on every minor wiggle.

    A daily trend filter (used in multi-timeframe compositions) resolves over weeks. `1d` is the right choice.
  </Accordion>

  <Accordion title="Default for most operators: 15m" icon="seedling">
    `15m` is the right default for the vast majority of unCoded strategies. Granular enough to see meaningful moves, slow enough to filter intra-minute noise.

    If you're not sure, start with `15m`. Move slower (`1h`, `4h`) for trend-follow; faster (`5m`) only with deliberate reason.
  </Accordion>

  <Accordion title="Avoid `1m` and `3m` unless you have a specific reason" icon="triangle-exclamation">
    Sub-`5m` timeframes generate excessive signal volume. Most strategies built on these timeframes are noise-trading. The signal-to-noise ratio is poor.

    Reserve fast timeframes for HFT-style approaches that aren't in unCoded's design space anyway.
  </Accordion>

  <Accordion title="Daily and slower for filters, not entries" icon="calendar">
    `1d`, `3d`, `1w`, `1M` timeframes are excellent for **trend filters** in multi-timeframe compositions ("only allow buying when the daily trend is up").

    They're rarely the right entry timeframe alone — too few signals per year for meaningful sample size.
  </Accordion>
</AccordionGroup>

## Multi-timeframe composition

A common pattern: combine a slow timeframe filter with a faster timeframe entry.

* **Daily trend filter**: a strategy on `1d` price node that flips a config flag based on EMA(50) and trend direction.
* **15m entry trigger**: a separate strategy on `15m` price node, conditioned on the daily trend filter flag being set.

Together: enter on `15m` granularity only when the `1d` regime confirms tradability. See [Multi-Timeframe recipe](/strategies/recipes/multi-timeframe) for the full setup.

## Trigger mode interaction with timeframe

The trigger mode `once_per_bar_close` fires on each timeframe's bar close:

* `15m` strategy + `once_per_bar_close` = up to 96 firings per day.
* `1h` strategy + `once_per_bar_close` = up to 24 firings per day.
* `1d` strategy + `once_per_bar_close` = up to 1 firing per day.

Choose timeframe + trigger combination to match your strategy's natural firing rate.

## Practical timeframe selection by strategy type

<AccordionGroup>
  <Accordion title="Mean-reversion strategies" icon="circle-down">
    `15m` to `1h` typical. Fast enough to catch bounces, slow enough to avoid intra-bar noise.

    `5m` for very-active operators willing to manage higher signal volume.
  </Accordion>

  <Accordion title="Trend-following strategies" icon="arrow-trend-up">
    `1h` to `4h` typical. Captures multi-day to multi-week trends without firing on every minor cross.
  </Accordion>

  <Accordion title="Breakout strategies" icon="arrow-up-right-dots">
    `1h` to `1d` typical. Breakouts on faster timeframes are too noisy; on slower timeframes, they confirm but you've missed entry.
  </Accordion>

  <Accordion title="Volatility regime detection" icon="chart-mixed">
    `4h` to `1d` typical. Volatility regimes shift on multi-day timescales.
  </Accordion>

  <Accordion title="Daily trend filters" icon="calendar">
    `1d` only. The slowest meaningful timeframe for filter use.
  </Accordion>

  <Accordion title="Time-of-day filters" icon="clock-rotate-left">
    Independent of timeframe. Time-window conditions evaluate against current real time, not bar time.
  </Accordion>
</AccordionGroup>

## Best practices

<Tip>
  * ✅ **Default to `15m`** for first strategies — most-tested, most-documented.
  * ✅ **Use `1h` or `4h` for trend-following** — trend signals need slower timeframes to avoid whipsaws.
  * ✅ **Use `1d` for filter strategies in multi-timeframe compositions**.
  * ✅ **Avoid sub-`5m`** unless you have a specific high-frequency need.
  * ✅ **Match trigger mode to timeframe** — `once_per_bar_close` for predictable firing.
  * ✅ **One timeframe per strategy** — don't mix timeframes within one Price node.
  * ✅ **Compose multi-timeframe via separate strategies** — the multi-timeframe recipe pattern.
  * ✅ **Backtest on the same timeframe you'll run live** — different timeframes produce different behavior.
</Tip>

## What's next

<CardGroup cols={2}>
  <Card title="Indicators" icon="chart-line" href="/strategies/building-blocks/indicators">
    Indicators evaluated at the timeframe of the Price node.
  </Card>

  <Card title="Conditions" icon="filter" href="/strategies/building-blocks/conditions">
    Conditions on indicator outputs.
  </Card>

  <Card title="Triggers" icon="bolt" href="/strategies/building-blocks/triggers">
    Trigger modes that interact with timeframe boundaries.
  </Card>

  <Card title="Multi-Timeframe Recipe" icon="layer-group" href="/strategies/recipes/multi-timeframe">
    Combine multiple timeframes in one composed strategy.
  </Card>
</CardGroup>
