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.


FieldValue
TypeFloat
Valid range0.0 – 1.0
Default0.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×

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


FieldValue
TypeFloat (fractional scale 0..1)
Valid rangeSee per-bot defaults below
DefaultBastion/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.

BotDefaultValid range
Bastion0.005 (0.5%)0 – 0.05
Vanguard0.005 (0.5%)0 – 0.05
Orbit0.001 (0.1%)0 – 0.10

FieldValue
TypeFloat
Valid range0.001 – 0.5
Default0.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.


FieldValue
TypeFloat
Valid range0.5 – 5.0
Default1.5
Applies toVanguard

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%).


FieldValue
TypeFloat
Valid range0.001 – 1.0
Default0.02 (2%)
Applies toVanguard

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

FieldValue
TypeArray of { rangePct, closePct } objects
Max levels3 intermediate levels
ScaleInteger percent 0..100 (not fractional 0..1)
Default[(25,25),(50,25),(75,25)]
Applies toOrbit

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


FieldValue
TypeBoolean
Defaulttrue

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.

LegFormulaType
lower_shortP_lower × (1 − triggerBufferPct)Below lower bound
upper_short (reentry)P_upperAt 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.

LegFormulaType
upper_longP_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.

DirectionFormulaType
LONGP_lower + triggerBufferPct × (P_upper − P_lower)From inside, near lower bound
SHORTP_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%)

DirectionTrigger
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)
ScenarioEntrystopLossPctStop-loss price
Long, ETH$2,0500.03$2,050 × 0.97 = $1,988.50
Short, ETH$2,9500.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)
ScenarioEntrytakeProfitPctLeverageTake-profit price
Long, ETH (Vanguard)$2,0500.0515x$2,050 × (1 + 0.05/15) = $2,050 × 1.003333 = $2,056.83
Short, ETH (Vanguard)$2,9500.0515x$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.