Skip to content
All strategies

Strategies

Hummingbot DManV3 Bollinger DCA on WLD Binance Perpetual

Outcome: Abandoned

WldDManV3BollingerDca

Outcome Summary

The strategy applied a Bollinger Band DCA approach to WLDUSDT Binance perpetuals. After three iterations, verification found that its 20x leverage setting was inert. It was abandoned without reported backtest or optimization results.

Hypothesis

Faithful research specification of Hummingbot's DManV3Controller by hummingbot, using its default WLD-USDT market as WLDUSDT.BINANCE. It reads 100 three-minute candles and calculates Bollinger Bands with length 100 and standard deviation 2.0. The inherited defaults are a $100 quote budget, 20x leverage, hedge position mode, at most two active executors per side, and a 300-second cooldown measured against active executors. Each new executor receives $50 of the quote budget, split equally across four maker DCA orders of $12.50 each. Dynamic order spread and dynamic target both default to None, so their scaling branches are inactive; activation bounds also default to None. This is a specification for testing, not a performance claim. Source: https://github.com/hummingbot/hummingbot/blob/9af100d6822da7d2d0291a906c730ef172284ee2/controllers/directional_trading/dman_v3.py

The fixed budget allocates $50 per executor and $12.50 per order. The stop now runs while ladder orders rest, and the exit path cancels them. This is still an incomplete translation: BINANCE uses NETTING, so separate long and short executors and their individual PnL cannot be represented here. The reported positive average return percentage and negative average trade PnL cannot be reconciled from the supplied summary. The required outbox write was rejected because the sandbox is read-only.

verification_loop: Verification failed (leverage_set_but_unused): config sets leverage=20.0 but the strategy never references leverage in sizing. Size positions on it — notional = equity * fraction * leverage / price (read self.config.leverage) — or set leverage=1.0. As written the leverage is inert and the backtest is identical to 1x.

Implementation

WLD three-minute Bollinger signal with four maker DCA levels per attempted executor and a fixed $100 quote budget.

Verification Results

Verification failed (leverage_set_but_unused): config sets leverage=20.0 but the strategy never references leverage in sizing. Size positions on it — notional = equity * fraction * leverage / price (read self.config.leverage) — or set leverage=1.0. As written the leverage is inert and the backtest is identical to 1x.

Iteration History

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [edge_concern] The 42-day smoke test lost 0.78%. Its positive average trade return conflicts with negative average trade PnL; reconcile the ledger before assessing fee economics. - [critical] The hypothesis specifies independent hedge-mode executors, with up to two per side. The code rejects the opposite side and combines same-side ladders into one position with one entry time and one set of exit barriers. A later ladder can therefore exit……Show moreShow less

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [edge_concern] The 42-day smoke test lost 0.78%. Its positive average trade return conflicts with negative average trade PnL; reconcile the ledger before assessing fee economics. - [critical] The hypothesis specifies independent hedge-mode executors, with up to two per side. The code rejects the opposite side and combines same-side ladders into one position with one entry time and one set of exit barriers. A later ladder can therefore exit before its own 45-minute limit. This does not test the specified executor behavior. (line 65) — fix: Track orders, fills, cooldowns and exit barriers per executor and per side in a hedge-capable execution model. - [critical] On expiry without a position, the code requests cancellation and immediately clears executor state. If an order fills before cancellation completes, the resulting position has _active_count == 0 and bypasses all exit checks. (line 149) — fix: Retain closing state until cancellations are confirmed, then check for fills and close any residual position before clearing state.

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [edge_concern] The 42-day smoke test lost 0.78%. Average trade PnL is negative, while reported avg_trade_return_pct is positive; reconcile the ledger before assessing fee economics. - [critical] The hypothesis requires hedge mode with up to two independent executors per side. BINANCE uses NETTING, _active_side rejects opposite-side executors, and the code combines ladders into one position with one expiry. (line 65) — fix: Use hedge-mode……Show moreShow less

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [edge_concern] The 42-day smoke test lost 0.78%. Average trade PnL is negative, while reported avg_trade_return_pct is positive; reconcile the ledger before assessing fee economics. - [critical] The hypothesis requires hedge mode with up to two independent executors per side. BINANCE uses NETTING, _active_side rejects opposite-side executors, and the code combines ladders into one position with one expiry. (line 65) — fix: Use hedge-mode accounting and track each executor's orders, fills, position, and exit barriers independently. - [critical] The 3% stop cannot trigger while any DCA order remains open. Resting ladder orders can therefore leave a filled position exposed beyond the stated stop. (line 97) — fix: Enforce each executor's stop regardless of resting entry orders, then cancel that executor's remaining orders. - [critical] The specified $100 quote budget is replaced with an equity-dependent calculation. It yields $50 per executor at the initial $100,000 balance only by coincidence and changes as equity changes. (line 103) — fix: Use the specified $100 quote budget, allocating $50 per executor across four $12.50 orders.

Outcome Summary

Use configured leverage in position sizing, or configure 1x leverage.

After three iterations, verification failed because the strategy configured 20x leverage but did not use it in position sizing. The run was abandoned before later review stages.

It adapted Hummingbot’s DManV3 Bollinger Band signals and maker DCA orders for WLDUSDT Binance perpetuals.

No backtest or optimization results were provided; return, Sharpe, and trade count are unavailable.

Analysis

DManV3Controller

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