Orbit
Orbit is Aegis’s mean-reversion bot. It opens futures positions from inside the LP range when price drifts toward a range edge, anticipating a reversion back toward the center of the range.
Status: Live and fully implemented. Orbit runs end-to-end from apps/bot/src/bots/orbit/. It is not “runtime pending” or “in development”.
Strategy Type
Section titled “Strategy Type”Orbit is a mean-reversion strategy. It is distinct from Bastion (protection) and Vanguard (breakout):
| Bot | Philosophy | Trigger location |
|---|---|---|
| Bastion | Hedge against out-of-range exits | Exterior to range |
| Vanguard | Capture breakout momentum | Exterior to range |
| Orbit | Mean-reversion from inside the range | Interior to range |
Configurable Direction
Section titled “Configurable Direction”Orbit supports three direction presets, all using canonical identifiers from packages/shared/src/strategy-presets.ts:
| Preset | LONG leg | SHORT leg | Description |
|---|---|---|---|
orbit_long_only | Enabled | Disabled | Only takes LONG mean-reversion trades from the lower edge |
orbit_short_only | Disabled | Enabled | Only takes SHORT mean-reversion trades from the upper edge |
orbit_both | Enabled | Enabled | Takes mean-reversion trades from both edges |
Entry Triggers
Section titled “Entry Triggers”Orbit entry triggers are derived from the LP range edges with an interior buffer. The price must be inside the range and approaching an edge for a trigger to fire.
| Direction | Trigger formula | Description |
|---|---|---|
| LONG | P_lower + bufferPct × (P_upper − P_lower) | Price approaches lower bound from inside |
| SHORT | P_upper − bufferPct × (P_upper − P_lower) | Price approaches upper bound from inside |
Where bufferPct is the triggerBufferPct parameter and (P_upper − P_lower) is the full range width.
Numeric example:
LP range: P_lower = $2,000, P_upper = $3,000 (range width = $1,000)
triggerBufferPct = 0.05 (5%)
| Direction | Trigger price |
|---|---|
| LONG trigger | $2,000 + 0.05 × $1,000 = $2,050 |
| SHORT trigger | $3,000 − 0.05 × $1,000 = $2,950 |
When price falls to $2,050 (from inside the range), the LONG leg fires. When price rises to $2,950 (from inside the range), the SHORT leg fires.
Independent Entries — No Auto-Flip
Section titled “Independent Entries — No Auto-Flip”Orbit entries are independent per direction. Closing a LONG position does not immediately open a SHORT position in the same tick.
To trigger a SHORT after a LONG closes:
- Price must leave the LONG trigger zone.
- Price must subsequently approach the SHORT trigger (
P_upper − buffer) from inside the range.
This “no auto-flip” design prevents whipsaw behavior where a single price oscillation triggers a rapid sequence of opposing futures entries.
Additional Features
Section titled “Additional Features”- Staged take-profits: Up to 3 configurable TP levels.
- Breakeven stop: Moves the stop-loss to breakeven after the first TP is hit.
- Auto-rearm: After a position closes, the leg automatically re-arms and watches for the next trigger.
Risk Disclaimer
Section titled “Risk Disclaimer”Cross-references
Section titled “Cross-references”- Bots Overview — multi-bot concurrency model
- Strategy Parameters — Risk Params — Orbit buffer semantics
- Strategy Parameters — Presets — full presets table
- Strategy Parameters — Range Bounds — choosing LP range bounds
- Wallet-Bot Binding — execution wallet setup
- Bot scenarios:
docs/aegis-bot/aegis-orbit-scenarios.md(internal reference)