Momentum surfing
Flags a fast, volume-backed upward push that is still speeding up; at default settings it did not fire in the September sample.
On each one-minute bar it checks four things at once: the 1-, 3- and 5-bar gains clear fractions of one threshold, this bar's volume beats the average of the last 10 bars, this bar's gain beats the previous bar's, and, when trend confirmation is on, a trend check passes. The output is one true or false value per bar, true only when every check passes on that same bar. The trend check divides a fractional return by the average close-to-close move in dollars, which mixes units, so at SPY prices it almost never passes and blocks nearly every signal by default.
How to read it
- Markers sit on the candles where every check passed on that same bar, so one marker is one minute, not a sustained trend.
- On the September SPY sample at default settings there are no markers at all, so an empty chart is the expected result here.
- A marker needs the last 1, 3 and 5 minutes all rising fast, with volume well above its recent average and still accelerating.
- Use the try presets to loosen the checks and see where markers would land.
What it outputs
- Momentum surf signal
- True on a bar where a fast, volume-backed rise is still accelerating and every check passes. Drawn as markers on those candles.
When it fires
On a bar where the 1-, 3- and 5-bar gains clear the threshold, volume beats its recent average by the multiplier, the gain beats the previous bar's, and the trend check passes if on. It marks a fast push still speeding up on volume. Not seen at default settings in the September sample.
Settings
- momentum_threshold
- Minimum fractional gain: the 5-bar gain must exceed it, with the 3-bar and 1-bar gains needing 0.7 and 0.5 times it. Raising to 0.01 (1%) makes markers rare; 0.002 lets smaller pushes qualify. Negative values also pass mild falls.
- volume_multiplier
- Volume must beat the 10-bar average, which includes this bar, by this factor. At 1.5 that is about 1.6 times the prior average. 1.2 lets moderately busy minutes through; 10 or more blocks every marker; 0 or below turns the check off.
- acceleration_window
- Only sets how many one-minute returns are stored. The check compares just the latest two, so raising it above 2 changes nothing. At 1 the check can never pass and the indicator never fires.
- trend_confirmation
- On (1, default) the trend check must also pass, and at SPY prices it almost never does, so most signals are blocked. Off (0) skips that check, leaving the threshold, volume and acceleration tests.
Pitfalls
- Empty at defaults: the September sample had no markers, and the trend check divides a fractional return by a dollar move, so it rarely passes. A quiet chart is expected.
- The high and low inputs are read but never used; the average true range is only the average close-to-close move, so intrabar range is ignored.
- The try presets have not been run on the sample, so their marker counts are unknown.