Skip to main content
POST
Update personal risk settings.

Body

application/json

Fields a trader may change. Every one is optional: an absent field is left untouched, an explicit null clears it.

account_id
string<uuid>
required
auto_bracket_enabled
boolean | null
auto_bracket_stop_loss
number<double> | null
auto_bracket_take_profit
number<double> | null
auto_breakeven_trigger
number<double> | null
auto_stop_units
string | null

"dollars" or "ticks" — unit for breakeven trigger and trail distance.

blocked_symbols
string[] | null
bracket_mode
string | null
daily_loss_action
string | null
daily_loss_limit
number<double> | null
daily_loss_trailing
boolean | null
daily_loss_trailing_type
string | null
daily_profit_action
string | null
daily_profit_target
number<double> | null
lock_for_day
boolean | null

Freeze every setting until the next 17:00 CT session start. One-way. Superseded by lock_settings_for; kept so existing clients keep working.

lock_settings_for
string | null

How long to freeze every setting on this account. One-way — a lock cannot be lifted early, by the trader or by support. today — until the next session starts at 17:00 CT week — until the trading week closes on Friday at 16:00 CT

max_trades_per_day
integer<int32> | null
max_trades_per_week
integer<int32> | null
symbol_contract_limits
object | null
trailing_stop_distance
number<double> | null

Response

Updated personal risk settings. When settings are locked for the day (or firm-locked) the update is rejected with the same envelope: success=false and a code of SETTINGS_LOCKED.

Trader-owned risk configuration, plus the firm bounds it must respect and the live counters the UI renders.

account_id
string<uuid>
required
auto_bracket_enabled
boolean
required
auto_stop_units
string
required

Unit for the two values above: "dollars" (position P&L) or "ticks" (raw price distance on the contract's tick grid).

blocked_symbols
string[]
required
bracket_mode
string
required
daily_loss_action
string
required
daily_loss_fired_today
boolean
required

True when the loss limit already fired this trading day: positions were flattened and NEW entries are rejected until the next session. Editing the limit does not clear it.

daily_loss_trailing
boolean
required
daily_loss_trailing_type
string
required
daily_profit_action
string
required
daily_profit_fired_today
boolean
required

True when the profit target already fired this trading day. Unlike the loss limit, this does not gate new entries.

day_boundary_label
string
required

Human-readable boundary for day_clock, e.g. "17:00 CT" or "00:00 ET".

day_clock
string
required

Which clock this account's day-scoped limits and locks run on: cme_session rolls at the Globex open, continuous at the firm's configured 24/7 day boundary. The UI needs this to avoid promising a crypto trader a "next session" that never comes.

firm_policy
any
required
settings_locked
boolean
required
symbol_contract_limits
object
required
trades_this_week
integer<int32>
required
trades_today
integer<int32>
required
auto_bracket_stop_loss
number<double> | null
auto_bracket_take_profit
number<double> | null
auto_breakeven_trigger
number<double> | null
daily_loss_floor
number<double> | null

Equity level at which the limit fires — what a gauge should point at.

daily_loss_limit
number<double> | null
daily_loss_trailing_peak
number<double> | null

Session peak the trailing limit is measured from (trailing mode only).

daily_profit_target
number<double> | null
max_trades_per_day
integer<int32> | null
max_trades_per_week
integer<int32> | null
settings_locked_until
string | null

While set and in the future, no field above can be loosened.

trades_remaining_today
integer<int32> | null
trades_remaining_week
integer<int32> | null
trailing_stop_distance
number<double> | null