> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://partner.ninjatrader.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://partner.ninjatrader.com/_mcp/server.

# Drawdown Modes

> Compare and configure trailing max drawdown modes.

## At a Glance

* Trailing max drawdown holds a loss floor below the account's high-water mark.
* There are three modes for trailing max drawdown (with their corresponding `trailingMaxDrawdownMode` value):
  * **End of Day** (`EOD`): uses a single floor and fails the account in one terminal liquidation. The high-water mark updates at the 4 PM CT close.
  * **Real-Time** (`RealTime`): uses a single floor and fails the account in one terminal liquidation. The high-water mark updates continuously.
  * **Stepped Down** (`SteppedRealTime` or `SteppedEOD`): uses a ladder of steps with a configurable cooldown in between. A breach flattens the account's positions, pauses trading for the cooldown, then resumes against a lower floor. The high-water mark updates continuously (`SteppedRealTime`) or at the 4 PM CT close (`SteppedEOD`). You can configure accounts to end in a **Daily terminal** (all steps used, then resets next session) or a **Permanent terminal** (the Fixed Kill Floor is breached, so it doesn't reset and the evaluation has failed).
* Configure an account's trailing max drawdown at account creation or by calling `updateUserAutoLiq`.

## Trailing Max Drawdown

Trailing max drawdown protects an account by tracking its high-water mark (the highest net liquidation value it reaches) and holding a loss floor a set distance below that mark. The `trailingMaxDrawdownMode` field controls how that floor behaves, across three modes: End of Day, Real-Time, and Stepped Down.

## Types of Trailing Max Drawdown Modes

| Mode         | `trailingMaxDrawdownMode`         | High-water mark updates                                          | On a breach                                    |
| ------------ | --------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------- |
| End of Day   | `EOD`                             | Once per session, at end of day (4 PM CT)                        | Single terminal liquidation                    |
| Real-Time    | `RealTime`                        | Continuously, including on unrealized profit                     | Single terminal liquidation                    |
| Stepped Down | `SteppedRealTime` or `SteppedEOD` | Continuously (`SteppedRealTime`) or at end of day (`SteppedEOD`) | Steps through cooldowns, then a terminal state |

Where **End of Day** and **Real-Time** treat drawdowns like a cliff, **Stepped Down** treats drawdowns like a staircase of smaller drops with timeouts in between.

**End of Day** and **Real-Time** differ only in how often the high-water mark refreshes. In **Real-Time**, the mark rises the moment the account reaches a new high, including on open, unrealized profit. In End of Day, the mark rises only once per session at the 4 PM CT close, so intraday gains don't tighten the floor until the day ends.

**Stepped Down** applies that same timing distinction on top of its step behavior: `SteppedRealTime` trails the mark continuously, and `SteppedEOD` updates the mark at the session boundary.

## How Stepped Down Works

Stepped Down replaces the single floor with a ladder of steps. Each step sits a configured distance below the current high-water mark and carries its own cooldown length.

The lifecycle for one step is:

1. The account's value falls through the current step's floor (the high-water mark minus the step distance).
2. The account's open positions are flattened, and trading is paused for that step's cooldown.
3. When the cooldown ends, trading resumes. The high-water mark re-anchors down to the account's current value, so the next step's floor sits below the new, lower mark.
4. The account advances to the next step, and the cycle repeats.

This continues down the ladder until the trader reaches a terminal state.

Between steps, the floor still trails the account's high-water mark upward as the account profits, continuously for `SteppedRealTime` or at the session close for `SteppedEOD`. A trader who recovers and sets a new high raises their own floor along with it.

## Terminal States

A Stepped Down account can end in one of two terminal states.

**Daily terminal.** When the trader exhausts every step in the ladder (the final step is tripped), the account enters `Liquidate Only` for the rest of the session: it can close positions but can't open new ones. The account resets at the next session boundary with a fresh ladder.

**Permanent terminal.** The Fixed Kill Floor is an absolute dollar floor on the account's value, set independently of the step ladder. Unlike the step floors and the trailing max drawdown, which trail the high-water mark upward as the account profits, the Fixed Kill Floor is a fixed amount that doesn't move. If the account's value ever reaches it, the account enters `Liquidate Only` permanently, the evaluation has failed, and the account does not reset at the next session. An administrator must intervene to reactivate the account.

Which terminals an account has depends on its configuration:

* **Limited ladder with a Fixed Kill Floor:** both terminals.
* **Limited ladder without a Fixed Kill Floor:** the daily terminal only. The Fixed Kill Floor is optional, so without it the account resets each session and never permanently fails on the stepped drawdown alone.
* **Unlimited ladder:** the permanent terminal only. It has no terminal step, so it repeats until the Fixed Kill Floor, which it requires.

The Fixed Kill Floor is always evaluated first. If a single move crosses both a step floor and the Fixed Kill Floor, the account goes to the permanent terminal state, not a step cooldown.

`trailingMaxDrawdown` still applies as a separate failure condition in Stepped Down mode. A cooldown's own liquidation can breach `trailingMaxDrawdown` and fail the evaluation, even on a limited ladder with no Fixed Kill Floor, because flattening positions at market during a cooldown can fill at unpredictable prices and push the account's value down further. To leave room for this, set `trailingMaxDrawdown` comfortably above the ladder's total distance rather than at the minimum the validation allows.

## Configuration

Trailing max drawdown is set per account by an organization administrator. Set it at account creation (recommended) with the `postTradeRisk` object on [`createEvaluationAccounts`](/eval/api/rest-api-endpoints/users/create-evaluation-accounts), or change it after creation by calling [`updateUserAutoLiq`](/eval/api/rest-api-endpoints/risks/update-user-auto-liq).

The configuration uses these fields:

| Field                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `trailingMaxDrawdownMode`      | Set to `EOD`, `RealTime`, `SteppedRealTime`, or `SteppedEOD`.                                                                                                                                                                                                                                                                                                                                                                 |
| `steppedCooldown`              | The step ladder. Contains `steps` and, for a limited ladder, `terminalStep`.                                                                                                                                                                                                                                                                                                                                                  |
| `steppedCooldown.steps`        | An ordered array of cooldown steps. Each step has a `stepNumber` (1-based), a `stepDistance` (dollar distance below the high-water mark), and `cooldownMinutes` (5 to 240).                                                                                                                                                                                                                                                   |
| `steppedCooldown.terminalStep` | The final rung of a limited ladder. Has a `stepNumber` and `stepDistance` but no cooldown. Tripping it triggers the daily terminal.                                                                                                                                                                                                                                                                                           |
| `steppedUnlimited`             | When `true`, the ladder repeats a single step indefinitely instead of ending in a terminal step. Requires a `fixedKillFloor`.                                                                                                                                                                                                                                                                                                 |
| `fixedKillFloor`               | The absolute dollar floor for the permanent terminal state. Optional for a limited ladder, required when `steppedUnlimited` is `true`. Set it below the account's current net liquidation value. A floor above that level immediately puts the account in `Liquidate Only`. This happens when `initialBalance` is set below the floor at creation, or when a later update raises the floor above the account's current value. |
| `trailingMaxDrawdown`          | The maximum loss below the high-water mark before liquidation. The core setting for `EOD` and `RealTime`, and required for a limited stepped ladder.                                                                                                                                                                                                                                                                          |
| `trailingMaxDrawdownLimit`     | For `EOD` and `RealTime` only: the equity level at which the floor stops trailing upward. Can't be set in a stepped mode.                                                                                                                                                                                                                                                                                                     |

For **End of Day** and **Real-Time**, you set only `trailingMaxDrawdownMode` and `trailingMaxDrawdown`, and optionally `trailingMaxDrawdownLimit`. The `steppedCooldown`, `steppedUnlimited`, and `fixedKillFloor` fields, and the examples below, apply only to the Stepped Down mode.

### Example: A Limited Ladder with Uniform Steps

This `postTradeRisk` configuration gives an account three \$1,000 cooldown steps of 30 minutes each, a final terminal step, and a Fixed Kill Floor:

```json
{
  "trailingMaxDrawdownMode": "SteppedRealTime",
  "trailingMaxDrawdown": 5000,
  "fixedKillFloor": 44000,
  "steppedCooldown": {
    "steps": [
      { "stepNumber": 1, "stepDistance": 1000, "cooldownMinutes": 30 },
      { "stepNumber": 2, "stepDistance": 1000, "cooldownMinutes": 30 },
      { "stepNumber": 3, "stepDistance": 1000, "cooldownMinutes": 30 }
    ],
    "terminalStep": { "stepNumber": 4, "stepDistance": 1000 }
  }
}
```

### Example: Varying Steps

Steps don't have to be uniform. You can set a different distance and cooldown on each one, for example, a short first cooldown that lengthens as the trader draws down:

```json
{
  "trailingMaxDrawdownMode": "SteppedRealTime",
  "trailingMaxDrawdown": 5000,
  "steppedCooldown": {
    "steps": [
      { "stepNumber": 1, "stepDistance": 500, "cooldownMinutes": 5 },
      { "stepNumber": 2, "stepDistance": 600, "cooldownMinutes": 15 },
      { "stepNumber": 3, "stepDistance": 700, "cooldownMinutes": 45 }
    ],
    "terminalStep": { "stepNumber": 4, "stepDistance": 500 }
  }
}
```

### Example: Unlimited Steps

When `steppedUnlimited` is `true`, provide a single step and a `fixedKillFloor`, and omit `terminalStep` and `trailingMaxDrawdown`. The step repeats until the Fixed Kill Floor is reached:

```json
{
  "trailingMaxDrawdownMode": "SteppedRealTime",
  "steppedUnlimited": true,
  "fixedKillFloor": 45000,
  "steppedCooldown": {
    "steps": [
      { "stepNumber": 1, "stepDistance": 1000, "cooldownMinutes": 30 }
    ]
  }
}
```

Once an account triggers its first cooldown of the session, its Stepped Down configuration is locked until the next session. Set the configuration before the account begins trading, or plan changes for a session in which the account hasn't yet triggered a cooldown.

## Constraints and Rejection Rules

The server validates a Stepped Down configuration when you set it, and rejects the whole request if any rule fails.

For every Stepped Down configuration:

* The step numbers must run 1 through N with no gaps or duplicates.
* Every `stepDistance` must be greater than 0.
* Every `cooldownMinutes` must be between 5 and 240.
* `trailingMaxDrawdownLimit` can't be set.

For a **limited** ladder (`steppedUnlimited` omitted or `false`):

* `steps` must contain at least one cooldown step, and `terminalStep` is required. A single-rung ladder is rejected. Use a standard `RealTime` or `EOD` mode when you want a single non-stepped floor.
* `terminalStep.stepNumber` must be one greater than the last cooldown step.
* `trailingMaxDrawdown` is required.
* The total distance of all steps plus the terminal step must not exceed `trailingMaxDrawdown`.

For an **unlimited** ladder (`steppedUnlimited` is `true`):

* `steps` must contain exactly one step.
* `terminalStep` must be omitted.
* `fixedKillFloor` is required.

## Worked Examples

These examples use `SteppedRealTime` and assume the account draws down without setting new highs between steps.

### Multi-Step, Reaching the Daily Terminal

Configuration: three \$1,000 cooldown steps, a \$1,000 terminal step, a `trailingMaxDrawdown` of \$5,000, and a Fixed Kill Floor of \$44,000. The account starts at \$50,000.

1. The high-water mark is \$50,000, so the step 1 floor is \$49,000. The account falls below \$49,000: positions flatten and a 30-minute cooldown starts.
2. After the cooldown, the mark re-anchors to about \$49,000, so the step 2 floor is now about \$48,000. The account falls below it: flatten, 30-minute cooldown.
3. After the cooldown, the mark re-anchors again and the step 3 floor drops to about \$47,000. The account falls below it: flatten, 30-minute cooldown.
4. All three cooldown steps are now used. The terminal step floor is about \$46,000. The account falls below it, and the daily terminal triggers: the account is locked in `Liquidate Only` for the rest of the session and resets with a fresh ladder next session.

Throughout, the account stayed above the \$44,000 Fixed Kill Floor, so the outcome is a daily terminal, not a permanent one.

### Unlimited Steps, Reaching the Fixed Kill Floor

Configuration: `steppedUnlimited` is `true`, one \$1,000 step of 30 minutes, and a Fixed Kill Floor of \$45,000. The account starts at \$50,000.

1. The step floor starts at \$49,000. Each time the account falls below the current floor, it flattens, serves a 30-minute cooldown, re-anchors down, and resumes against a floor \$1,000 below the new mark.
2. The step repeats this way as the account grinds down, past about \$49,000, then \$48,000, then \$47,000, and so on. There's no terminal step, so the ladder never ends on its own.
3. As the account approaches \$45,000, the Fixed Kill Floor is reached first, since it's checked before the step floor. The permanent terminal triggers: the account is locked in `Liquidate Only`, the evaluation has failed, and it does not reset next session.

## Next Steps

* [Post-Trade Risk](/eval/overview/prop-firm-management/risk-management/post-trade-risk): configure the full set of post-trade risk thresholds, including the trailing max drawdown mode.
* [Risk Management Setup](/eval/overview/prop-firm-management/risk-management-setup): assign post-trade risk at account creation or afterward.