Skip to content
All hypotheses

Hypotheses

Hummingbot 'BollinGridController' (by hummingbot, Apache-2.0), faithful port: BB(100,2.0) %B-breach fade that launches a one-sided maker grid sized by BB width, with triple-barrier (3% SL / 2% per-level TP / 45-min time limit / 1.5%-0.3% trailing) on WLDUSDT.BINANCE 3m, long-short

Faithful translation of Hummingbot's open-source controller controllers/directional_trading/bollingrid.py (author: hummingbot, commit 9af100d6, Apache-2.0; credit to the authors). The controller computes pandas_ta…

Hypothesis

Faithful translation of Hummingbot's open-source controller controllers/directional_trading/bollingrid.py (author: hummingbot, commit 9af100d6, Apache-2.0; credit to the authors). The controller computes pandas_ta Bollinger Bands (length 100, std 2.0) on 3-minute candles of the traded pair. BBP = %B = (close - lower)/(upper - lower); BBB = bandwidth = (upper - lower)/middle * 100. Signal = +1 when BBP < bb_long_threshold (0.0, i.e. close below the lower band), -1 when BBP > bb_short_threshold (1.0, close above……Show moreShow less

Faithful translation of Hummingbot's open-source controller controllers/directional_trading/bollingrid.py (author: hummingbot, commit 9af100d6, Apache-2.0; credit to the authors). The controller computes pandas_ta Bollinger Bands (length 100, std 2.0) on 3-minute candles of the traded pair. BBP = %B = (close - lower)/(upper - lower); BBB = bandwidth = (upper - lower)/middle * 100. Signal = +1 when BBP < bb_long_threshold (0.0, i.e. close below the lower band), -1 when BBP > bb_short_threshold (1.0, close above the upper band), else 0. On a nonzero signal it spawns a GridExecutor on the signal side whose price range is scaled by the current band width w = BBB/100: LONG (BUY grid): start_price = close*(1 - 0.25w), end_price = close*(1 + 0.75w), limit_price = close*(1 - 0.35w). SHORT (SELL grid): start_price = close*(1 - 0.75w), end_price = close*(1 + 0.25w), limit_price = close*(1 + 0.35w). Grid params passed unchanged: min_spread_between_orders 0.005, order_frequency 2s, max_orders_per_batch 1, min_order_amount_quote 6, max_open_orders 5. Everything else comes from DirectionalTradingControllerConfigBase defaults (the source sets none of them): connector binance_perpetual, trading_pair WLD-USDT, total_amount_quote 100, max_executors_per_side 2, cooldown_time 300s, leverage 20, position_mode HEDGE, stop_loss 0.03, take_profit 0.02, time_limit 2700s (45 min), take_profit_order_type LIMIT, trailing_stop activation 0.015 / trailing_delta 0.003. Executor amount = total_amount_quote / max_executors_per_side = 50 USDT notional each. The controller has no signal-based stop actions; executors end only through their own barriers. PLATFORM MAPPING: venue BINANCE USD-M (the source's default connector is binance_perpetual and its default pair is WLD-USDT, so WLDUSDT.BINANCE is the faithful instrument; it is also not BTC, and WLD has almost no corpus history). The catalog has WLDUSDT.BINANCE-3-MINUTE-LAST-EXTERNAL from 2023-07-24 to 2026-10-01 (~3.2 years, ~560k bars), so the source's 3m interval is kept exactly. Sizing is scaled from 100 USDT to our $100k account by keeping the same proportions: total_amount_quote = 100% of equity, each executor gets 50% of equity in notional, and at most 2 executors per side. min_order_amount_quote keeps its ratio to executor budget (6/50 = 12% of executor notional), which caps the grid at 8 levels just as the 100-USDT original does. Leverage is 2.0, fixed. The source uses 20x but that is only margin; notional exposure is set by total_amount_quote, and 2x is enough margin headroom for 2 same-side executors (100% equity notional) plus an opposite-side pair. Hummingbot runs HEDGE mode, but our account nets positions; the developer must track each executor's levels and inventory in strategy-side bookkeeping and submit net orders. Fees: Binance USD-M maker 0.02%, taker 0.05%. Grid opens and per-level take-profits are LIMIT (maker); stop-loss, limit-price, time-limit and trailing exits are MARKET (taker). This is the BB-fade-on-a-fast-timeframe class that is mostly dead here. It is proposed as a faithful port whose maker-only grid legs and 2% per-level TP are the one feature that might clear costs. Our own backtest decides; no claimed performance is assumed.

Analysis

BollinGridController

Backtest and paper results are hypothetical. Trading involves risk of loss.