Skip to content

Risk Parameters

This page documents all Aegis risk parameters, with type, valid range, default, and behavioral effect. The Buffer semantics by bot section is required reading before configuring triggerBufferPct.


Field Value
Type Float
Valid range 0.0 – 1.0
Default 0.1 (10%)

A multiplier applied to the pool value to compute the effective operated capital before sizing a hedge position:

effectiveCapitalUsd = poolValueUsd × (1 + capitalBufferPct)
marginPerLeg = effectiveCapitalUsd / leverage

The bot opens a position sized against effectiveCapitalUsd, not just poolValueUsd. Setting capitalBufferPct = 0.1 means the bot tries to open a position notional that is 10% larger than the pool value, which in turn increases the margin required by the same proportion.

Numeric example: Pool value = $1,000, capitalBufferPct = 0.1, leverage = 5×

Step Calculation Result
Effective capital $1,000 × (1 + 0.1) $1,100
Margin per leg $1,100 / 5 $220
Minimum balance (worst-case group) See Capital Reservation ≥ $220

Contrast with capitalBufferPct = 0 (no buffer): effectiveCapitalUsd = $1,000, marginPerLeg = $200.


Field Value
Type Float (fractional scale 0..1)
Valid range See per-bot defaults below
Default Bastion/Vanguard: 0.005 (0.5%) · Orbit: 0.001 (0.1%)

A fractional offset applied to the LP range edge to determine the entry trigger price. The formula and semantic differ by bot — see Buffer semantics by bot below.

Bot Default Valid range
Bastion 0.005 (0.5%) 0 – 0.05
Vanguard 0.005 (0.5%) 0 – 0.05
Orbit 0.001 (0.1%) 0 – 0.10

Field Value
Type Float
Valid range 0.001 – 0.5
Default 0.03 (3%)

The maximum loss allowed on a futures position before it is closed automatically. Measured as a fraction of the entry price.

Example: Entry at $3,000, stopLossPct = 0.03 → stop-loss at $3,000 × (1 − 0.03) = $2,910 for a long position.


Field Value
Type Float
Valid range 0.5 – 5.0
Default 1.5
Applies to Vanguard

Multiplier applied to stopLossPct to calculate the trailing stop distance after the first take-profit is hit. A higher multiplier gives the position more room to run after an initial TP. This field is Vanguard-only — the strategy API rejects it for Bastion and Orbit strategies.

Example: stopLossPct = 0.02, trailingStopMultiplier = 1.5 → trailing stop distance = 0.02 × 1.5 = 0.03 (3%).


Field Value
Type Float
Valid range 0.001 – 1.0
Default 0.02 (2%)
Applies to Vanguard

A single fractional profit target for the Vanguard breakout position, expressed as a percentage of margin. This field is Vanguard-only — the strategy API rejects takeProfitPct for Bastion and Orbit strategies.

  • Bastion does not use takeProfitPct. Bastion’s take-profits are the buffer take-profits (bufferTpConfig) and the escalated take-profit (escalatedTpConfig); see Bots — Bastion.
  • Orbit does not use takeProfitPct. Orbit uses tieredTakeProfit instead (see below).

Field Value
Type Array of { rangePct, closePct } objects
Max levels 3 intermediate levels
Scale Integer percent 0..100 (not fractional 0..1)
Default [(25,25),(50,25),(75,25)]
Applies to Orbit

Orbit’s take-profit system closes portions of the position as price moves through the LP range. Each level specifies:

  • rangePct — how far through the LP range (0..100, exclusive endpoints) before the partial close fires
  • closePct — what percentage of the remaining open position to close at that level (0..100)

The sum of all closePct values must not exceed 100. After all defined levels fire, the remaining position closes at the opposite range edge (TP100 by the exit resolver).

Default profile: [(25,25),(50,25),(75,25)] — three partial closes of 25% each at the 25%, 50%, and 75% interior marks of the range. The remaining 25% closes at the opposite range boundary.

Example (custom 2-level profile):

tieredTakeProfit = [
{ rangePct: 33, closePct: 50 },
{ rangePct: 66, closePct: 50 }
]

TP1: close 50% of position when price is 33% through the range. TP2: close remaining 50% when price is 66% through the range.

Empty array ([]): disables partial closes — the entire position closes only at the opposite range edge (TP100-only mode).


Field Value
Type Boolean
Default true

When true, after a position closes (by TP, SL, or manual close), the leg automatically re-arms and monitors for the next trigger event. When false, the leg remains inactive after closing until manually re-enabled.


triggerBufferPct does not have a single universal formula. The offset is applied differently depending on which bot is configured.

Bastion uses exterior triggers — the trigger fires after price has already exited the LP range by a buffer margin.

Leg Formula Type
lower_short P_lower × (1 − triggerBufferPct) Below lower bound
upper_short (reentry) P_upper At upper bound reentry

Numeric example: P_lower = $2,000, triggerBufferPct = 0.005lower_short fires when price falls below $2,000 × (1 − 0.005) = $1,990.

For full Bastion parameter context see Bots — Bastion.

Vanguard uses an exterior breakout trigger — the trigger fires after price has broken above the LP range upper bound by a buffer margin.

Leg Formula Type
upper_long P_upper × (1 + triggerBufferPct) Above upper bound

Numeric example: P_upper = $3,000, triggerBufferPct = 0.005upper_long fires when price rises above $3,000 × (1 + 0.005) = $3,015.

For full Vanguard parameter context see Bots — Vanguard.

Orbit uses interior triggers derived from the full range width — the trigger fires while price is still inside the range, approaching an edge.

Direction Formula Type
LONG P_lower + triggerBufferPct × (P_upper − P_lower) From inside, near lower bound
SHORT P_upper − triggerBufferPct × (P_upper − P_lower) From inside, near upper bound

Numeric example: P_lower = $2,000, P_upper = $3,000 (range width = $1,000), triggerBufferPct = 0.05 (5%)

Direction Trigger
LONG $2,000 + 0.05 × $1,000 = $2,050
SHORT $3,000 − 0.05 × $1,000 = $2,950

For full Orbit parameter context see Bots — Orbit.


The stop-loss limits the maximum loss on a futures leg. It is calculated from the entry price:

  • Long position SL: entry_price × (1 − stopLossPct)
  • Short position SL: entry_price × (1 + stopLossPct)
Scenario Entry stopLossPct Stop-loss price
Long, ETH $2,050 0.03 $2,050 × 0.97 = $1,988.50
Short, ETH $2,950 0.03 $2,950 × 1.03 = $3,038.50

Each bot uses a different take-profit mechanism. takeProfitPct is Vanguard-only.

For Vanguard, the take-profit price is based on the entry price and leverage:

  • Long TP: entry_price × (1 + takeProfitPct / leverage)
  • Short TP: entry_price × (1 − takeProfitPct / leverage)
Scenario Entry takeProfitPct Leverage Take-profit price
Long, ETH (Vanguard) $2,050 0.05 15x $2,050 × (1 + 0.05/15) = $2,050 × 1.003333 = $2,056.83
Short, ETH (Vanguard) $2,950 0.05 15x $2,950 × (1 − 0.05/15) = $2,950 × 0.996667 = $2,940.17

See Bots — Vanguard for the full take-profit scenario.

Bastion (bufferTpConfig / escalatedTpConfig)

Section titled “Bastion (bufferTpConfig / escalatedTpConfig)”

Bastion does not use takeProfitPct. Bastion has two take-profit mechanisms, both Bastion-only:

  • Buffer take-profits (bufferTpConfig) — up to 3 limit-order levels that realize profit from the capital-buffer portion of the lower short as price falls below P_lower. Available only when the capital buffer is greater than 0%. The sum of buffer close percentages cannot exceed 100%.
  • Escalated take-profit (escalatedTpConfig) — partial closes of the upper short as price travels back down through the range (interior milestones such as 25%, 50%, 75%, then the remainder at the opposite edge).

See Bots — Bastion for the full take-profit detail.

Orbit uses a tiered system of partial closes rather than a single price target. Each level in tieredTakeProfit fires as price moves through the LP range interior. See tieredTakeProfit above for the full contract.

trailingStopMultiplier is Vanguard-only. For Vanguard, after the first TP is hit, the stop-loss is moved to breakeven and a trailing stop activates at stopLossPct × trailingStopMultiplier distance from the current price.