RTI Functions: Real-Time Streaming Technical Indicators in Excel (Complete Guide 2026)

M
MarketXLS Team
Published
RTI real-time streaming technical indicators in Excel - MACD RSI VWAP Bollinger Bands live dashboard

If you've ever wanted institutional-grade technical analysis updating live in your Excel spreadsheet, RTI functions are exactly what you've been waiting for. RTI — short for Real-Time Indicator — is a family of MarketXLS functions that compute technical indicators on live streaming market data, directly inside your cells.

No manual refresh. No API calls. No coding. Just type a formula like =RTI_RSI("AAPL", 5, 14, "Last") and watch the 14-period RSI update every few seconds as new price data flows in from QuoteMedia's institutional-grade streaming feed.

This guide covers every RTI function available in MarketXLS, explains the technical concepts behind each indicator, and shows you how to combine them into powerful real-time trading dashboards.

How RTI Functions Work

Before diving into individual functions, it helps to understand the architecture behind them. RTI functions are different from traditional MarketXLS functions in several important ways:

Traditional functions make an API call each time you calculate, fetch a snapshot of data, and return a static result. They're great for end-of-day analysis and historical research.

RTI functions tap into a live streaming connection. Here's what happens behind the scenes:

  1. You enter the formula — MarketXLS registers your symbol for real-time streaming
  2. QuoteMedia streams live ticks — Price updates arrive every few seconds via a persistent connection
  3. Data is cached in memory — Ticks are aggregated into interval bars (1-minute, 5-minute, 15-minute, or 60-minute)
  4. Indicators are computed on each refresh — Your formula recalculates using the latest cached data
  5. The cell updates automatically — No manual refresh, no button clicks

This means you can have dozens of RTI formulas across your spreadsheet, all updating simultaneously, all computing on the same shared data stream. It's the same architecture used by professional trading platforms — just delivered through Excel.

Prerequisites

Before using RTI functions, make sure:

  • MarketXLS is installed and active in Excel
  • QuoteMedia streaming is configured — Go to Settings > Data Subscriptions > QuoteMedia
  • Excel is in automatic calculation mode — Formulas > Calculation Options > Automatic
  • Internet connection is active for live data streaming

Common Parameters

Most RTI functions share these parameters:

ParameterTypeDefaultDescription
symbolStringRequiredStock ticker symbol — "AAPL", "MSFT", "TSLA", etc.
intervalInteger5Bar interval in minutes: 1, 5, 15, or 60
lookbackIntegervariesNumber of historical periods for the calculation (max 200)
fieldString"Last"Price field: "Last", "Open", "High", "Low", "Close"
indexInteger0Bar offset: 0 = current/latest, 1 = previous bar, 2 = two bars ago

The index parameter is particularly powerful — it lets you access not just the current indicator value, but also historical values. For example, =RTI_RSI("AAPL", 5, 14, "Last", 1) gives you the RSI from the previous bar, which you can compare against the current bar to detect crossovers.


Price & Volume Functions

These are the foundation — raw streaming price and volume data for any symbol.

RTI_Last — Latest Price

Returns the most recent traded price, updating in real time.

=RTI_Last("AAPL")
=RTI_Last("AAPL", 5)           ' 5-minute interval
=RTI_Last("AAPL", 5, 1)        ' Previous bar's last price

RTI_Open / RTI_High / RTI_Low / RTI_Close

OHLC data for the current (or historical) interval bar.

=RTI_Open("AAPL", 5)           ' Open of current 5-min bar
=RTI_High("AAPL", 15)          ' High of current 15-min bar
=RTI_Low("AAPL", 5, 1)         ' Low of the previous 5-min bar
=RTI_Close("AAPL", 60)         ' Close of current hourly bar

RTI_Volume — Bar Volume

=RTI_Volume("AAPL", 5)         ' Volume in current 5-min bar
=RTI_Volume("TSLA", 1)         ' Volume in current 1-min bar

RTI_Time — Bar Timestamp

=RTI_Time("AAPL", 5)           ' Timestamp of current 5-min bar

RTI_Stream_Value — Generic Field Accessor

A flexible function that can retrieve any available streaming metric.

=RTI_Stream_Value("AAPL", 5, 50, "Last", 0)

Moving Average Functions

Moving averages smooth price data to identify trends. They're the building blocks of many trading strategies.

RTI_SMA — Simple Moving Average

The SMA gives equal weight to all periods. A 20-period SMA on 5-minute bars averages the last 20 five-minute closing prices.

=RTI_SMA("AAPL", 5, 20, "Last")      ' 20-period SMA on 5-min bars
=RTI_SMA("TSLA", 1, 50, "Last")      ' 50-period SMA on 1-min bars
=RTI_SMA("MSFT", 15, 9, "Last", 1)   ' 9-SMA on 15-min, previous bar

Trading application: When price crosses above the SMA, it suggests bullish momentum. The 9/20 SMA crossover is a classic intraday signal.

RTI_EMA — Exponential Moving Average

The EMA places more weight on recent prices, making it more responsive to new information than the SMA. Traders use EMAs for faster signal generation.

=RTI_EMA("AAPL", 5, 12, "Last")      ' 12-period EMA (fast)
=RTI_EMA("AAPL", 5, 26, "Last")      ' 26-period EMA (slow)
=RTI_EMA("SPY", 1, 9, "Last")        ' 9 EMA on 1-min for scalping

Trading application: The 12/26 EMA pair forms the basis of the MACD indicator. A faster EMA crossing above a slower EMA signals bullish momentum.


Momentum Indicators

Momentum indicators measure the speed and strength of price movements. They help identify overbought/oversold conditions and potential reversals.

RTI_RSI — Relative Strength Index

RSI measures the magnitude of recent price changes on a scale of 0 to 100. Developed by J. Welles Wilder, it's one of the most widely used technical indicators in the world.

  • Above 70: Overbought — price may be due for a pullback
  • Below 30: Oversold — price may be due for a bounce
  • 50 level: Often acts as support/resistance for the RSI itself
=RTI_RSI("AAPL", 5, 14, "Last")      ' Standard 14-period RSI
=RTI_RSI("TSLA", 1, 7, "Last")       ' Fast 7-period RSI for scalping

Strategy formula — Auto-label conditions:

=IF(RTI_RSI("AAPL",5,14,"Last")>70, "OVERBOUGHT",
  IF(RTI_RSI("AAPL",5,14,"Last")<30, "OVERSOLD", "NEUTRAL"))

RTI_MACD — Moving Average Convergence Divergence

MACD reveals changes in the strength, direction, momentum, and duration of a trend. It consists of three components:

  • MACD Line: Difference between the 12-period and 26-period EMA
  • Signal Line: 9-period EMA of the MACD line
  • Histogram: MACD line minus signal line (visual representation of momentum)

When the MACD line crosses above the signal line, it generates a bullish signal. When it crosses below, it's bearish.

=RTI_MACD("AAPL", 5, 50, "Last", "macd")        ' MACD line
=RTI_MACD("AAPL", 5, 50, "Last", "signal")       ' Signal line
=RTI_MACD("AAPL", 5, 50, "Last", "histogram")    ' Histogram

Convenience functions (no component parameter needed):

=RTI_MACD_Signal("AAPL")          ' Signal line with defaults
=RTI_MACD_Histogram("AAPL")       ' Histogram with defaults

Strategy formula — MACD crossover detection:

=IF(RTI_MACD("AAPL",5,50,"Last","macd") >
    RTI_MACD("AAPL",5,50,"Last","signal"),
    "BUY SIGNAL", "SELL SIGNAL")

Important: MACD needs at least 35 data points (26 for the slow EMA + 9 for the signal). Set lookback to 50 or higher to ensure enough data.

RTI_Stochastic — Stochastic Oscillator

The Stochastic Oscillator compares a stock's closing price to its price range over N periods. It returns two lines:

  • %K (fast line): The raw stochastic value
  • %D (slow/signal line): A 3-period SMA of %K

Both lines move between 0 and 100. Readings above 80 suggest overbought conditions; below 20 suggest oversold. Crossovers of %K and %D generate trading signals.

=RTI_Stochastic("AAPL", 5, 14, "k")    ' %K line
=RTI_Stochastic("AAPL", 5, 14, "d")    ' %D line

Strategy formula — Crossover signal:

=IF(RTI_Stochastic("AAPL",5,14,"k") >
    RTI_Stochastic("AAPL",5,14,"d"),
    "BULLISH", "BEARISH")

Volatility Indicators

Volatility indicators measure how much and how fast prices are moving. They're essential for position sizing, stop-loss placement, and identifying potential breakouts.

RTI_BollingerBands — Bollinger Bands

Developed by John Bollinger, this indicator plots bands at two standard deviations above and below a moving average. The bands expand during high volatility and contract during low volatility — a contraction (called a "squeeze") often precedes a significant price move.

Three components:

  • Upper Band: SMA + 2 standard deviations
  • Middle Band: 20-period SMA
  • Lower Band: SMA - 2 standard deviations
=RTI_BollingerBands("AAPL", 5, 20, "Last", "upper")    ' Upper band
=RTI_BollingerBands("AAPL", 5, 20, "Last", "middle")   ' Middle band
=RTI_BollingerBands("AAPL", 5, 20, "Last", "lower")    ' Lower band

Bandwidth (volatility measure):

=RTI_BollingerBands("AAPL",5,20,"Last","upper") -
  RTI_BollingerBands("AAPL",5,20,"Last","lower")

Strategy formula — Bollinger squeeze detection:

=IF((RTI_BollingerBands("AAPL",5,20,"Last","upper") -
     RTI_BollingerBands("AAPL",5,20,"Last","lower")) /
     RTI_BollingerBands("AAPL",5,20,"Last","middle") < 0.02,
    "SQUEEZE - BREAKOUT IMMINENT", "NORMAL")

RTI_ATR — Average True Range

ATR measures market volatility by calculating the average range of price bars over N periods, accounting for gaps between bars. Higher ATR means more volatile price action.

ATR is invaluable for:

  • Setting stop-losses — Use a multiple of ATR (e.g., 2x ATR) for dynamic stops
  • Position sizing — Smaller positions in high-ATR (volatile) stocks
  • Identifying breakouts — ATR expansion often signals the start of a new trend
=RTI_ATR("AAPL", 5, 14)              ' 14-period ATR on 5-min bars
=RTI_ATR("TSLA", 1, 14)              ' ATR on 1-min (higher for volatile stocks)

Strategy formula — Dynamic stop-loss:

=RTI_Last("AAPL") - 2 * RTI_ATR("AAPL", 5, 14)    ' Stop at 2x ATR below price

Trend Indicators

RTI_ADX — Average Directional Index

ADX measures the strength of a trend on a 0-100 scale — not the direction. A rising ADX means the trend is getting stronger, whether it's up or down.

  • ADX > 25: Strong trend — use trend-following strategies
  • ADX < 20: No trend / ranging market — use mean-reversion strategies
  • ADX 20-25: Trend may be developing
=RTI_ADX("AAPL", 5, 14)              ' 14-period ADX

Strategy formula — Market regime detection:

=IF(RTI_ADX("AAPL",5,14) > 25, "TRENDING", "RANGING")

This is incredibly useful because different strategies work in different market conditions. Trend-following strategies (moving average crossovers, breakouts) work when ADX is high. Mean-reversion strategies (RSI extremes, Bollinger band touches) work when ADX is low.


Volume Indicators

Volume confirms price movements. A price move on high volume is more significant than the same move on low volume. These indicators quantify that relationship.

RTI_VWAP — Volume Weighted Average Price

VWAP is the single most important intraday benchmark used by institutional traders. It represents the average price weighted by volume throughout the trading day.

  • Price above VWAP: Bullish bias — buyers are in control
  • Price below VWAP: Bearish bias — sellers are in control
  • Price at VWAP: Fair value for the day

Institutions often use VWAP to evaluate execution quality. If they bought below VWAP, they got a good fill.

=RTI_VWAP("AAPL", 5)                 ' Current VWAP
=RTI_Last("AAPL") - RTI_VWAP("AAPL", 5)    ' Distance from VWAP

Strategy formula — VWAP position:

=IF(RTI_Last("AAPL") > RTI_VWAP("AAPL",5),
    "ABOVE VWAP", "BELOW VWAP")

RTI_OBV — On-Balance Volume

OBV is a cumulative volume indicator that adds volume on up-bars and subtracts volume on down-bars. The theory: volume precedes price — OBV often breaks out before price does.

  • Rising OBV with rising price: Confirms the uptrend
  • Rising OBV with flat/falling price: Accumulation — bullish divergence
  • Falling OBV with rising price: Distribution — bearish divergence
=RTI_OBV("AAPL", 5)                  ' On-Balance Volume

RTI_MFI — Money Flow Index

MFI is essentially RSI applied to volume-weighted price data. It measures buying and selling pressure on a 0-100 scale.

  • Above 80: Overbought with heavy volume — potential reversal
  • Below 20: Oversold with heavy volume — potential bounce
  • Divergence from price: Strong reversal signal
=RTI_MFI("AAPL", 5, 14)              ' 14-period MFI

Strategy formula — Volume-confirmed overbought/oversold:

=IF(RTI_MFI("AAPL",5,14) > 80, "OVERBOUGHT (VOLUME CONFIRMED)",
  IF(RTI_MFI("AAPL",5,14) < 20, "OVERSOLD (VOLUME CONFIRMED)", "NEUTRAL"))

RTI_AD — Accumulation/Distribution Line

The A/D line measures the cumulative flow of money into and out of a stock. It uses the position of the close within the bar's range, weighted by volume.

  • Close near the high + high volume: Money flowing in (accumulation)
  • Close near the low + high volume: Money flowing out (distribution)
=RTI_AD("AAPL", 5)                   ' Accumulation/Distribution line

Time-Based Functions

These functions let you reference specific moments in the trading day — perfect for measuring moves from the open, tracking specific time-of-day patterns, or comparing current price to earlier levels.

RTI_Price_At_Min / RTI_Volume_At_Min

Retrieve price or volume at a specific clock time.

=RTI_Price_At_Min("AAPL", "09:30")        ' Price at market open
=RTI_Price_At_Min("AAPL", "10:00")        ' Price at 10:00 AM
=RTI_Volume_At_Min("AAPL", "09:30")       ' Volume at market open

RTI_Price_Change_From_Min / RTI_Price_ChangePct_From_Min

Measure how much price has moved since a specific time.

=RTI_Price_Change_From_Min("AAPL", "09:30")       ' Dollar change from open
=RTI_Price_ChangePct_From_Min("AAPL", "09:30")    ' Percent change from open

Relative Time Functions

Look back a specific number of minutes from the current time — no clock time needed.

=RTI_Price_X_Min_Ago("AAPL", 10)                  ' Price 10 minutes ago
=RTI_PriceChange_X_Min_Ago("AAPL", 10)            ' Change in last 10 min
=RTI_PriceChangePct_X_Min_Ago("AAPL", 10)         ' % change in last 10 min
=RTI_HighestPrice_in_X_Mins("AAPL", 30)           ' 30-min high
=RTI_LowestPrice_in_X_Mins("AAPL", 30)            ' 30-min low

30-minute trading range:

=RTI_HighestPrice_in_X_Mins("AAPL", 30) -
  RTI_LowestPrice_in_X_Mins("AAPL", 30)

Building a Live Trading Dashboard

Here's how to combine multiple RTI functions into a comprehensive real-time dashboard. Enter a symbol in cell A2 (e.g., "AAPL") and use these formulas:

Price Panel

CellFormulaDescription
B2=RTI_Last(A2)Current price
B3=RTI_Volume(A2, 5)Current volume
B4=RTI_VWAP(A2, 5)VWAP
B5=RTI_Last(A2) - RTI_VWAP(A2, 5)Distance from VWAP

Momentum Panel

CellFormulaDescription
C2=RTI_RSI(A2, 5, 14, "Last")RSI (14)
C3=RTI_MACD(A2, 5, 50, "Last", "macd")MACD Line
C4=RTI_MACD(A2, 5, 50, "Last", "signal")MACD Signal
C5=RTI_Stochastic(A2, 5, 14, "k")Stochastic %K

Trend & Volatility Panel

CellFormulaDescription
D2=RTI_SMA(A2, 5, 20, "Last")20-SMA
D3=RTI_EMA(A2, 5, 12, "Last")12-EMA
D4=RTI_ATR(A2, 5, 14)ATR (14)
D5=RTI_ADX(A2, 5, 14)ADX (14)

Bollinger Bands Panel

CellFormulaDescription
E2=RTI_BollingerBands(A2, 5, 20, "Last", "upper")Upper Band
E3=RTI_BollingerBands(A2, 5, 20, "Last", "middle")Middle Band
E4=RTI_BollingerBands(A2, 5, 20, "Last", "lower")Lower Band

Volume Indicators Panel

CellFormulaDescription
F2=RTI_OBV(A2, 5)On-Balance Volume
F3=RTI_MFI(A2, 5, 14)Money Flow Index
F4=RTI_AD(A2, 5)Accumulation/Distribution

Ready-Made Strategy Formulas

Copy these formulas directly into your spreadsheet for instant signal detection:

RSI Overbought/Oversold:

=IF(RTI_RSI("AAPL",5,14,"Last")>70,"OVERBOUGHT",
  IF(RTI_RSI("AAPL",5,14,"Last")<30,"OVERSOLD","NEUTRAL"))

MACD Crossover:

=IF(RTI_MACD("AAPL",5,50,"Last","macd") >
    RTI_MACD("AAPL",5,50,"Last","signal"),
    "BUY SIGNAL","SELL SIGNAL")

Bollinger Squeeze Alert:

=IF((RTI_BollingerBands("AAPL",5,20,"Last","upper") -
     RTI_BollingerBands("AAPL",5,20,"Last","lower")) /
     RTI_BollingerBands("AAPL",5,20,"Last","middle") < 0.02,
    "SQUEEZE","NORMAL")

Trend Strength Filter:

=IF(RTI_ADX("AAPL",5,14)>25,"TRENDING","RANGING")

Dynamic Stop-Loss (2x ATR):

=RTI_Last("AAPL") - 2 * RTI_ATR("AAPL", 5, 14)

Momentum Score (RSI + Stochastic average):

=(RTI_RSI("AAPL",5,14,"Last") + RTI_Stochastic("AAPL",5,14,"k")) / 2

30-Minute Range Breakout:

=IF(RTI_Last("AAPL") > RTI_HighestPrice_in_X_Mins("AAPL",30),
    "BREAKOUT UP",
  IF(RTI_Last("AAPL") < RTI_LowestPrice_in_X_Mins("AAPL",30),
    "BREAKOUT DOWN","IN RANGE"))

VWAP Mean Reversion:

=IF(RTI_Last("AAPL") < RTI_VWAP("AAPL",5) * 0.99,
    "BELOW VWAP - POTENTIAL BUY","HOLD")

Complete Function Reference

FunctionCategoryDescription
RTI_LastPriceLatest traded price
RTI_OpenPriceOpen of current bar
RTI_HighPriceHigh of current bar
RTI_LowPriceLow of current bar
RTI_ClosePriceClose of current bar
RTI_VolumePriceVolume of current bar
RTI_TimePriceTimestamp of current bar
RTI_Stream_ValuePriceGeneric field accessor
RTI_SMAMoving AverageSimple Moving Average
RTI_EMAMoving AverageExponential Moving Average
RTI_RSIMomentumRelative Strength Index (0-100)
RTI_MACDMomentumMACD line/signal/histogram
RTI_MACD_SignalMomentumMACD signal line
RTI_MACD_HistogramMomentumMACD histogram
RTI_StochasticMomentumStochastic %K or %D (0-100)
RTI_BollingerBandsVolatilityBollinger upper/middle/lower
RTI_ATRVolatilityAverage True Range
RTI_ADXTrendAverage Directional Index (0-100)
RTI_VWAPVolumeVolume Weighted Average Price
RTI_OBVVolumeOn-Balance Volume
RTI_MFIVolumeMoney Flow Index (0-100)
RTI_ADVolumeAccumulation/Distribution
RTI_Price_At_MinTime-BasedPrice at specific time
RTI_Volume_At_MinTime-BasedVolume at specific time
RTI_Price_Change_From_MinTime-BasedChange since specific time
RTI_Price_ChangePct_From_MinTime-Based% change since specific time
RTI_Price_X_Min_AgoRelativePrice X minutes ago
RTI_PriceChange_X_Min_AgoRelativeChange from X minutes ago
RTI_PriceChangePct_X_Min_AgoRelative% change from X minutes ago
RTI_HighestPrice_in_X_MinsRelativeHighest in last X minutes
RTI_LowestPrice_in_X_MinsRelativeLowest in last X minutes

Tips for Best Results

  1. Use 5-minute intervals as your default — they balance responsiveness with data efficiency
  2. Set lookback to 50+ for MACD — it needs at least 35 bars for the slow EMA + signal calculation
  3. Functions show "Collecting data..." until enough bars accumulate — this is normal, just wait a few minutes
  4. Combine indicators for stronger signals — RSI + MACD agreement is more reliable than either alone
  5. Use the index parameter to look back at previous bars rather than creating many separate formulas
  6. ADX helps you choose your strategy — trend-following when ADX > 25, mean-reversion when ADX < 20
  7. VWAP is most meaningful intraday — it resets each trading day

RTI functions put the full power of institutional-grade technical analysis directly in your Excel spreadsheet. Whether you're building a multi-stock screener, a real-time alerting system, or a comprehensive trading dashboard, these functions give you everything you need — no coding required.

Ready to get started? Download MarketXLS and start building your real-time trading dashboard today.

Important Disclaimer

The information provided in this article is for educational and informational purposes only and should not be construed as investment advice, a recommendation, or an offer to buy or sell any securities. MarketXLS is a financial data platform and is not a registered investment advisor, broker-dealer, or financial planner. Always conduct your own research and consult with a qualified financial professional before making any investment decisions. Past performance is not indicative of future results. Trading and investing involve substantial risk of loss.

Interested in building, analyzing and managing Portfolios in Excel?
Download our Free Portfolio Template
I agree to the MarketXLS Terms and Conditions
Call: 1-877-778-8358
Ankur Mohan MarketXLS
Welcome! I'm Ankur, the founder and CEO of MarketXLS. With more than ten years of experience, I have assisted over 2,500 customers in developing personalized investment research strategies and monitoring systems using Excel.

I invite you to book a demo with me or my team to save time, enhance your investment research, and streamline your workflows.
Implement "your own" investment strategies in Excel with thousands of MarketXLS functions and templates.
MarketXLS provides all the tools I need for in-depth stock analysis. It's user-friendly and constantly improving. A must-have for serious investors.

John D.

Financial Analyst

I have been using MarketXLS for the last 6+ years and they really enhanced the product every year and now in the journey of bringing in AI...

Kirubakaran K.

Investment Professional

MarketXLS is a powerful tool for financial modeling. It integrates seamlessly with Excel and provides real-time data.

David L.

Financial Analyst

I have used lots of stock and option information services. This is the only one which gives me what I need inside Excel.

Lloyd L.

Professional Trader

Meet The Ultimate Excel Solution for Investors

Live Streaming Prices in your Excel
All historical (intraday) data in your Excel
Real time option greeks and analytics in your Excel
Leading data service for Investment Managers, RIAs, Asset Managers
Easy to use with formulas and pre-made sheets