Risk & Circuit Breakers

10 settings on this page.

VIX Kill Switch Level

Setting key
kill_switch_vix_level
Default
35

What it does

When the VIX index rises above this level, ACondor immediately halts all new entries for the remainder of the session. Existing positions continue to be managed. The kill switch only blocks new trades. The VIX level is checked at the start of each cycle. This is a circuit breaker, not an auto-close: the bot never automatically closes open positions into a spike, because closing into extreme vol locks in losses that defined-risk structures may recover from as vol normalizes.

When to change it

The default of 35 corresponds to elevated but not crisis VIX levels. The long-term average is around 19, and levels above 30 have historically coincided with significant market stress events. Lower values (25 to 30) are more conservative. Raising above 40 means the bot may keep entering during genuine market crises.

Safe range

25 (conservative) to 50 (permissive). Values below 20 would halt the bot during normal elevated-vol periods that are actually good for premium selling.

Example

Setting kill_switch_vix_level to 30 means a VIX print of 31 halts new entries for the rest of the day, even if the bot otherwise has open buying power.

Max Daily Loss Dollars

Setting key
max_daily_loss_dollars
Default
-$500

What it does

Daily P&L floor in dollars. When the day's cumulative P&L (realized closed-trade P&L plus unrealized P&L on open positions) drops below this number, new entries halt for the rest of the trading session. Management cycles still run. The daily window resets at midnight ET.

When to change it

A reasonable starting point is 1% of account NLV. Leave unset (None) if you prefer to use max_daily_loss_pct only. Whichever limit fires first wins.

Safe range

Any negative dollar value. -$500 on a $50,000 account is 1% of NLV, a reasonable floor.

Example

$50,000 account. Set to -$750. If unrealized loss reaches $750 by noon, no new entries fire that afternoon, but existing positions are still managed and closed per their own rules.

Max Daily Loss %

Setting key
max_daily_loss_pct
Default
-5%

What it does

Daily loss floor as a percentage of net liquidation value. Works alongside max_daily_loss_dollars: whichever fires first halts new entries for the session. The default -5% is intentionally loose; most users tighten this to -1% to -2% once they understand the bot's behavior.

When to change it

Tighten to -1% or -2% once you are comfortable with the bot. The default -5% is set wide to avoid unexpected halts during the learning period.

Safe range

-1% (tight) to -10% (very permissive). Values looser than -10% provide little protection.

Example

$100,000 account, -2% daily loss pct. Loss of $2,001 on the day halts new entries for the session.

Max Weekly Loss Dollars

Setting key
max_weekly_loss_dollars
Default
-$1,500

What it does

Weekly P&L floor in dollars. When cumulative loss for the rolling 7-day window crosses this level, new entries halt for the rest of that window. This is a rolling 7 calendar days, not the current calendar week, so a Monday-Friday losing run halts on that Friday rather than waiting for the week to reset. When the oldest losses age out of the window, entries can resume.

When to change it

Set to roughly 3x your daily loss limit to give the week room while still having a backstop.

Safe range

Any negative dollar value larger (more negative) than your daily loss limit.

Example

Daily limit -$500, weekly limit -$1,500. Three -$400 days in a row = -$1,200 cumulative, below the weekly limit, entries continue. A fourth -$400 day pushes to -$1,600 and triggers the weekly halt.

Max Weekly Loss %

Setting key
max_weekly_loss_pct
Default
-10%

What it does

Weekly loss floor as a percentage of NLV. Works alongside max_weekly_loss_dollars: whichever fires first halts entries for the rest of the rolling 7-day window.

When to change it

Lower from the -10% default to -3% to -5% for tighter weekly risk control.

Safe range

-3% (conservative) to -15% (permissive).

Example

$50,000 account, -5% weekly pct = -$2,500. A -$1,800 Monday plus a -$800 Tuesday (-$2,600 cumulative) triggers the weekly halt. No new entries for the rest of that rolling window.

Max Loss Per Trade

Setting key
max_loss_per_trade_mode
Default
dollars ($700 flat cap)

What it does

Per-trade risk cap, independent of the daily and weekly circuit breakers. In dollars mode (the default), no single defined-risk trade can be sized past a flat $700 max loss. Switch to pct mode to size the cap as 2% of live NLV instead, which scales with account size.

When to change it

Switch to pct mode if you want the per-trade cap to grow or shrink with the account rather than staying fixed. Raise the dollar cap above $700 only if you have deliberately decided a single trade can carry more risk than the default.

Safe range

Dollars mode: $100 (tight) to $1,000 (loose). Pct mode: 1% to 3% of NLV.

Example

$50,000 account in the default dollars mode. Every new defined-risk trade is sized so its max loss does not exceed $700, regardless of account size. Switching to pct mode at 2% would instead cap it at $1,000 on this account.

Risk-Off Index Drop %

Setting key
risk_off_index_drop_pct
Default
-1.5%

What it does

If SPY drops more than this percentage intraday from the prior close, new entries halt until the next session. This circuit breaker catches fast market dislocations before they show up in the daily P&L circuit breaker. Only affects the premium-selling engines (mechanical, earnings, contraction). The directional engine is exempt: a sharp down day is when a bearish debit bet pays. Requires risk_off_halt_enabled to be ON.

When to change it

Set to 1.5% to 2.5% for intraday protection. Leave unset (None) if you rely on the VIX kill switch and daily loss limits instead.

Safe range

1% (very sensitive, fires on normal vol days) to 3% (catches only significant drops).

Example

SPY closes at $500. Next day drops to $492 (-1.6%). With risk_off_index_drop_pct=-0.015, new premium entries halt for the rest of that session.

Risk-Off VIX Intraday Jump

Setting key
risk_off_vix_intraday_jump
Default
5 points

What it does

If VIX jumps more than this many points intraday from its opening print, new premium entries halt for the session. Catches vol spikes that may not yet have hit the absolute kill switch level. Works alongside risk_off_index_drop_pct: either trigger halts entries. Directional engine is exempt.

When to change it

Set to 5 to 8 points for moderate sensitivity. Leave unset (None) if using the absolute VIX kill switch level alone.

Safe range

3 (sensitive) to 10 (catches only major spikes).

Example

VIX opens at 18. Jumps to 25 intraday (+7 points). With risk_off_vix_intraday_jump=5, halt fires and no new premium entries for the rest of the session even though VIX 25 is below the kill switch level of 35.

Exit Warmup Minutes

Setting key
exit_warmup_minutes
Default
15

What it does

Number of minutes after market open during which opportunistic exits (profit-target, morning-after-earnings) are suppressed. Prevents the bot from closing positions at the open when bid-ask spreads are wide and fills are poor. Defensive exits (delta defense, news gate, stop loss, expiry flatten, assignment) always fire immediately regardless of this setting.

When to change it

Raise to 30 if you see the bot closing positions at wide spreads in the first 15 minutes. Lower to 0 only if you are confident in open liquidity for your underlyings.

Safe range

0 (no delay) to 30 minutes. Above 30 means missing valid exit opportunities during the first half-hour.

Example

Market opens 9:30 AM ET. With exit_warmup_minutes=15, profit-target exits do not fire until 9:45 AM. A position that hit 50% profit overnight closes at 9:45 rather than at the wide open spread.

Expiry Profit Pull Minimum %

Setting key
expiry_close_profit_min_pct
Default
25%

What it does

Minimum profit threshold required before ACondor pulls a position early on the day before expiration (within 1 DTE). Without this floor, the bot would close any profitable position near expiry, including positions that have captured only a few dollars of the max profit. This gate prevents closing for pennies. A position within 1 DTE must have captured at least this percentage of its maximum possible profit before the expiry pull fires.

When to change it

Lower it if you want the bot to pull positions near expiry even when they have barely moved in your favor. Raise it if you want to hold closer to expiry to capture more premium. The default 25% means a $1.00 credit position needs to be worth at least $0.75 to trigger the early pull.

Safe range

10% (pull almost anything near expiry) to 75% (only pull near-full winners). Default 25% is a good starting point.

Example

$1.50 credit iron condor. At 1 DTE, current value is $1.20, a profit of $0.30, which is 20% of max profit. Below the 25% floor, so the bot holds. If value drops to $1.05, profit is 30% of max, above the floor, so the bot pulls it.

Financial Information Disclaimer

This site provides general information about ACondor, a software tool for automating options trading strategies. Nothing on this site is investment, tax, or financial advice. Options trading involves substantial risk of loss. Past behavior of any strategy does not guarantee future results. Consult a licensed financial professional before trading options. ACondor may earn a commission from affiliate links at no extra cost to you.