DUCKQUANT / THE QUANT & AI DIRECTORY
CMCWinner — daily signal variant
Public rule reference · Composite oscillator reversal
Published variant · Freqtrade · source checked 2026-10-25
Strategy research profile
Strategy overview
Prior-bar CCI, MFI and Chande momentum must all be extreme before action. The next-open benchmark introduces its execution lag after that explicitly lagged setup.
- Strategy style
- Oscillator / pattern reversal
- Rule family
- Composite oscillator reversal
- Source platform
- Freqtrade
- Source attribution
- Not recorded in reviewed source
- Source example / declared timeframe
- 15m
- Benchmark timeframe
- 1D · completed bars
- Primary tested assets
- Bitcoin · GLD gold ETF · QQQ Nasdaq-100 ETF
- Supplementary asset
- Ethereum · Binance spot
- Direction / sizing
- Long / cash · all available cash at entry
- Evaluation window
- 2024-01-01 → 2025-12-31
- Indicator warm-up
- Crypto 2022–2023; ETFs Jun 2021–2023
- Execution
- Next daily open · fractional units
- Initial capital
- 10,000 quote units · USD or USDT
Theoretical basis
A change in oscillator direction, threshold state or price pattern is interpreted as a possible turning point. The interpretation is a testable timing hypothesis rather than proof that a bottom or top is known.
Market-regime hypothesis
Transitions between local price swings; some source variants add trend or strength gates.
DuckQuant editorial interpretation of the rule. These mechanisms and regime expectations are hypotheses, not independently established explanations of the measured returns.
Risks and failure modes
False turns, threshold sensitivity, sparse simultaneous events and strong trends can invalidate reversal assumptions.
- A retrospective two-year window and ETF proxy choices do not establish general robustness.
- Daily-open fills omit order-book depth, lot constraints, taxes and intrabar stop behavior.
- Related rules and identical execution paths are not independent evidence.
Exact rule
Prior CCI14<-100, MFI14<20 and Wilder CMO14<-50 enters; prior values >100, >80, >50 exit.
Indicators and rule tokens
All thresholds, lookbacks and timing conventions are specified in the exact rule above and the downloadable adapter. Source platform settings do not override this frozen benchmark rule.
Original source
Reviewed source SHA256: 0529996f7e895c3c15ee143f1f0c5ff75d78fd6522856ba0daa55b94437bfc3f
Reading and theoretical references
- Reviewed strategy / indicator source ↗
Published rule or indicator reference; adaptation is described separately.
Adaptation and interpretation
Daily closed-bar signals, next-open all-in long/cash, fixed fees/slippage. Short entries become cash. Source risk sizing, intraday orders, ROI, TP/SL, trailing stops, pyramiding, sessions and protections are NOT native replicas unless explicitly implemented in the stated rule. Source conflict signals resolve to cash. Common indicators are not certified TA-Lib/Pine identical. Uses declaration defaults unless rule explicitly states published buy_params/sell_params. Some source parameters were previously optimized by their author; this is retrospective evidence, not an independently sealed test.
These are normalized daily long/cash rule tests. They do not reproduce every original platform order, risk control or indicator initialization. Indicator-rule references are explicit interpretations of teaching documentation, rather than complete original published systems.
Standardized backtest results
2024-01-01 → 2025-12-31 · crypto 2022–2023 / ETF Jun 2021–2023 warm-up · 10,000 quote units initial capital · 10 bps fee + 5 bps adverse slippage per side · completed-bar signals, next-open execution.

| Asset | Rank / 100 | Net return | CAGR | Max drawdown | Sharpe | Orders | 2024 restarted return | 2025 restarted return | Double-cost return |
|---|---|---|---|---|---|---|---|---|---|
| BTCUSDT | 27 | 42.93% | 19.52% | -19.04% | 0.91 | 4 | 0.00% | 42.93% | 42.07% |
| GLD | 76 | 4.62% | 2.28% | -3.81% | 0.71 | 2 | 4.62% | 0.00% | 4.31% |
| QQQ | 1 | 32.08% | 14.90% | -5.43% | 1.84 | 2 | 0.00% | 32.08% | 31.69% |
| ETHUSDT | 1 | 226.25% | 80.48% | -20.90% | 1.68 | 6 | 62.04% | 101.33% | 223.32% |
BTCUSDT: low activity, fewer than ten orders in the evaluation period.
GLD: low activity, fewer than ten orders in the evaluation period.
QQQ: low activity, fewer than ten orders in the evaluation period.
ETHUSDT: low activity, fewer than ten orders in the evaluation period.
Additional measured diagnostics
| Asset | Annualized volatility | Sortino | Calmar | vs buy & hold (pp) | Double-cost drag (pp) | Longest underwater (days) |
|---|---|---|---|---|---|---|
| BTCUSDT | 22.25% | 1.48 | 1.03 | -63.74 | 0.85 | 131 |
| GLD | 3.26% | 1.16 | 0.60 | -101.77 | 0.31 | 59 |
| QQQ | 7.77% | 3.28 | 2.74 | -20.22 | 0.40 | 100 |
| ETHUSDT | 39.73% | 3.19 | 3.85 | 196.41 | 2.92 | 174 |
Metric definitions and unavailable statistics
- annualized volatility
- Sample standard deviation of daily equity returns, including initial cash, multiplied by sqrt(365) for crypto or sqrt(252) for ETFs.
- sortino
- Mean daily return / sqrt(mean(min(return,0)^2)) × sqrt(asset annualization sessions); minimum acceptable daily return 0; N/A without downside.
- calmar
- Evaluation CAGR / absolute evaluation maximum drawdown; N/A with zero drawdown.
- relative return pp
- Strategy total net return minus same-asset buy-and-hold total net return, in percentage points; not factor-adjusted alpha.
- cost drag pp
- Base net return minus doubled-cost net return, in percentage points.
- longest underwater days
- Longest observed calendar duration from a daily equity peak until a later below-peak close, including initial cash. Unrecovered runs are censored at sample end; closed-market days between observations count as calendar time.
- monthly returns
- Continuous account month-end equity change from preceding month-end (initial cash for first month); differs from yearly cash-restart subtests.
Orders are entry/exit operations. Round-trip win rate, profit factor and trade-level holding periods are not available in the stored run and are not estimated.
Primary coverage: BTCUSDT, GLD gold ETF and QQQ Nasdaq-100 ETF; ETH is supplementary. ETF prices are raw traded USD OHLCV. Dividend entitlements accrue for prior-close holders and settle on official payment dates; paid dividends remain cash until a later entry, with no automatic reinvestment. Sharpe uses 252 ETF sessions or 365 crypto days. CAGR uses 731 calendar days. Gold spot and the Nasdaq-100 index are represented by traded proxies; USD and USDT are not FX-normalized.
Retrospective historical comparison; no sealed out-of-sample validation or future return claim. Read the complete evaluation protocol.
Data and reproduction
GLD gold ETF results · QQQ Nasdaq-100 ETF results · Asset definitions and data conventions
BTC daily equity JSON · ETH daily equity JSON · Source registry · Download engine, data and tests
Strategy identifier: community-freq-cmc