DUCKQUANT / THE QUANT & AI DIRECTORY
TechnicalExampleStrategy — daily signal variant
Public rule reference · Contrarian money flow
Published variant · Freqtrade · source checked 2026-10-25
Strategy research profile
Strategy overview
Negative Chaikin Money Flow is deliberately bought and positive money flow closes the position. This contrarian source direction is preserved and is distinct from the positive-CMF trend reference.
- Strategy style
- Mean reversion
- Rule family
- Contrarian money flow
- Source platform
- Freqtrade
- Source attribution
- Not recorded in reviewed source
- Source example / declared timeframe
- 5m
- 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 stretched price or oscillator is interpreted as a candidate for recovery toward a local reference. A rolling average is a measurement device, not a known fair value.
Market-regime hypothesis
Recoveries after temporary stretches, provided a persistent adverse trend does not develop.
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
A falling market can remain oversold. Averaging reference levels move, and missing or delayed exits can turn a short-recovery idea into long exposure.
- 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
CMF21<0 enters; CMF21>0 exits, preserving the contrarian source direction.
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: 0a3d94c8ef857284c9bc37d592af329b1a831f9c504fb2d73b63db00d303db50
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 | 48 | 27.93% | 13.09% | -26.03% | 0.63 | 70 | 40.10% | -8.96% | 15.18% |
| GLD | 56 | 14.70% | 7.09% | -3.81% | 1.16 | 38 | 11.32% | 1.85% | 8.34% |
| QQQ | 49 | 19.86% | 9.47% | -10.76% | 0.73 | 50 | 5.72% | 13.38% | 11.20% |
| ETHUSDT | 11 | 75.75% | 32.52% | -33.07% | 0.91 | 102 | 52.71% | 14.74% | 50.82% |
Additional measured diagnostics
| Asset | Annualized volatility | Sortino | Calmar | vs buy & hold (pp) | Double-cost drag (pp) | Longest underwater (days) |
|---|---|---|---|---|---|---|
| BTCUSDT | 24.23% | 1.01 | 0.50 | -78.73 | 12.75 | 292 |
| GLD | 6.10% | 1.81 | 1.86 | -91.70 | 6.36 | 136 |
| QQQ | 13.67% | 1.28 | 0.88 | -32.44 | 8.66 | 173 |
| ETHUSDT | 39.05% | 1.46 | 0.98 | 45.91 | 24.93 | 133 |
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-cmf-example