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

# Live signals

> Arm a backtested strategy and AskFutures keeps running it forward in real time — entry, exit and contract-roll alerts in the app and by email.

A backtest tells you what a strategy *would* have done. **Arming** it tells you
what it is doing *now*: AskFutures keeps running the same strategy forward
against live market data and alerts you every time it produces a trade.

Arming is also the gateway to [Live trading](/live-trading/overview) — it only
ever trades a strategy that is armed.

<Info>
  A live signal is still hypothetical until you act on it. Past performance does
  not guarantee future results. Always test before you trade.
</Info>

## What arming actually does

There is **no separate alert engine**. AskFutures re-runs *your real backtest*
over the window from the arm date to now, and any trade in the result that is
newer than what it has already seen becomes a signal.

That is the whole mechanism, and it has a useful consequence: "would have
alerted" and "did alert" are the same computation. The live record and the
backtest cannot drift apart, because there is only one of them.

You get three kinds of signal:

<CardGroup cols={3}>
  <Card title="Entry" icon="arrow-right-to-bracket">
    *"ORB Long (MNQ): buy stop filled at 20,412.25 — 2026-09-01 09:31 CT."*
    Resting stop and limit entries are named as the order they were, and the
    level restated when the market gapped through it.
  </Card>

  <Card title="Exit" icon="arrow-right-from-bracket">
    *"ORB Long (MNQ): long exit (target hit) at 20,468.00 — 09:52 CT."* The
    reason is always named: stop hit, trailing stop hit, target hit, opposite
    signal, session close, time exit, bar-count exit, hold window expired.
  </Card>

  <Card title="Contract roll" icon="rotate">
    At roll-day settlement, an open position gets an instruction to liquidate
    the expiring contract and re-establish in the new front, with both closes
    quoted. Roll alerts are never delayed or held back.
  </Card>
</CardGroup>

## Arm a strategy

<Steps>
  <Step title="Run a backtest that passes">
    The **bell** on a strategy card only becomes active once that version has a
    passed backtest. Arming pins *that exact version* — later edits do not change
    what is being evaluated.
  </Step>

  <Step title="Press the bell">
    That's it. The strategy appears in the **Armed** tab of the notifications
    panel. Press the bell again to disarm.
  </Step>

  <Step title="Check your slots">
    The Armed tab shows **used / limit slots**. How many strategies you can keep
    armed at once depends on your
    [plan](/guides/manage-account-and-billing); arming past the limit is
    refused with an upgrade prompt rather than silently dropping something.
  </Step>
</Steps>

### What can't be armed

If AskFutures refuses, it tells you exactly why in plain language. The reasons
are all cases where the strategy cannot be evaluated live *the same way* it was
backtested — and refusing is better than arming something that would quietly
behave differently:

| Refusal                                                                    | What to do                                                            |
| -------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| The backtest hasn't passed, or the plan needs regenerating                 | Re-run the backtest.                                                  |
| Its indicators need more history to warm up than live evaluation allows    | Shorten the longest lookback window.                                  |
| It reads **intraday** data for a second symbol alongside the one it trades | Cross-symbol *daily* data is fine; intraday isn't supported live yet. |
| Its bar width doesn't divide evenly into a 24-hour day                     | Use a width that does, so live bars stay in phase with the backtest.  |
| It trades a synthetic **spread** expression                                | Live evaluation of spread legs isn't supported yet.                   |
| It rests a stop/limit entry *and* fills at the next bar's open             | Two different fill timings. Pick one and re-run the backtest.         |

<Note>
  A strategy with no exit rules at all is still armable — the same default hold
  window the backtest applied is applied live, so a position always has a way
  out.
</Note>

## When signals arrive

| Strategy timeframe | Evaluated                                                  | You hear about it                                         |
| ------------------ | ---------------------------------------------------------- | --------------------------------------------------------- |
| **Intraday**       | On every completed bar, a few seconds after the bar closes | Within about a minute of the bar that produced the signal |
| **Daily**          | Once per day, after that session's data lands              | Late afternoon, Central time                              |

**Late signals are marked, not pushed.** If a signal turns out to be more than
about 15 minutes old by the time it is recorded (a data outage that resolved,
say), it still gets its notification row — flagged as delayed — but no push and
no email. A stale alert that arrives looking fresh is worse than no alert.

<Warning>
  **Signals are not orders.** Unless you have [Live trading](/live-trading/overview) switched
  on for that strategy, nothing is placed at any broker. A signal tells you what
  the strategy did; acting on it is yours.
</Warning>

## Where signals show up

* **The Alerts tab** of the notifications panel, with an in-app push as each one
  lands.
* **Email**, if you leave **alert emails** on in Settings — it's a per-account
  toggle, and turning it off keeps everything in-app.
* **The Armed tab**, which is the live state rather than the history.

Every signal is delivered **exactly once**. Clearing a notification doesn't
resurrect it, and a restart mid-day doesn't re-send what you've already had.

## Reading the Armed tab

Each row shows the strategy, which version is armed, its symbol and timeframe,
and when it was last evaluated — plus, whichever applies:

* **The open position** — LONG or SHORT with entry price, the current stop,
  trailing level and target, and any time or bar-count deadline. These are the
  live numbers, updated as the strategy updates them.
* **The order it is asking you to place** — for a strategy that enters on a
  resting stop or limit: the order type, the level it is working at, the bar
  that level was read at, and how often it reprices.

| Badge        | Meaning                                                                                                                                                               |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Active**   | Evaluating and delivering.                                                                                                                                            |
| **Paused**   | Still evaluating, delivering nothing. Resuming does **not** replay what you missed — the strategy carries on from where it now is.                                    |
| **Error**    | AskFutures paused it after repeated evaluation failures on the strategy itself. Something in the plan is failing; re-run the backtest or simplify it, then arm again. |
| **Disarmed** | Not running. A version superseded by a newer arm offers a one-click re-arm.                                                                                           |

<Note>
  **Market-data outages never count against a strategy.** If the feed or a data
  snapshot is unavailable, the row is retried and left alone — no failure is
  recorded and you aren't notified. Only failures in the strategy's own
  evaluation accumulate toward an auto-pause.
</Note>

## Things worth knowing

<AccordionGroup>
  <Accordion title="Arming never replays history" icon="clock-rotate-left">
    The first evaluation after you arm establishes a baseline and emits nothing.
    Trades the strategy would have taken *before* you armed it can never alert —
    including after an outage, where the baseline moves forward rather than
    flooding you with stale catch-up alerts.
  </Accordion>

  <Accordion title="One armed version per strategy" icon="code-branch">
    Arming a newer version of a strategy disarms its predecessor automatically.
    You never have two versions of the same strategy alerting at once — and if
    that strategy was on [Live trading](/live-trading/turn-on-live-trading), it ends
    with the old version and must be switched on again for the new one.
  </Accordion>

  <Accordion title="Pausing versus disarming" icon="circle-pause">
    **Pause** keeps the strategy evaluating and its position tracked while
    silencing delivery — right for a week away. **Disarm** stops it and frees
    the slot.
  </Accordion>

  <Accordion title="A lapsed subscription disarms everything" icon="credit-card">
    Live signals are a subscription feature. If a subscription is cancelled,
    armed strategies are disarmed automatically. Re-arm them when it resumes —
    remembering that nothing is replayed for the gap.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Live trading" icon="robot" href="/live-trading/overview">
    Turn those signals into real orders at your broker.
  </Card>

  <Card title="Validate your strategy" icon="clipboard-check" href="/guides/validate-your-strategy">
    Worth doing before you arm anything.
  </Card>
</CardGroup>
