> ## 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.

# Sessions, versions and artifacts

> How a chat session holds your strategies, and why every edit creates a new, non-destructive version you can step back to and compare.

Editing a strategy never overwrites it. Every change creates a **new version** in
a chain, the old one stays exactly as it was, and each version keeps its own
backtest results. So you can always step back, compare, and pick the version you
want — nothing you tried is ever lost.

<Note>
  Three words, plain meanings:

  * A **session** is the chat/workspace you're working in.
  * A **strategy** is one trading idea inside it.
  * A **version** is one saved snapshot of that strategy. Edits stack up as
    versions; they don't replace each other.
</Note>

## How they nest

```mermaid theme={null}
flowchart TD
  SESS["Session<br/>your chat workspace"] --> STRAT_A["Strategy A<br/>ORB on MNQ"]
  SESS --> STRAT_B["Strategy B<br/>RSI fade on ES"]
  STRAT_A --> V1["v1"]
  V1 --> V2["v2<br/>added ATR stop"]
  V2 --> V3["v3<br/>longs only"]
```

A session can hold several strategies. Each strategy is a chain of versions,
newest at the tip. When you ask for a change, AskFutures branches a fresh version
off the latest one — your previous work stays put.

## The session — your workspace

A **session** is the conversation and everything in it: the strategies you've
built, their versions, and the backtests you've run. It's where you describe
ideas, [run backtests](/concepts/backtesting), and
[iterate](/guides/iterate-and-refine). Start a new session when you want a clean
slate; stay in one to keep related work together.

## Versions — non-destructive editing

When you refine a strategy — *"add a 1.5× ATR stop"*, *"make it longs only"*,
*"switch to 5-minute bars"* — AskFutures doesn't edit in place. It creates a
**new version** built from the current one and leaves the old version untouched.

<CardGroup cols={2}>
  <Card title="Nothing is overwritten" icon="clock-rotate-left">
    Each edit is a new snapshot. The version before it stays exactly as it was,
    backtest and all.
  </Card>

  <Card title="Step back any time" icon="arrow-left">
    Don't like where an edit went? Go back to an earlier version and branch from
    there instead.
  </Card>

  <Card title="Compare side by side" icon="code-compare">
    Because every version keeps its own numbers, you can line up v2 against v3
    and see what the change actually did.
  </Card>

  <Card title="Results stay attached" icon="paperclip">
    A backtest belongs to the exact version it ran on — change the rules and you
    get a new version with its own fresh results.
  </Card>
</CardGroup>

<Warning>
  **"Version" is overloaded — don't confuse the two.** In these docs, *version*
  means a saved snapshot of **your** strategy in its edit chain (v1 → v2 → v3).
  It has nothing to do with the AskFutures product release or any internal
  engine version. When we say "step back a version" or "compare versions," we
  always mean your own strategy's history.
</Warning>

## Results stay pinned to their version

This is what makes comparing trustworthy: a backtest is tied to the **exact
version** of the rules it ran on. Change anything — an indicator period, a stop,
the symbol, the date window — and that's a new version with its own,
freshly-computed results. You never see numbers from one set of rules sitting
next to a different set of rules by accident.

Because the [engine is deterministic](/concepts/is-the-backtest-real), the same
version over the same data always reproduces the same numbers — so a side-by-side
comparison is apples to apples.

<Info>
  Past performance does not guarantee future results. Always test before you trade.
</Info>

## The lifecycle of a version

```mermaid theme={null}
flowchart LR
  D["Defined<br/>rules written"] --> B["Backtested<br/>replayed on real data"]
  B --> S["Saved<br/>kept in the chain"]
  S -.edit.-> D
```

<Steps>
  <Step title="Defined">
    You describe the idea; AskFutures turns it into precise rules and shows you
    the [strategy card](/concepts/strategies) with its **Strategy Flow** chart.
    Now there's something concrete to test.
  </Step>

  <Step title="Backtested">
    The deterministic engine replays the rules over real historical prices and
    reports the results — P\&L, win rate, drawdown, the trade list — pinned to
    this version.
  </Step>

  <Step title="Saved">
    The version takes its place in the chain. Refine it and you start the loop
    again on a fresh version, with the saved one still right there to return to.
  </Step>
</Steps>

## Common questions

<AccordionGroup>
  <Accordion title="Will editing a strategy lose my earlier work?" icon="shield-check">
    No. Editing is non-destructive — every change is a new version, and the one
    before it stays exactly as it was, including its backtest results.
  </Accordion>

  <Accordion title="Can I go back to a version I liked better?" icon="arrow-left">
    Yes. Step back to any earlier version and continue from there. Branching off
    an older version doesn't disturb the newer ones.
  </Accordion>

  <Accordion title="If I re-run an old backtest, will the numbers change?" icon="equals">
    Not on their own. The engine is deterministic, so the same version over the
    same data reproduces the same numbers. The market data does refresh daily,
    so re-running with a relative period like "last 1 year" can include newer
    bars — see [where data comes from](/concepts/where-data-comes-from).
  </Accordion>

  <Accordion title="Can one session hold more than one strategy?" icon="layer-group">
    Yes. A session is your workspace; it can hold several strategies, each with
    its own version chain.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Version & compare" icon="code-compare" href="/guides/version-and-compare" />

  <Card title="Iterate & refine" icon="arrows-rotate" href="/guides/iterate-and-refine" />

  <Card title="Strategies" icon="diagram-project" href="/concepts/strategies" />

  <Card title="Where data comes from" icon="database" href="/concepts/where-data-comes-from" />
</CardGroup>
