-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.toml
More file actions
63 lines (59 loc) · 5.02 KB
/
Copy pathconfig.toml
File metadata and controls
63 lines (59 loc) · 5.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
[account]
env = "futures-mainnet"
asset = "USDC"
order_balance_pct = "0" # 0 = disable wallet-relative (compounding) sizing → use the strategy's fixed `notional` below. Bot COUNT still auto-scales.
max_position_pct = "1000" # 10x wallet hard cap on the bag (pct × current wallet, dynamic). GLFT self-limits to ~1.9x at a healthy wallet so this rarely binds there; it's the safety net for smaller wallets (bag/wallet ratio grows as wallet shrinks).
auto_scale = true # true = active-bot count scales with wallet: floor(wallet / min_bot_capital_usdc), clamped to [1, top_n]
min_bot_capital_usdc = "500" # $500 wallet per bot → $500 = 1 bot, $2000 = 4 bots (capped at top_n)
take_profit_pct = "0" # unrealized > 2% of wallet → rest a reduce-only maker limit to lock in HALF the bag; 0 = off
leverage = 25
inventory_boost_pct = "0" # profit-gated reducing-side size boost: enlarge reducing (in-profit) orders as they sit further past avg
inventory_boost_curve = "1"
inventory_boost_profit_gated = true # gate the boost on per-order profit vs avg (never enlarge a loss-locking quote); works cap-off
inventory_boost_profit_full_bps = "50" # reducing boost saturates at this many bps past avg-entry
inventory_boost_add_pct = "0" # adding-side (avg-down) boost: enlarge below-avg buys by how far underwater — tamer cousin of size_mult; 0 = off
inventory_boost_add_full_bps = "50" # avg-down boost saturates at this many bps below avg-entry
bnb_refill_enabled = true # this is the manager process; enable on exactly ONE process per account
# bnb_min_balance_usdc = "1" # refill trigger (default $1)
# bnb_target_balance_usdc = "10" # top-up target (default $10)
# Bagger (inventory-risk flatten) — profit lock (ratchet): snapshot MTM equity
# (wallet + unrealized); once equity grows +2% past the snapshot, flatten the
# WHOLE bag to bank the gain, then re-snapshot at the new (higher) equity. A
# monotonic profit ratchet — each +2% of growth is realized and the bar steps up.
# All other mechanisms off.
[account.bagger]
#profit_lock_pct = "0.1" # bank the bag + re-baseline every +2% equity growth
#loss_lock_pct = "10" # cut the bag + re-baseline every −2% equity drop (two-sided bracket)
#exit_taker = false # reduce-only maker exit (don't pay the spread)
[rampage]
enabled = true
min_volume_usdc = "20000000" # $20M 24h quote volume floor
recheck_interval_secs = 60
quote_asset = "USDC"
top_n = 4
# defer_underwater defaults true (don't rotate a bot holding a losing bag)
rotate_loss_pct = "0.01" # accept NET loss up to 1% of wallet on rotate (NET = realized+unrealized−fees)
big_bag_pct = "0" # hold (don't rotate) a bot in POSITIVE unrealized whose bag ≥ this % of wallet — work it down instead of dumping; 0 = off
retire_bnb_pct = "50" # on retire, convert this % of the bot's final NET PROFIT to BNB (VIP-tier fee accrual); loss = no-op; 0 = off
[rampage.score]
mode = "grid_vol" # grid-harvestable volatility: path − net_penalty×net over the window (rewards oscillation, penalizes trend-drift)
[rampage.score.params]
candle_count = 60 # 1m closes averaged (~1h window)
net_penalty = "0" # trend penalty. BACKTEST: optimal k INVERTS with top_n — k=2 best for top_n=1 (dodge trend-bagging), but k≥1 DROPS the winner mid-ride for top_n≥3. For multi-market top_n>1 keep this LOW (0 = pure path-length, keeps winners always-on, only culls genuine stragglers). Raise toward 1-2 only for single-market top_n=1.
min_tick_bps = "0" # tick_size/price×10000 ≥ this. 6 filters the ENTIRE liquid USDC universe (BTC/ETH/SOL/... all have fine ticks, tick_bps 0.016–1.45) → 0 candidates → no trading. 0 = no gate.
[rampage.strategy]
kind = "glft" # "wave" | "tide" | "flat_mm" | "avellaneda_stoikov" | "glft"
[rampage.strategy.params]
# GLFT inventory-skew MM. Tuned winner from the γ × spread sweep
# (NEAR/SUI/WLD/ZEC, $1k/25x, 0-fee), ranked on profit + flat + volume:
# γ=0.2 + 4bps → realized +201, NET +196, unrealized ≈ 0 (FLAT), volume 385k,
# all 4 symbols positive, WLD trades freely (no A-S horizon freeze). 4bps is
# the sweet spot — tighter (≤2bps) detonates (spread < adverse-selection cost,
# bag → ~10x wallet); wider (≥5bps) earns less and trades less.
notional = "5" # FIXED $5/quote (account order_balance_pct = 0 → no compounding). Bot count still auto-scales.
gamma = "0.1" # risk aversion (skew = q·γ·σ²). Sweep winner: γ=0.1 edges 0.2 (+216 vs +208 NET) at same vol 389k / peak 1603
base_spread_bps = 4 # half-spread per side (8 bps round-trip); the tuned sweet spot
min_requote_ms = 500 # tuned: 500ms requote — fresher quotes, slightly more volume + lower peak vs 1000
level_step_bps = 2 # tuned: requote on >=1bps mid drift — fewer mid-chasing requotes, cuts peak inventory ~16% (1904->1603) at same volume+profit
ewma_half_life_sec = 30.0 # tuned: faster vol estimate — skew adapts quicker, +6% NET
ewma_initial_var = "0.000001" # volatility EWMA seed variance