Back to Twelve Data in Google Sheets
SheetXAI logo
Twelve Data logo
Twelve Data · Google Sheets Guide

Add RSI, MACD, and Bollinger Band Columns to a Watchlist Google Sheet

2026-05-15
5 min read

The Scenario

You've been running the momentum screen manually for six weeks. Every Sunday evening: open the sheet with 50 tickers, hit three separate API endpoints for RSI, MACD, and Bollinger Band width, copy the values into the right columns, and then write the OVERBOUGHT/OVERSOLD flags by hand because the data comes back as raw numbers. By the time the screen is ready, it's past midnight and you've already mentally checked out for the week.

The screen works. The process for maintaining it is slowly draining your willingness to keep it up.

The bad version:

  1. Pull RSI values from one endpoint, copy each value, and paste it into column B for the correct ticker row.
  2. Pull MACD data from a separate call, locate the histogram field in the response, and populate column C — realizing partway through that MACD responses include three separate fields and you've been grabbing the wrong one.
  3. Fetch Bollinger Band data, calculate band width from the upper and lower values manually, and paste the result into column D, then add the OVERBOUGHT/OVERSOLD flag in column E by eyeballing which rows have RSI values above 70 or below 30.

Nobody hires a quant analyst to spend Sunday nights copy-pasting numbers between browser tabs. But here you are.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent inside your Google Sheet. It reads the 50 tickers in column A and, through its built-in Twelve Data integration, fetches RSI, MACD histogram, and Bollinger Band data for each ticker, writes the values into the specified columns, and applies the signal flags — all in one prompt.

Calculate the 14-day RSI for each ticker in column A using Twelve Data daily data and write the latest RSI value into column B. Flag values above 70 as OVERBOUGHT and below 30 as OVERSOLD in column C. Fetch the latest MACD histogram value from Twelve Data and write it into column D. Fetch Bollinger Bands using 20-period daily data and calculate bandwidth ((upper - lower) / midline) and write the result into column E.

What You Get

  • Column B: latest 14-day RSI value for each ticker.
  • Column C: OVERBOUGHT, OVERSOLD, or blank based on the RSI thresholds.
  • Column D: latest MACD histogram value (positive means histogram above zero, negative means below).
  • Column E: Bollinger Band width as a decimal ratio, ready for ranking.
  • Any ticker with insufficient price history for the 14-period RSI or 20-period Bollinger calculation flagged with N/A DATA in column F.

What If the Data Is Not Quite Ready

If you want to add MACD signal line and MACD line alongside the histogram

Fetch MACD values from Twelve Data for each stock in column A. Write the MACD line into column B, the signal line into column C, and the histogram into column D. In column E, write BULLISH CROSS if the MACD line crossed above the signal line in the most recent period, BEARISH CROSS if it crossed below, or NEUTRAL otherwise.

If your watchlist has tickers with very recent IPO dates that lack enough history for RSI

Calculate the 14-day RSI from Twelve Data for each ticker in column A. Where fewer than 14 trading days of history are available, write INSUFFICIENT HISTORY in column B rather than a value. Write RSI for all other tickers normally and apply OVERBOUGHT/OVERSOLD flags in column C.

If you want to scope the screen to a specific time window rather than the most recent data

Fetch the 14-day RSI from Twelve Data for each ticker in column A as of the date in column B. Write the RSI value as of that date into column C and flag OVERBOUGHT or OVERSOLD in column D. This allows you to backtest the screen as of a past date.

Kill-chain: pull all three indicators, rank by momentum score, and highlight top 10

Fetch the 14-day RSI, MACD histogram, and 20-period Bollinger Band width from Twelve Data for each ticker in column A. Write RSI into column B, histogram into column C, bandwidth into column D. Calculate a composite momentum score: RSI normalized to 0-1 range plus MACD histogram sign (1 if positive, 0 if negative) plus inverse bandwidth normalized to 0-1 (lower bandwidth gets a higher score). Write the composite score into column E and rank tickers from highest to lowest score in column F. Highlight the top 10 rows in green.

Try It

Get the 7-day free trial of SheetXAI and open your watchlist sheet with tickers in column A, then ask it to populate the full technical signal grid in one pass. Also see building a trend-direction dashboard and the full Twelve Data overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more