Moving Averages
Trend-following indicators that smooth price data over time. Moving averages help identify trend direction, support/resistance levels, and generate trading signals through crossovers and price interactions.
Overview
Simple Moving Average (SMA)
Arithmetic mean of prices over a specified period. Equal weight given to all data points.
Exponential Moving Average (EMA)
Weighted average giving more importance to recent prices. More responsive to price changes.
Functions Reference
sma - arithmetic mean over specified period
sma(source: TimeSeries, period: number, priceIndex?: number = 1): TimeSeries
Parameters:
- source (TimeSeries) - Source data for calculation
- period (number) - Number of periods for calculation
- priceIndex (number) - Index of price data (default: 1)
Returns:
TimeSeries (simple moving average values)
Code Example:
ema - weighted average giving more weight to recent prices
ema(source: TimeSeries, period: number, priceIndex?: number = 1): TimeSeries
Parameters:
- source (TimeSeries) - Source data for calculation
- period (number) - Number of periods for calculation
- priceIndex (number) - Index of price data (default: 1)
Returns:
TimeSeries (exponential moving average values)
Code Example:
_sma - Simple Moving Average helper function
_sma(barIndex: number, series: TimeSeries, period: number, priceIndex?: number = 12): number
Parameters:
- barIndex (number) - Current bar index
- series (TimeSeries) - Source data series
- period (number) - Number of periods for calculation
- priceIndex (number) - Index of price data (default: 12)
Returns:
number (moving average value at specific bar)
Code Example:
_ema - Exponential Moving Average helper function
_ema(barIndex: number, series: TimeSeries, period: number, priceIndex?: number = 12): number
Parameters:
- barIndex (number) - Current bar index
- series (TimeSeries) - Source data series
- period (number) - Number of periods for calculation
- priceIndex (number) - Index of price data (default: 12)
Returns:
number (exponential moving average value at specific bar)
Code Example:
Common Usage Patterns
Golden Cross Strategy
Detect bullish momentum when fast MA crosses above slow MA
Price Support/Resistance
Use moving averages as dynamic support and resistance levels
Multiple MA Analysis
Combine different period moving averages for trend confirmation
Best Practices
Period Selection
Common periods: 20 (short-term), 50 (medium-term), 200 (long-term). Adjust based on trading timeframe and market volatility.
EMA vs SMA
Use EMA for faster signals in trending markets, SMA for smoother signals in ranging markets. EMA reacts quicker to price changes.
Confirmation
Combine moving averages with volume, RSI, or other indicators for stronger signal confirmation. Never rely on MA alone.
False Signals
Moving averages lag price action. In choppy markets, use additional filters to reduce whipsaws and false breakouts.