# Hoffman's Scalp Indicator

Provides entry signals for long and short positions based on moving averages and volume oscillator, with customizable stop loss and take profit levels.

Canonical: https://prismaticalgos.com/compendium/algo/1092-hoffman-s-scalp-indicator
Record ID: 1092
Catalog rank: 2442 (reading order, not performance)
Snapshot: 2026-10-31 15:46 UTC
Family: Trend Following & Directional (A)
Source: https://www.prorealcode.com/prorealtime-indicators/tip-hoffmans-scalp-indicator/
Evidence label (unverified): source_code

## Scope and limitations

These are machine-extracted research records, not verified trading systems. Catalog rank measures specification detail and claimed evidence, not profitability. The catalog extraction pipeline did not independently backtest these records. Its separate selected testing ledger does not validate the wider corpus. Rules, labels and parameters can be incomplete or wrong; consult the original source and its reuse terms.

No endorsement, ownership claim or source-code reuse permission is implied.

## Extraction warnings

No automated warnings recorded; this is not validation.

## Recorded profile

- symbols: any
- timeframes: any
- sessions: any
- market_regime: any

## Indicators

- Moving Averages: {}; applied to: close
- Hoffman Retracements: {"z": 45}; applied to: close
- Volume Oscillator: {"longlen": 10, "shortlen": 5}; applied to: volume
- ATR: {"atrlength": 14, "atrm": 0.85, "atrsmoothing": 1}; applied to: high, low, close

## Recorded long-entry rules

- sma5 > ema18 and ema18 > ema20 and ema20 > ema144 and low > sma5
- usevol = 0 or (usevol = 1 and close > sma50 and osc > 0)

## Recorded short-entry rules

- sma5 < ema18 and ema18 < ema20 and ema20 < ema144 and high < sma5
- usevol = 0 or (usevol = 1 and close < sma50 and osc > 0)

## Recorded exit rules

- StopLosY = sma5 or (useatr = 1 and sma50 and atrx2)
- TakeProfitY = high + (OpenPositionTreshold * ((high-low)/100)) + (riskreward * ((high+ (OpenPositionTreshold * ((high-low)/100)))-sma5)) or (useatr = 1 and high + (OpenPositionTreshold * ((high-low)/100)) + (riskreward * ((high+ (OpenPositionTreshold * ((high-low)/100)))-atrx2))

## Recorded filters

- usevol = 0 or (usevol = 1 and close > sma50 and osc > 0)
- usevol = 0 or (usevol = 1 and close < sma50 and osc > 0)

## Risk controls

- Stop loss: StopLosY = (high + (OpenPositionTreshold * ((high-low)/100))) - ((myStopLos/(((high + (OpenPositionTreshold * ((high-low)/100)))-low)/(low/100)))*((high + (OpenPositionTreshold * ((high-low)/100)))-low)
- Take profit: TakeProfitY = high + (OpenPositionTreshold * ((high-low)/100)) +((myTakeProfit/((high-(low - (OpenPositionTreshold * ((high-low)/100))))/((low - (OpenPositionTreshold * ((high-low)/100)))/100)))*(high-(low - (OpenPositionTreshold * ((high-low)/100))))
- Position sizing: not specified
