Indicator Block — “Measure the Market”
Purpose
Indicator blocks are the sensory organs of your trading strategy. They process raw market data—such as price, volume, and time—and transform it into structured numerical insights. These blocks describe the current state of the market, allowing the strategy to “understand” whether a trend is forming or momentum is shifting.
What It Does
Indicators perform the heavy mathematical lifting required for technical analysis:
- Mathematical Processing: They run complex formulas on historical price and volume data.
- Structured Output: They produce specific values representing market characteristics like Trend, Momentum, Volatility, and Volume.
- Passive Observation: Indicators are purely analytical. They do not make decisions, evaluate logic, or place trades on their own.
Usage in Algorithmic Systems
In manual trading, you might look at a chart and “feel” that a move is strong. In algorithmic systems, you must quantify that feeling. Indicator blocks convert visual chart patterns into consistent, programmable measurements that can be fed into Logic Blocks.
| Category | Indicators Examples | Measurement Focus |
|---|---|---|
| Trend | SMA, EMA, VWAP | Determining the general direction of the market. |
| Momentum | RSI, Stochastic, MACD | Measuring the speed and strength of price changes. |
| Volatility | Bollinger Bands, ATR | Identifying the “noise” or range of price movement. |
| Volume | Volume, VWMA | Gauging the level of market participation. |
Key Characteristics
- Programmable Parameters: You can configure indicators to look at different time windows (e.g., a 14-period RSI vs. a 50-period RSI).
- Non-Decision Nodes: An indicator will tell you the RSI is “75,” but it won’t tell you to “Sell.” You need a Logic Block to decide that 75 is too high.
- Standardization: Indicators ensure that your strategy reacts the same way every time a specific market condition is met, removing human inconsistency.
Technical Analysis Indicators Library
This reference covers the primary categories of technical indicators used to analyze market trends, volume flow, volatility, and momentum.
1. Volume-Based Indicators
1.1 Accumulation / Distribution & Money Flow
These indicators measure the flow of capital in and out of a security by combining price action with volume.
- Accumulation/Distribution Line (ADL): Cumulative indicator measuring money flow based on the close’s position within the candle range.
Sample Output
Day High Low Close Volume Money Flow Multiplier AD (Output)
1 110 100 108 1,000 +0.6 600
2 115 105 106 2,000 -0.8 -1,000
3 112 110 111 1,500 0.0 -1,000
4 120 110 119 5,000 +0.8 3,000- Accumulation/Distribution Oscillator: A MACD-style momentum oscillator derived from the ADL.
Sample Output
Period AD Line (Base) Fast EMA (3) Slow EMA (10) ADOSC_3_10 (Output) Interpretation
0-9 Warmup NaN NaN NaN Initializing averages
10 15,000 14,800 14,200 600.0 Bullish momentum
11 15,500 15,150 14,450 700.0 Strengthening buy-flow
12 14,000 14,575 14,360 215.0 Momentum slowing
13 12,000 13,280 13,930 -650.0 Bearish Cross- Chaikin Money Flow (CMF): Measures buying and selling pressure using volume-weighted price over a fixed period.
Sample Output
Day Price Action Money Flow Volume (AD) Total Volume (20d Sum) CMF_20 (Output)
0-18 Initializing ... ... NaN
19 Strong Bullish Closes +500,000 2,500,000 0.20
20 Even Stronger Buying +600,000 2,400,000 0.25
21 Price stalls, High Vol -100,000 2,600,000 -0.03
22 Aggressive Selling -800,000 3,000,000 -0.26- Price-Volume Trend (PVT): Tracks money flow by combining price rate of change with volume.
Sample Output
Period Close ROC (1) Volume PV (ROC × Vol) PVT (Output)
0 100.00 NaN 1,000 0.0 0.0
1 102.00 0.02 5,000 100.0 100.0
2 103.00 0.0098 2,000 19.6 119.6
3 101.00 -0.0194 10,000 -194.0 -74.4
4 105.00 0.0396 3,000 118.8 44.4- Money Flow Index (MFI): An RSI-like oscillator that incorporates both price movement and volume.
Sample Output
Period Typical Price (TP) Volume Raw Money Flow (RMF) TP Diff Flow Dir MFI_14 (Output)
13 100.00 1,000 100,000 +0.50 Positive NaN (Warmup)
14 102.00 2,000 204,000 +2.00 Positive 65.40
15 105.00 5,000 525,000 +3.00 Positive 78.20
16 104.00 1,500 156,000 -1.00 Negative 72.10
17 103.00 8,000 824,000 -1.00 Negative 45.30- Elder’s Force Index (EFI): Measures the strength behind price movements using price change and volume.
Sample Output
Period Close Change ($) Volume Force (Raw) EFI_13 (EMA) Interpretation
0-11 ... ... ... ... NaN Warmup
12 150.00 +2.00 10,000 20,000 12,500 Bullish pressure
13 155.00 +5.00 20,000 100,000 28,500 Massive buying force
14 154.00 -1.00 5,000 -5,000 22,300 Minor cooling off
15 145.00 -9.00 30,000 -270,000 -15,400 Bearish Reversal1.2 Cumulative Volume Indicators
- On Balance Volume (OBV): Accumulates volume based on whether the price closes higher or lower than the previous period.
Sample Output
Period Close Price Price Change Volume OBV (Calculation) Interpretation
0 100.00 -- 1,000 1,000 Initial volume
1 102.00 Up (+) 5,000 6,000 Bullish pressure (1k + 5k)
2 101.00 Down (-) 3,000 3,000 Bearish pressure (6k − 3k)
3 101.00 Unchanged 2,000 3,000 No change in pressure
4 105.00 Up (+) 10,000 13,000 Strong accumulation- Positive Volume Index (PVI): Focuses on price changes during periods of increasing volume.
Sample Output
Period Close Volume Vol Change ROC (Price) PVI_1 (Output) Logic
0 100.00 1,000 -- -- 1000.00 Initial baseline
1 102.00 1,500 Up (+) 0.02 1020.00 1000 + (1000 × 0.02)
2 105.00 1,200 Down (-) 0.03 1020.00 No change (Vol decreased)
3 107.00 2,000 Up (+) 0.019 1039.38 1020 + (1020 × 0.019)
4 104.00 2,500 Up (+) -0.028 1010.27 1039 − (1039 × 0.028)- Negative Volume Index (NVI): Emphasizes price action during declining volume to detect “smart money” accumulation.
Sample Output
Period Close Volume Vol Change ROC (Price) NVI_1 (Output) Logic
0 100.00 1,000 -- -- 1000.00 Initial baseline
1 102.00 800 Down (-) 0.02 1020.00 1000 + (1000 × 0.02)
2 105.00 1,200 Up (+) 0.03 1020.00 Flatline (Vol increased)
3 104.00 900 Down (-) -0.01 1009.80 1020 − (1020 × 0.01)
4 106.00 700 Down (-) 0.019 1028.98 1009.8 + (1009.8 × 0.019)1.3 Volume Oscillators & Ratios
- Percentage Volume Oscillator (PVO): Measures the percentage difference between two volume EMAs.
Sample Output
Period Close ROC (Price Change %) Volume PV (Incremental) PVT (Cumulative)
0 100.00 -- 1,000 0.0 0.0
1 102.00 +0.02 (2%) 5,000 +100.0 100.0
2 102.10 +0.001 (0.1%) 5,000 +5.0 105.0
3 100.00 -0.0205 (-2.05%) 10,000 -205.0 -100.0- Relative Volume Indicator (RVOL): Compares current volume to historical averages to detect abnormal activity.
Sample Output
Period Close Volume Change PVOL (Output) Interpretation
1 100.00 1,000 -- 100,000 Initial Baseline
2 105.00 2,000 Up (+) 210,000 High-value buying pressure
3 103.00 1,500 Down (-) -154,500 High-value selling pressure
4 103.00 3,000 Flat 309,000 Neutral / Accumulation value- Ease of Movement (EOM): Quantifies how easily the price moves relative to the volume traded.
Sample Output
Period Distance (Price Move) Box Ratio (Friction) EOM Raw EOM_14 (SMA) Market State
13 0.50 0.05 10.0 NaN Warmup
14 1.20 0.02 60.0 15.4 Easy Advance
15 0.05 0.80 0.06 12.1 Trend Stalling
16 -0.80 0.04 -20.0 8.5 Pullback- Price Volume Rank (PVR): Ranks price-volume combinations to identify accumulation or distribution zones.
Sample Output
Day Price Vol Price Change Vol Change PVR (Output) State
1 100 1000 -- -- 1.0 Baseline (treated as up/up)
2 105 1500 +5 +500 1.0 Strong Buying
3 107 1200 +2 -300 2.0 Price rise, Low interest
4 103 1300 -4 +100 3.0 Aggressive Selling
5 101 900 -2 -400 4.0 Lack of buyers2. Volatility Indicators
2.1 Range & True Range Based
- True Range (TR): Expands the price range to account for gaps between trading sessions.
Sample Output
Day Previous Close High Low Close Classic Range True Range (Output) Why?
1 100.0 105.0 102.0 103.0 3.0 3.0 Normal day.
2 103.0 115.0 110.0 112.0 5.0 12.0 Gap Up! (115 High−103 Prev Close)
3 112.0 114.0 111.0 113.0 3.0 3.0 Normal day.- Average True Range (ATR): The standard measure of average market volatility over a set period.
Sample Output
Day Close True Range (TR) ATR_14 (Output) Meaning
1-13 100.0 ~2.0 NaN Warming up the moving average
14 102.0 2.5 2.15 Typical daily move is $2.15
15 115.0 13.0 3.02 Volatility spike detected!
16 114.0 2.0 2.95 Volatility beginning to settle- Normalized Average True Range (NATR): ATR expressed as a percentage of price for cross-asset comparison.
Sample Output
Asset Price ATR NATR (Output) Volatility Profile
A $1,000 $20.00 2.0% Low relative volatility
B $10 $1.00 10.0% High relative volatility
C $50 $5.00 10.0% Equal risk to Asset B2.2 Band & Channel Indicators
- Bollinger Bands (BBands): Volatility bands plotted around a moving average using standard deviation.
Sample Output
Date/Index BBL_5_2.0 BBM_5_2.0 BBU_5_2.0 BBB_5_2.0 BBP_5_2.0
0 NaN NaN NaN NaN NaN
4 98.45 100.20 101.95 3.49 0.85
5 97.20 102.50 107.80 10.34 1.15
6 96.80 105.00 113.20 15.62 0.92- Keltner Channel: A volatility channel based on ATR and an Exponential Moving Average (EMA).
Sample Output
Index KCL_e_20_2.0 (Lower) KCB_e_20_2.0 (Basis) KCU_e_20_2.0 (Upper)
0 NaN NaN NaN
... ... ... ...
19 142.45 150.20 157.95
20 143.10 151.05 159.00
21 145.50 153.40 161.30
22 144.20 152.80 161.40- Donchian Channel: Tracks the highest high and lowest low over a fixed lookback period.
Sample Output
Index DCL_20_20 (Lower) DCM_20_20 (Mid) DCU_20_20 (Upper)
0-18 NaN NaN NaN
19 140.00 150.00 160.00
20 140.00 152.50 165.00
21 142.50 153.75 165.00- Acceleration Bands: Price envelopes that expand dynamically as volatility increases.
Sample Output
Index ACCBL_20 (Lower) ACCBM_20 (Mid) ACCBU_20 (Upper)
0-18 NaN NaN NaN
19 145.20 150.00 154.80
20 146.10 151.10 156.10
21 148.50 153.25 158.002.3 Volatility Structure & Expansion
- Mass Index: Uses range expansion to identify potential trend reversals.
Sample Output
Index High Low HL_Range hl_ratio MASSI_9_25 State
0-24 ... ... ... ... NaN Warmup (Needs 25 periods)
25 155 150 5.0 1.02 25.10 Normal Volatility
26 160 148 12.0 1.15 26.85 Volatility Increasing
27 162 145 17.0 1.22 27.05 Bulge Triggered (>27)
28 158 152 6.0 1.05 26.40 Reversal Signal (<26.5)- Relative Volatility Index (RVI): An RSI-style indicator that uses standard deviation instead of price change.
Sample Output
Period Close Stdev Direction Pos_Std Neg_Std RVI (Output)
14 105.0 2.5 Up (+) 2.5 0.0 55.4
15 108.0 3.1 Up (+) 3.1 0.0 62.1
16 107.5 3.2 Down (-) 0.0 3.2 58.5
17 104.0 4.0 Down (-) 0.0 4.0 48.2- Squeeze: When the volatility increases, so does the distance between the bands; conversely, when the volatility declines, the distance also decreases.
Sample Output
Index SQZ_20_2.0_20_1.5 SQZ_ON SQZ_OFF SQZ_NO Interpretation
3 -0.12 1 0 0 Squeeze On: Volatility is very low.
4 0.05 1 0 0 Squeeze On: Momentum turning positive.
5 0.85 0 1 0 Squeeze Off: Breakout has started!
6 2.10 0 0 1 No Squeeze: Volatility expanding.
7 3.45 0 0 1 No Squeeze: Strong upward momentum.- Squeeze Pro: When the volatility increases, so does the distance between the bands; conversely, when the volatility declines, the distance also decreases.
Sample Output
Index SQZPRO_20_2.0 ON_WIDE ON_NORMAL ON_NARROW OFF Interpretation
3 -0.45 1 0 0 0 Wide Squeeze: Volatility is dropping.
4 -0.82 1 1 0 0 Normal Squeeze: Range is tightening.
5 -1.10 1 1 1 0 Narrow Squeeze: Extreme compression!
6 0.20 0 0 0 1 Squeeze Fired: Breakout starts.
7 1.50 0 0 0 0 No Squeeze: Trend is in play.- Price Distance: Measures the magnitude of price movement over a specific time horizon.
Sample Output
Period Open High Low Close Prev Close Logic PDIST (Output)
1 100 105 95 102 -- -- NaN
2 105 110 103 104 102 Gap Up (+3) 16.0
3 104 105 103 104 104 Tight Range 4.0
4 104 120 100 110 104 High Volatility 34.03. Momentum Indicators
3.1 Price-Based Oscillators
- Momentum: Measures the basic speed of price movement.
Sample Output
Period Close Close (10 days ago) MOM_10 (Output) Market State
0-9 ... -- NaN Warm-up period
10 150.00 140.00 10.00 Positive Momentum
11 152.00 145.00 7.00 Momentum slowing (deceleration)
12 148.00 155.00 -7.00 Negative Momentum (Trend Reversal)- Rate of Change (ROC): The percentage change from a prior price point.
Sample Output
Period Close Close (n ago) MOM ROC_10 (Output) Interpretation
10 110 100 10 10.00% Strong Bullish Momentum
11 115 105 10 9.52% Price rising, but ROC slowing
12 100 110 -10 -9.09% Sharp Bearish Turn- MACD: A trend-following momentum indicator showing the relationship between two EMAs.
Sample Output
Index MACD_12_26_9 MACDh_12_26_9 MACDs_12_26_9 Signal
30 2.50 0.40 2.10 Bullish (MACD > Signal)
31 2.30 0.05 2.25 Momentum fading
32 2.15 -0.15 2.30 Bearish crossover- PPO: Percentage-based version of MACD.
Sample Output
Index PPO_12_26_9 PPOh_12_26_9 PPOs_12_26_9 Meaning
30 1.25 0.15 1.10 Bullish (PPO above Signal)
31 1.35 0.20 1.15 Strengthening bullish momentum
32 1.30 0.08 1.22 Momentum decelerating (histogram shrinking)
33 1.15 -0.05 1.20 Bearish crossover (PPO below Signal)- APO: Difference between two EMAs to measure momentum.
Sample Output
Index Close Fast MA (12) Slow MA (26) APO_12_26 Interpretation
25 150.00 148.00 145.00 3.00 Bullish momentum
26 155.00 150.00 146.00 4.00 Momentum increasing
27 145.00 149.00 147.00 2.00 Momentum fading
28 140.00 146.00 146.50 -0.50 Bearish crossover- TRIX: A triple-smoothed EMA oscillator used to filter out market noise.
Sample Output
Index TRIX_30_9 TRIXs_30_9 Interpretation
50 0.05 0.02 Bullish Momentum
51 0.08 0.04 Trend Accelerating
52 0.07 0.05 Trend Decelerating
53 0.04 0.05 Bearish Signal Cross3.2 Overbought / Oversold (OB/OS)
- RSI (Relative Strength Index): The classic momentum strength and OB/OS indicator.
Sample Output
Period Close Gain Loss RSI_14 (Output)
13 150 -- -- NaN (Warm-up)
14 155 5 0 58.2
15 162 7 0 65.4
16 170 8 0 72.1 (Overbought)- Percentage Volume Oscillator: Percentage Volume Oscillator is a Momentum Oscillator for Volume.
Sample Output
Index PVO_12_26_9 PVOh_12_26_9 PVOs_12_26_9 Interpretation
7 45.20 15.10 30.10 High activity; volume is 45% above average.
8 22.40 -5.20 27.60 Volume fading; PVO crossed below Signal.
9 5.10 -15.40 20.50 Rapidly declining interest.
10 -8.30 -18.20 9.90 Below average volume.
11 -15.40 -15.80 0.40 Extended quiet period.- Stochastic Oscillator: Compares a closing price to its price range over a given period.
Sample Output
Index STOCHk_14_3_3 STOCHd_14_3_3 Interpretation
15 75.20 70.10 Rising Momentum
16 82.50 75.90 Overbought Area (>80)
17 79.10 78.93 Momentum Slowing
18 72.40 78.00 Bearish Cross (K < D)- Stochastic RSI: Applies stochastic calculation to RSI values.
Sample Output
Index STOCHRSIk STOCHRSId Interpretation
30 15.0 10.5 Oversold Area
31 22.0 15.8 Bullish Cross (K > D)
32 45.0 27.3 Rapidly Rising Momentum
33 85.0 50.6 Overbought Area (>80)- Williams %R: A momentum indicator measuring the level of the close relative to the high-low range.
Sample Output
Period Close High (14d) Low (14d) WILLR_14 (Output)
13 100 110 90 -50.0 (Mid-range)
14 108 110 90 -10.0 (Overbought)
15 110 110 90 0.0 (At High)
16 92 110 90 -90.0 (Oversold)- CCI (Commodity Channel Index): Identifies cyclical turns by measuring deviations from the mean.
Sample Output
Period Typical Price SMA (14) MAD (14) CCI_14 (Output)
13 155.0 150.0 2.5 133.3 (Bullish)
14 148.0 150.5 3.0 -55.5 (Neutral)
15 140.0 149.0 4.2 -142.8 (Bearish)- CMO: Momentum oscillator measuring net price change.
Sample Output
Period Price Change Up Sum Down Sum CMO_14 (Output)
14 +10 40 10 60.0 (Overbought)
15 -5 35 15 40.0 (Cooling off)
16 -20 15 35 -40.0 (Bearish)- Ultimate Oscillator: Combines momentum over multiple timeframes.
Sample Output
Index Close BP TR UO_7_14_28 (Output) Interpretation
27 100 ... ... NaN Warm-up period (needs 28 rows)
28 105 5 7 52.4 Neutral
29 110 6 8 68.2 Approaching Overbought
30 112 2 5 71.5 Overbought (> 70)3.3 Advanced & Smoothed Momentum
- RSX: Noise-reduced, smoothed version of RSI.
Sample Output
Period Close RSI (Classic) RSX_14 (Output) Observation
100 150.2 65.4 64.12 Both rising
101 150.1 61.2 63.85 RSI drops sharply; RSX nudges down- Pretty Good Oscillator (PGO): Measures price deviation from SMA in ATR terms.
Sample Output
Index Close SMA (14) Smoothed ATR PGO_14 (Output) State
14 100.0 95.0 2.0 2.50 Strong Momentum
15 104.0 96.0 2.2 3.64 Bullish Breakout (>3)
16 102.0 97.0 2.3 2.17 Returning to Mean- Awesome Oscillator: A 34-period and 5-period SMA comparison using midpoints.
Sample Output
Index Median Price SMA (5) SMA (34) AO_5_34 (Output) Momentum State
33 100.0 98.0 95.0 3.0 Bullish
34 102.0 99.5 95.2 4.3 Accelerating Up
35 101.0 100.0 100.5 -0.5 Bearish Cross- Coppock Curve: Designed for long-term trend confirmation.
Sample Output
Index Price Change Fast ROC Slow ROC COPC_11_14_10 (Output) State
20 -10% -5.0 -8.0 -12.5 Deep Bearish
21 -2% -4.0 -6.0 -10.2 Turn Up (Potential Buy)
22 +5% +1.0 -2.0 -4.5 Recovering
23 +8% +4.0 +1.0 +2.1 Bullish Cross (>0)- KST (Know Sure Thing): A “summed” ROC oscillator for multi-timeframe confirmation.
Sample Output
Index KST_10_15_20_30 KSTs_9 (Signal) Interpretation
50 12.5 10.2 Bullish trend active
51 11.8 10.8 Momentum fading
52 9.5 11.2 Bearish Signal Cross
53 -2.1 8.5 Zero Line Cross (Bearish)- Center of Gravity (COG): Zero-lag indicator for identifying turning points
Sample Output
Index Close Weighting Calculation CG_10 (Output) Observation
9 100 Initial window sum -5.5 Center of 10-period window
10 105 Price weight shifts right -5.2 Rising CG (Bullish)
11 108 More weight on recent high -4.9 Accelerating Up
12 104 Price drops; weight shifts -5.3 Immediate Turn Down- Chande Forecast Oscillator: Measures deviation from linear regression forecast.
Sample Output
Index Close Linear Reg (TSF) CFO_9 (Output) Observation
10 100 98.5 1.50 Bullish (Price beating forecast)
11 102 101.0 0.98 Trend slowing
12 99 101.5 -2.52 Bearish Break (Price below forecast)- Inertia: Smoothed Relative Vigor Index for momentum confirmation.
Sample Output
Index RVI (Base) LinReg (20) INERTIA (Output) Observation
34 55.2 51.4 51.8 Bullish trend starting
35 48.1 51.8 52.2 Price dipped, but Inertia stayed bullish
36 42.0 50.5 49.8 Bearish Signal Cross (<50)- Relative Vigor Index (RVI): Assesses trend strength by comparing closing prices to the daily range.
Sample Output
Index RVGI_4_4 RVGIs_4_4
10 0.4521 0.4120
11 0.5104 0.4682
12 0.4892 0.4955
13 0.5345 0.5123
14 0.5812 0.5489- Elder Ray Index: Measures bull and bear power relative to a moving average.
Sample Output
Index BULLP_5 BEARP_5
10 1.12 -3.88
11 0.25 -4.75
12 1.48 -3.52
13 2.85 -2.15
14 3.92 -1.08- Bias: Measures deviation of price from its moving average.
Sample Output
Index BIAS_SMA_5 Percentage Equivalent
10 -0.0117 -1.17%
11 -0.0328 -3.28%
12 -0.0335 -3.35%
13 -0.0443 -4.43%
14 -0.0535 -5.35%- Slope: Quantifies trend direction and steepness.
Sample Output
Index Close Raw_Slope Angle_Degrees Interpretation
5 110 0.0 0.00° Flat / No Momentum
6 108 -2.0 -63.43° Sharp Descent
7 105 -3.0 -71.57° Accelerating Downward
8 101 -4.0 -75.96° Heavy Selling
9 98 -3.0 -71.57° Slight Deceleration- Correlation Trend Indicator: Measures how closely the price follows a linear trend.
Sample Output
Index Price CTI_5 Value Trend Strength
4 14.0 0.99 Extremely Strong Uptrend (Perfect Line)
6 14.5 0.85 Weakening Uptrend (Slight Deviation)
8 13.5 -0.65 Transitioning / Choppy Downtrend
10 12.0 -0.98 Strong Linear Downtrend
12 10.0 -0.99 Extremely Strong Downtrend- Efficiency Ratio: Quantifies trend efficiency versus market noise.
Sample Output
Index Close ER_10 Value Market Description
10 110.0 0.92 High Efficiency: Price is trending strongly with very few pullbacks.
11 110.5 0.50 Moderate Efficiency: Trending, but with noticeable "zig-zags."
12 108.0 0.15 Low Efficiency: Highly volatile/sideways market; lots of noise.
13 108.2 0.03 Congestion: Price is flat; noise outweighs any net movement.3.4 Sentiment & Power
- Balance of Power (BOP): Balance of Power measures the market strength of buyers against sellers.
Sample Output
Index Price Action BOP Value Interpretation
0 Closed near high, far from open 0.53 Strong Bullish Power
1 Opened high, closed near low -0.66 Strong Bearish Power
2 Narrow range, small green body 0.50 Moderate Bullish
3 Closed significantly below open -0.60 Selling Pressure
4 Gapped up, closed near high 0.25 Weak Bullish (Range was wide)- Willingness Index (BR): Measures trader conviction using closing prices.
- Percentage Price Oscillator: The Percentage Price Oscillator is similar to MACD in measuring momentum.
Sample Output
Index PPO_12_26_9 PPOh_12_26_9 PPOs_12_26_9
25 1.8542 0.2411 1.6131
26 1.4230 -0.1521 1.5751
27 0.9812 -0.4751 1.4563
28 0.5241 -0.7458 1.2699
29 0.0520 -0.9743 1.0263- Emotion Index (AR): Measures market sentiment based on opening prices.
4. Overlap (Price-Overlay) Indicators
These indicators are plotted directly on the price chart to identify trends and support/resistance levels.
- Simple Moving Average(SMA): The Simple Moving Average is the classic moving average that is the equally weighted average over n periods.
Sample Output
Index Close SMA_5 Interpretation
4 14 12.8 First calculation: (10+12+13+15+14)/5
5 16 14.0 Average is rising
6 18 15.2 Price is well above average (Bullish)
7 20 16.6 Strong upward momentum
8 19 17.4 Price dips, but stays above the SMA
9 21 18.8 Trend continues- Exponential Moving Average(EMA): The weights are determined by alpha, which is proportional to its length.
Sample Output
Index Close EMA_5 Analysis
4 10 10.40 Initial value (SMA of first 5 bars)
5 20 13.60 Reactive: Moves up sharply compared to an SMA
6 21 16.07 Catching up to the new price level
7 22 18.04 Closely tracking the trend
8 23 19.70 Minimal lag compared to standard averages
9 24 21.13 Strong bullish trend signal- Double Exponential Moving Average(DEMA): The Double Exponential Moving Average attempts to achieve a smoother average with less lag than the normal Exponential Moving Average (EMA).
Sample Output
Index Close DEMA_5 Observation
5 110 108.45 Reacting almost instantly to the jump.
6 115 114.20 Nearly overlapping with the current price.
7 120 120.05 Effectively "zero-lag" in a strong trend.
8 125 125.80 Can actually "lead" price slightly in extreme moves.
9 130 131.50 Strongest trend-following sensitivity.- Triple Exponential Moving Average(TEMA): A less laggy Exponential Moving Average.
Sample Output
Index Close TEMA_5 Observation
5 115 116.20 Ultra-Fast: Overtakes price due to momentum.
6 122 125.15 Aggressively tracking the steep slope.
7 130 134.40 Maximum lag compensation.
8 135 139.10 Excellent for trailing stops in parabolic moves.
9 140 143.25 Stays "ahead" of the trend to prevent late exits.- Zero-Lag Exponential Moving Average(ZLEMA): The Zero-Lag Moving Average attempts to eliminate the lag associated with moving averages. This is an adaptation created by John Ehler and Ric Way.
Sample Output
Index Close SMA_5 EMA_5 ZLMA_5 Interpretation
6 115.0 104.8 107.0 116.33 ZLMA reacts instantly to the surge.
7 120.0 108.4 111.33 123.56 ZLMA stays "tight" to the new high.
8 118.0 111.4 113.56 121.37 ZLMA begins turning with the price.
9 110.0 113.4 112.37 110.25 Crossover: ZLMA is already near the price.
10 105.0 113.6 109.91 100.08 SMA/EMA are still way "above" price.
11 102.0 111.0 107.28 95.39 ZLMA captures the full move down.- Kaufman Adaptive Moving Average(KAMA): Developed by Perry Kaufman, Kaufman’s Adaptive Moving Average (KAMA) is a moving average designed to account for market noise or volatility.
Sample Output
Index Close KAMA Behavior
4 100.0 100.0 Sideways: KAMA is flat, ignoring the ±1 noise.
5 105.0 100.4 Start of breakout; KAMA begins to react.
6 110.0 102.3 ER Increasing: KAMA starts accelerating.
7 115.0 106.8 Moving faster as the trend clarifies.
8 120.0 113.2 High Speed: Catching up to the trend.
9 125.0 121.1 Closely following the efficient price move.- Variable Index Dynamic Average (VIDYA): It was developed by Tushar Chande. It is similar to an Exponential Moving Average, but it has a dynamically adjusted lookback period that depends on relative price volatility, as measured by the Chande Momentum Oscillator (CMO).
Sample output
Index Close VIDYA Behavior
4 100.0 99.98 Consolidation: CMO is low; VIDYA barely moves.
5 105.0 100.52 Momentum Shift: CMO spikes; VIDYA wakes up.
6 112.0 103.11 Accelerating to catch the trend.
7 120.0 107.95 Highly efficient tracking.
8 128.0 114.63 High Velocity: Minimal lag during the move.
9 135.0 122.42 Firmly supporting the uptrend.- Arnaud Legoux Moving Average(ALMA): This moving average reduces the lag of the data in conjunction with smoothing to reduce noise. Implemented for Pandas TA by rengel8 based on the source provided below.
Sample Output
Index Close ALMA Interpretation
5 105.0 103.11 Catching up to the trend breakout.
6 107.0 105.12 Firmly supporting the move.
7 106.0 106.43 Pullback: Price dips, but ALMA stays steady.
8 108.0 107.18 Quickly resumes tracking as price recovers.
9 110.0 109.12 Near-zero lag at the current peak.- T3 Moving Average: Tim Tillson’s T3 Moving Average is considered a smoother and more responsive moving average relative to other moving averages.
Sample Output
Index Close T3_5 Interpretation
6 100.0 102.54 Price Dip: T3 begins to bend but doesn't "crash" with the price.
7 108.0 102.73 Recovery: T3 remains stable, confirming the dip was temporary.
8 112.0 104.56 Turning upward aggressively to follow the new momentum.
9 115.0 107.69 Moving vertically as the trend accelerates.
10 118.0 111.53 Catching up to the price with minimal lag.
11 120.0 115.31 Firmly supporting the new uptrend.- The Volume Weighted Moving Average (VWMA): It is a simple yet powerful technical indicator that bridges the gap between price and volume.
Sample Output
Index Close Volume SMA_5 VWMA_5 Observation
5 100.00 1,000 98.00 98.50 Normal trading; SMA and VWMA are close.
6 105.00 5,000 100.00 102.80 High Vol Surge: VWMA jumps to catch the "Smart Money."
7 106.00 1,000 102.50 103.50 Price rises, but low volume keeps VWMA steady.
8 104.00 800 103.50 103.80 Minor dip on low volume; VWMA holds support.
9 98.00 6,000 102.60 100.20 High Vol Drop: VWMA crashes down immediately.- Pascal’s Weighted Moving Average: Pascal’s Weighted Moving Average is similar to a symmetric triangular window except PWMA’s weights are based on Pascal’s Triangle.
Sample Output
Index Close SMA_5 PWMA_5 Observation
5 100.00 98.00 99.50 Smoothly following the trend.
6 105.00 100.00 101.80 Reacts to the surge with a graceful curve.
7 110.00 103.00 105.20 Higher weights in the center stabilize the line.
8 108.00 105.80 107.90 Ignores minor "flickers" better than WMA.
9 107.00 106.00 108.10 Stays stable even as price starts to range.- Fibonacci: Fibonacci’s Weighted Moving Average is similar to a Weighted Moving Average (WMA) where the weights are based on the Fibonacci Sequence.
Sample Output
Index Close SMA_5 FWMA_5 Observation
5 100.00 98.00 99.10 FWMA is already hugging the current price.
6 105.00 100.00 102.45 Sharp jump: Fibonacci weights prioritize the 105.
7 110.00 103.00 107.15 FWMA captures nearly the entire move.
8 108.00 105.80 108.35 Price dips; FWMA reacts instantly to the change.
9 107.00 106.00 107.40 Trend flattens; FWMA stays tight.- The Volume Weighted Average Price (VWAP): Moving averages only look at price over time; VWAP incorporates Volume, providing the “true” average price paid for a security during a specific session.
Sample Output
Time (TP) Volume TP × Vol VWAP Analysis
09:30 100.00 1,000 100,000 100.00 Session begins.
09:35 102.00 500 51,000 100.67 Rising on low volume.
09:40 105.00 5,000 525,000 104.00 Heavy Volume: VWAP jumps to follow the "Big Money."
09:45 104.00 1,000 104,000 104.00 Consolidation near VWAP.
09:50 103.00 500 51,500 103.93 Price dips below VWAP (Bearish bias).- Weighted Moving Average (WMA): It is a step up in complexity from the Simple Moving Average (SMA). While an SMA gives equal importance to every day in the lookback period, the WMA assigns a linear weight to each data point.
Sample Output
Index Close SMA_5 WMA_5 Observation
1 10.0 - - Warming up...
5 12.0 11.00 11.33 WMA is already pulling ahead of SMA.
6 15.0 12.00 13.00 Sharp jump: WMA reacts much faster.
7 18.0 13.40 15.47 WMA captures the momentum better.
8 17.0 14.40 16.33 Price dips: WMA turns faster than SMA.- Ichimoku: Uses mid-prices (the average of the high and low over a specific period) to find the “equilibrium” of the market.
Sample Output
Index Close ITS_9 (Tenkan) IKS_26 (Kijun) ISA_9 (Span A) ISB_26 (Span B) ICS_26 (Chikou)
96 152.00 150.50 148.00 145.20 144.10 148.50
97 153.50 151.25 148.00 145.45 144.10 147.20
98 155.00 152.50 149.50 145.80 144.50 149.00
99 154.50 153.00 149.50 146.10 144.50 146.50
100 156.00 154.50 150.00 147.20 145.00 NaN- LINREG: LinReg attempts to find the actual current trend value.
Sample Output
Index Close LinReg (LSMA) Slope (m) Analysis
10 100.0 98.50 0.20 Strong fit; price-leading trend.
11 101.5 99.10 0.35 Slope increasing; trend accelerating.
12 102.0 100.20 0.40 Trend Follower: LinReg stays below price.
13 100.5 100.80 -0.10 Reversal: Slope turns negative; LinReg > Price.
14 99.0 99.40 -0.30 Confirmed downward trend.5. Trend & Statistical Indicators
5.1 Trend Identification
- Aroon: The Aroon indicator measures the time elapsed since the highest high and lowest low within a specific window (default is 14 periods).
Sample Output
Period AROOND_14 (Down) AROONU_14 (Up) AROONOSC_14 (Oscillator) Trend Signal
13 NaN NaN NaN Warmup period
14 21.43 92.86 71.43 Strong Uptrend
15 14.29 100.00 85.71 New High Reached
16 7.14 92.86 85.72 Consolidation
17 100.00 85.71 -14.29 Reversal (New Low)
18 92.86 78.57 -14.29 Downward Momentum- Vortex: The Vortex Indicator (VTX) is based on the flow of water and identifies the start of a new trend. It consists of two lines: VI+ (Positive) and VI- (Negative). When these lines cross, it typically signals a trend reversal.
Sample Output
Period Close VTXP_14 (VI+) VTXM_14 (VI-) Signal
13 100.0 NaN NaN Warmup period
14 105.0 1.15 0.82 Bullish Trend (VI+ > VI-)
15 106.0 1.22 0.75 Strong Uptrend
16 102.0 0.98 1.05 Bearish Cross (VI- > VI+)
17 98.0 0.81 1.18 Strong Downtrend- **Linear Decay:**The Decay indicator is typically used to create a “fading” memory of a signal (like a price spike or a technical crossover). It ensures that a value stays high immediately after an event and gradually decreases until it hits zero or is “reset” by a new high price.
Sample Output
Period Close (Input) LDECAY_5 (Output) Logic / Interpretation
0 0.0 0.00 Starting base.
1 1.0 1.00 Spike! Indicator matches the close.
2 0.0 0.80 1.0 − (1/5) = 0.8
3 0.0 0.60 0.8 − (1/5) = 0.6
4 0.0 0.40 0.6 − (1/5) = 0.4
5 0.5 0.50 New Signal: Price (0.5) > Decay (0.2), so it resets.
6 0.0 0.30 0.5 − (1/5) = 0.3- VHF: The Vertical Horizontal Filter (VHF) is a trend-intensity indicator. Rather than telling you the direction of the market, it helps you decide which type of indicator to use: a trend-following indicator (like Moving Averages) or a momentum oscillator (like RSI).
Sample Output
Period Price Action VHF_28 Value Meaning
0-26 Loading data NaN Warmup
28 Aggressive Rally 0.65 Strong Trending
35 Parabolic Move 0.82 Extreme Trend (Watch for peak)
45 Choppy Sideways 0.35 Ranging Market
60 Tight Consolidation 0.15 Low Volatility / Congestion- PSAR: The Parabolic SAR (PSAR) is unique because it populates either the long column (dots below price) or the short column (dots above price), but never both at the same time.
Sample Output
Row PSARl_0.02_0.2 PSARs_0.02_0.2 PSARaf_0.02_0.2 PSARr_0.02_0.2
0 100.00 NaN 0.02 0
1 100.04 NaN 0.02 0
2 100.12 NaN 0.04 0
3 NaN 105.00 0.02 1
4 NaN 104.88 0.02 0- Detrended Price Oscillator (DPO): It is a unique tool that strips away long-term trends to highlight short-term cycles. Unlike most oscillators that use a difference between two moving averages (like MACD), DPO compares the price to a shifted moving average.
Sample Output
Period Close Price DPO_20 Interpretation
10 105.00 -1.25 Below trend (trough)
11 108.00 2.10 Crossing above trend
12 112.00 5.45 Cyclical High
... ... ... ...
18 115.00 NaN Shifted (No data yet)
19 116.00 NaN Shifted (No data yet)- Qstick: The Q Stick indicator, developed by Tushar Chande, is a simple yet effective way to quantify the “internal strength” of candlesticks over a set period. It essentially measures the average distance between the closing and opening prices.
Sample Output
Period Open Close Diff (C-O) QS_10 (SMA) Market Sentiment
9 100 102 +2 NaN Warmup
10 102 105 +3 0.85 Bullish Accumulation
11 105 106 +1 1.10 Rising Momentum
12 106 104 -2 0.90 Slight Pullback
13 104 100 -4 -0.15 Bearish Reversal (Cross below 0)- Choppiness Index: The Choppiness Index (CHOP) is a range-bound indicator that measures market “noise” rather than direction. Unlike the previous indicators, it doesn’t tell you if the price is going up or down; it tells you if the price is trending or sideways.
Sample Output
Period Price Action Context CHOP_14_1_100 Interpretation
0-13 Warmup NaN Insufficient data
14 Strong upward surge 32.45 Trending (Low value)
15 Continued trend 28.10 Strong Trend
16 Price stalls, starts ranging 45.30 Moving toward neutral
17 Sideways "sawtooth" movement 63.15 Choppy (High value)
18 Tight consolidation 68.90 Highly Congested5.2 Statistical Analysis
- Variance: Variance is a statistical measure that quantifies the spread of price data points around their mean over a specific lookback period.
Sample Output
Index Close Mean (5-p) VAR_5 Interpretation
4 100.0 100.0 0.00 Perfectly flat price; no variance.
5 102.0 100.4 0.80 Small movement starts increasing variance.
6 105.0 101.4 4.30 Increasing spread as price climbs.
7 115.0 104.4 37.30 Spike: Large price deviation creates high variance.
8 116.0 107.6 51.30 High volatility persists.
9 115.5 110.7 42.70 Variance stabilizes as price clusters at the new high.- Std Dev: It tells how much the price is “stretching” away from its average.
Sample Output
Index Close Mean (5-p) STDEV_5 Interpretation
10 100.00 100.00 0.00 No volatility; price is flat.
11 102.00 100.50 0.89 Slight movement detected.
12 110.00 103.00 4.12 Volatility Spike: Deviation from the mean is growing.
13 112.00 106.00 5.30 Strong upward expansion.
14 108.00 108.40 3.90 Volatility cooling as prices- MAD: Mean Absolute Deviation is a robust statistical measure of market volatility.
Sample Output
Index Close Mean (5-p) MAD_5 Interpretation
1 100 100.0 0.00 No deviation.
2 102 101.0 1.00 Price is 1 unit away from the mean on average.
3 105 102.3 2.04 Dispersion is increasing.
4 112 104.8 4.16 Volatility Spike: Significant stretch from mean.
5 110 107.8 3.84 Price pulls back; MAD begins to stabilize.- **Quantile:**The Rolling Quantile is a powerful statistical tool used to determine the relative standing of a current price within its recent history.
Sample Output
Index Close Median (q=0.5) Upper Quantile(q=0.9) Interpretation
20 100 98.0 102.5 Normal price action.
21 105 98.5 104.2 Price is "breaking out" of the 90th percentile.
22 110 99.0 108.5 Extremely rare price territory.
23 109 100.5 109.8 Upper threshold rising to meet the new high.
24 105 101.0 110.0 Price pulls back, but the 90% "ceiling" stays high.- Median: The Median finds the middle value in a sorted list of prices.
Sample Output
Index Close SMA_5 MEDIAN_5 Interpretation
10 100 100.0 100.0 Base level.
11 101 100.2 100.5 Slight upward movement.
12 120 104.2 101.0 The Spike: Median stays grounded; SMA jumps.
13 101 104.4 101.0 Price returns; Median barely moved.
14 102 104.8 101.0 SMA is still "bleeding" from the $120 spike.- Z-Score: Standardizes price relative to its mean.
Sample Output
Index Close Mean (20-p) Stdev (20-p) Z-Score Interpretation
11 100.00 100.00 2.50 0.00 Price at equilibrium.
12 105.00 101.00 3.20 1.25 Moving into "overbought" territory.
13 110.00 102.50 3.07 2.44 Extreme: Potentially overextended.
14 108.00 103.00 3.50 1.43 Mean reversion begins.
15 95.00 102.00 4.00 -1.75 Approaching an "oversold" floor.- Skew: Skewness (or Skew) measures the asymmetry of the price distribution over a set period.
Sample Output
Index Close Trend SKEW_30 Interpretation
11 100.0 Neutral 0.05 Nearly symmetrical distribution.
12 105.0 Rising 0.85 Positive Skew: Upside outliers are appearing.
13 106.0 Rising 0.60 Trend stabilizing.
14 85.0 Crash -1.20 Negative Skew: A major downside outlier has occurred.
15 86.0 Recovery -1.10 Distribution remains heavily "left-tailed".- Kurtosis: Describe distribution shape.
Sample Output
Index Close Behavior KURT_30 Interpretation
50 100.0 Steady 0.05 Normal, bell-curve behavior.
51 100.2 Range-bound -0.50 Platykurtic: Very stable, no outliers.
52 115.0 Flash Spike 2.40 Leptokurtic: An outlier has appeared.
53 116.0 Extreme Vol 3.10 Tailedness increasing; high risk of "tail events".
54 105.0 Mean Reverting 1.80 Outliers are still dominating the 30-day window.- Entropy: Measures randomness and unpredictability.
Sample Output
Index Close Behavior ENTP_10 Interpretation
20 100.5 Sideways 3.32 High randomness (market is "noisy").
21 100.2 Choppy 3.31 Maximum uncertainty.
22 105.0 Breakout 3.15 Entropy Falling: The market is finding order.
23 110.0 Strong Trend 2.95 Low randomness; high information conviction.
24 115.0 Parabolic 2.80 Market is highly ordered (Predictable momentum).6. Cycle Indicators
- Even Better Sinewave: Detects cyclical market behavior with reduced noise
Sample Output
Index Close EBSW Value Signal State Market Phase
50 150.00 0.05 Crossing Up Cycle turning Bullish
51 152.50 0.85 Near Peak High Momentum
52 153.00 1.00 Cycle Peak Exhaustion point
53 152.00 0.70 Falling Cycle Reversing
54 148.00 -0.90 Near Bottom Deeply Oversold (Cyclical)
55 147.50 -1.00 Cycle Trough Accumulation zone7. Data Inputs
OHLCV Data
All technical indicators are derived from these five core inputs:
- Open: Starting price.
- High: Peak price.
- Low: Bottom price.
- Close: Final price.
- Volume: Total units traded.
8. Fundamental Indicators
- Earnings Indicator: The Earnings Indicator is a volatility-based trading tool designed to capture statistically significant price reactions following corporate earnings announcements. Its objective is to identify short-term momentum opportunities arising from abnormal volatility and volume following earnings releases.
Objective
The Earnings Indicator helps traders:
- Detect statistically significant post-earnings moves.
- Filter out “normal” volatility reactions.
- Avoid low-probability trades.
- Systematically execute earnings momentum strategies.
How the Indicator Works
The model is primarily driven by volatility scaling.
Core Logic
- Analysis: The system analyzes intraday volatility over the past 10 trading days.
- Calculation: It computes a scaled return (a volatility-adjusted price move).
- Threshold: It generates a signal only if the move exceeds a defined threshold.
Default Threshold: ±1.5 Volatility Units
The selection of 1.5 is a strategic balance to ensure data quality:
- Above 1.5: Indicates a significant abnormal move (Statistically significant).
- Below 1.5: Often represents market noise.
- Above 2.0: Results in too few trade opportunities.
- Below 1.0: Generates too many low-quality, “noisy” trades.
This design avoids overfitting while successfully capturing meaningful statistical outliers.
Earnings Timing Logic (Critical)
Correct timing is essential for both live execution and backtesting accuracy. The Earnings Indicator supports two specific cases based on when the company reports:
Before Market Open (BMO)
If earnings are released before the market opens:
- The strategy triggers on the same trading day.
- Signal detection begins immediately upon that day’s opening.
After Market Close (AMC)
If earnings are released after the market has closed:
- The strategy triggers on the next trading day (T+1).
- T = The day the earnings were released.
- T+1 = The day the signal detection and execution begin.
Important
This timing logic is strictly consistent for both Forward Testing and Backtesting. There is no discrepancy between live deployment and historical results, ensuring your strategy behaves as expected in all environments.
Note: Technical indicators are most effective when used in combination (e.g., a trend indicator paired with a momentum oscillator) rather than in isolation.