A threshold optimizer always loves the tightest setting, because a few lucky bars beat thousands of honest ones in-sample. Floor the trade frequency, then permute the returns to prove the edge isn't the search.
Markets have a color: the slope of their log power spectrum. White means no memory, brownian means random walk, pink means long memory. One number tells you whether price remembers its past.
Hold a position while an indicator stays above a threshold and there is no natural "trade." Group bars into holds and profit factor can hit infinity. Count bars with log returns and it stays honest.
Run price through a band-pass, count bars between zero crossings, double it: that's the dominant cycle, at a few bars' lag. But widen the passband, or a narrow filter measures its own tuned period.
Volume Momentum ignores price and asks one thing: is the tape hotter than its own baseline. Short volume over long volume, logged and CDF-squashed into a bounded regime gauge that tells you if your signals have fuel.
Q is the band-pass narrowness dial: center frequency over half-power bandwidth (30% gives Q~3.33). High Q isolates a pure cycle but rings and lags; low Q is fast but blurry. Pick Q from the job.
The volume-weighted MA ratio asks where the crowd transacted, not which way it pushed: VWMA over SMA, above one when expensive bars carried the volume. Log it, scale by root-lookback, compress, and it's model-ready.
Subtract a long-cutoff high-pass from a short-cutoff one and you get the decycler oscillator, a band-pass whose zero crossings flag trend transitions. Use it to classify the regime, not as a trigger.
OBV's running sum wanders like a random walk and depends on when you started counting. Window it, divide signed volume by total volume, scale by root-lookback, and you get a bounded, stationary flow oscillator.
The WMA ramps weights toward recent bars, so its coefficients are asymmetric, breaking linear phase and warping shape. It lags more than the SMA at equal noise rejection; a real window beats both.
Raw Intraday Intensity whipsaws and drifts upward for years as volume grows, useless. Divide summed money flow by summed volume and you get Chaikin Money Flow: bounded, stationary, model-ready.
A filter's critical period is its half-power point: amplitude 0.707, not 0.5. For an SMA it's twice the length, so SMA(50) targets a 100-bar cycle. Pick length on purpose; the lag comes attached.