OPEN-SOURCE SCRIPT
CCI with Subjective Normalization

CCI (Commodity Channel Index) with Subjective Normalization
This indicator computes the classic CCI over a user-defined length, then applies a subjective mean and scale to transform the raw CCI into a pseudo Z‑score range. By adjusting the “Subjective Mean” and “Subjective Scale” inputs, you can shift and rescale the oscillator to highlight significant tops and bottoms more clearly in historical data.
1. CCI Calculation:
- Uses the standard formula \(\text{CCI} = \frac{\text{price} - \text{SMA(price, length)}}{0.015 \times \text{mean deviation}}\) over a user-specified length (default 500 bars).
2. Subjective Normalization:
- After CCI is calculated, it is divided by “Subjective Scale” and offset by “Subjective Mean.”
- This step effectively re-centers and re-scales the oscillator, helping you align major lows or highs at values like –2 or +2 (or any desired range).
3. Usage Tips:
- CCI Length controls how far back the script measures average price and deviation. Larger values emphasize multi-year cycles.
- Subjective Mean and Scale let you align the oscillator’s historical lows and highs with numeric levels you prefer (e.g., near ±2).
- Adjust these parameters to fit your particular market analysis or to match known cycle tops/bottoms.
4. Plot & Zero Line:
- The indicator plots the normalized CCI in yellow, along with a zero line for quick reference.
- Positive values suggest price is above its long-term mean, while negative values suggest it’s below.
This approach offers a straightforward momentum oscillator (CCI) combined with a customizable normalization, making it easier to spot historically significant overbought/oversold conditions without writing complex code yourself.
This indicator computes the classic CCI over a user-defined length, then applies a subjective mean and scale to transform the raw CCI into a pseudo Z‑score range. By adjusting the “Subjective Mean” and “Subjective Scale” inputs, you can shift and rescale the oscillator to highlight significant tops and bottoms more clearly in historical data.
1. CCI Calculation:
- Uses the standard formula \(\text{CCI} = \frac{\text{price} - \text{SMA(price, length)}}{0.015 \times \text{mean deviation}}\) over a user-specified length (default 500 bars).
2. Subjective Normalization:
- After CCI is calculated, it is divided by “Subjective Scale” and offset by “Subjective Mean.”
- This step effectively re-centers and re-scales the oscillator, helping you align major lows or highs at values like –2 or +2 (or any desired range).
3. Usage Tips:
- CCI Length controls how far back the script measures average price and deviation. Larger values emphasize multi-year cycles.
- Subjective Mean and Scale let you align the oscillator’s historical lows and highs with numeric levels you prefer (e.g., near ±2).
- Adjust these parameters to fit your particular market analysis or to match known cycle tops/bottoms.
4. Plot & Zero Line:
- The indicator plots the normalized CCI in yellow, along with a zero line for quick reference.
- Positive values suggest price is above its long-term mean, while negative values suggest it’s below.
This approach offers a straightforward momentum oscillator (CCI) combined with a customizable normalization, making it easier to spot historically significant overbought/oversold conditions without writing complex code yourself.
Script open-source
In pieno spirito TradingView, il creatore di questo script lo ha reso open-source, in modo che i trader possano esaminarlo e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricorda che la ripubblicazione del codice è soggetta al nostro Regolamento.
Declinazione di responsabilità
Le informazioni ed i contenuti pubblicati non costituiscono in alcun modo una sollecitazione ad investire o ad operare nei mercati finanziari. Non sono inoltre fornite o supportate da TradingView. Maggiori dettagli nelle Condizioni d'uso.
Script open-source
In pieno spirito TradingView, il creatore di questo script lo ha reso open-source, in modo che i trader possano esaminarlo e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricorda che la ripubblicazione del codice è soggetta al nostro Regolamento.
Declinazione di responsabilità
Le informazioni ed i contenuti pubblicati non costituiscono in alcun modo una sollecitazione ad investire o ad operare nei mercati finanziari. Non sono inoltre fornite o supportate da TradingView. Maggiori dettagli nelle Condizioni d'uso.