Strategies
Myquant Bollinger Bandit: Frozen Daily DOT Spot Source Translation
Outcome: Abandoned
MyquantBollingerBanditDotSpot
Outcome Summary
After one iteration, MyquantBollingerBanditDotSpot tested a frozen translation of Myquant's rules on daily DOT spot bars; pinned-commit parameter provenance remained unresolved. The backtest produced 27 closed trades, a -2.539% net return, and a -0.045 Sharpe, while drawdown stayed within the declared 15% limit. Backtest review abandoned the run for negative expectancy before optimization, rejecting only this tested translation and parameter set.
Hypothesis
The submitted source mandates a long-only Bollinger breakout port, so adding shorts, options or cross-venue hedges would change the experiment. Binance spot is appropriate for unleveraged long exposure and is below its 15% target at 11%. DOT avoids the heavily mined BTC series and the listed pending ports. The supplied corpus_concentration is empty, so DOT-specific and timeframe-specific concentration cannot be established. This replication is justified by the user's explicit source request rather than a claim that another generic breakout is novel.
negative_expectancy: decline optimization of this frozen DOT daily spot operationalization. The executed rules lose after costs across 27 closed positions, with -0.472% average net trade return versus the +0.25% spot floor and PF 0.912. No verified implementation repair is identified, and the registered plan permits no parameter tuning. This rejects only the tested translation and parameter set, not Myquant's original strategy or other Bollinger specifications.
Implementation
Port of Myquant's Bollinger_Bandit on DOTUSDT.BINANCE_SPOT daily bars, long only. Entry: a 50-bar Bollinger band (population std, 1.25 sd). Buy when the close is above the upper band and ROC is positive. ROC is the close minus the window close at index period-roc_period. After an entry, no new entry for open_max_days. Exits: (1) close below the lower band with ROC not positive; (2) a moving-average stop whose length shrinks by one per held day, from 50 down to liq_days=10, triggered when bar low < MA and MA > bar open; (3) a movement stop: close <= highest close since entry x (1-0.068), active once the unrealized return is >= 0.20; (4) a 6.8% loss stop checked at the close.
The rules, indicator definitions, parameter names and values, and the order of operations within each bar follow the source code, not its comments. Each bar runs: new-day bookkeeping, the movement stop, the fixation stop (off by default), then the band entry/exit and MA stop, gated by dict_open_close_signal. Two source branches can never fire (avg > upper band; avg < lower band); they are kept as written. Parameter defaults are the research-plan values taken from a mirror. They were not checked against the companion INI at the pinned commit. Sizing: notional = equity x min(risk_pct / stop_fixation_loss, max_exposure_pct) = 14.7% of equity, capped by available cash in the base helper. All state is held in scalar attributes so it survives a restart.
Verification Results
Recover and verify the companion INI, or explicitly record these as selected experiment parameters rather than verified source defaults.
The implementation matches the frozen research-plan values, but the hypothesis's requested verification of mirror-derived parameters against the pinned companion INI remains unresolved. The source Python loads these values externally and does not establish their defaults.
The sandbox reports -0.472% average net trade return across 27 closed positions and PF 0.912. These smoke-test results warrant full-history evaluation but do not establish a correctness defect.
Backtest Review
- Sharpe
- -0.05
- Total return
- -2.54%
- Max drawdown
- 14.31%
- Trades
- 27
- Win rate
- 29.6%
- Profit factor
- 0.91
Audited history covers 1,632 evaluated days without missing bars. All 27 positions are closed and long, consistent with spot execution.
Equity-relative sizing averages 14.72% of capital; drawdown is 14.31% against the declared 15% limit.
Executed net expectancy is negative: average trade return -0.472% versus the spot review floor of +0.25%, PF 0.912 and total return -2.539%. QA's economic concern is borne out.
Eight winners averaging $3,295.65 do not offset nineteen losers averaging $1,521.26; closed-trade PnL totals -$2,538.83.
Buy-and-hold returned +21.86% with 92.99% drawdown over the same window. Lower strategy risk does not establish an active edge; reported alpha and information ratio are negative.
The plan freezes every parameter and has no tunable region. The accepted continuous Bollinger-score diagnostic does not validate the discrete entry, cooldown and exit rules.
The 27-trade sample does not prove Bollinger strategies generally lack an edge, and pinned-commit parameter provenance remains unresolved.
Outcome Summary
An accepted continuous-signal diagnostic does not establish profitability for the executed entry, cooldown, and exit rules.
Backtest review issued an abandon verdict because executed expectancy was negative and average trade return fell below the +0.25% spot floor. The plan allowed no parameter tuning, no verified implementation repair was identified, and optimization and later reviews were not reached.
Translate Myquant's Bollinger Bandit rules into a frozen, long-only, unleveraged DOT daily spot strategy with equity-relative sizing and decision-time market execution.
Across 1,632 evaluated days and 27 closed trades, net return was -2.539%, Sharpe was -0.045, and maximum drawdown was 14.313%. Average net trade return was -0.472%, with a profit factor of 0.912 and a 29.63% win rate.
Analysis
Bollinger_Bandit
Backtest and paper results are hypothetical. Trading involves risk of loss.