DEV Community

Cover image for Technical Indicators Demystified: Using the Finance Toolkit to Read Market Signals
Jeroen Bouma
Jeroen Bouma

Posted on

Technical Indicators Demystified: Using the Finance Toolkit to Read Market Signals

On April 20, 2026, NVIDIA's 14-day Relative Strength Index reached 98.63. By June 10, the stock had lost roughly 20% from that peak and the RSI had collapsed to 32.97. Anyone watching the indicator had at least one clear signal that the move was exhausted long before the correction fully played out.

This article works through four of the most widely used technical indicators - RSI, MACD, the 50-day exponential moving average, and Bollinger Bands - using NVIDIA as a case study across two years of price history. The Finance Toolkit computes all of them natively. Each section includes Python code and an MCP prompt so you can run the same analysis whether you want to write code or just ask a question in Claude. For more information on the Finance Toolkit, have a look here. To explore the Finance Toolkit MCP, see here.

Technical indicators do not predict the future. What they do is measure the current state of price momentum, trend direction, and volatility in a standardized, repeatable way. The signals they produce are probabilistic, not deterministic - a reading of 98 on the RSI does not guarantee a reversal, but it does tell you that buying pressure has reached an extreme that has historically been unsustainable.

Setting Things Up

Start by installing the Finance Toolkit:

pip install financetoolkit
Enter fullscreen mode Exit fullscreen mode

Then import the library and create a Toolkit instance for NVIDIA, using daily price data from the start of 2024:

from financetoolkit import Toolkit

company = Toolkit(
    tickers=["NVDA"],
    api_key="YOUR_FMP_API_KEY",
    start_date="2024-01-01"
)
Enter fullscreen mode Exit fullscreen mode

Get your FMP API key at jeroenbouma.com/fmp. The free plan covers five years of history; a paid plan unlocks longer datasets and non-US tickers.

RSI: When Buying Pressure Reaches an Extreme

The Relative Strength Index measures the speed and magnitude of recent price changes to assess whether an asset is overbought or oversold. It runs on a scale from 0 to 100. Readings above 70 are conventionally flagged as overbought; readings below 30 suggest the opposite. The default window is 14 trading days.

For NVIDIA, the RSI tells a story of repeated extremes. The stock spent much of early 2024 in overbought territory as AI infrastructure spending drove the price higher, then corrected sharply in April and again in July before recovering. The same pattern repeated in 2025 during the DeepSeek selloff, the April tariff shock, and the May trade-truce rally. The April 2026 peak pushed the RSI to levels that are statistically rare for any large-cap stock.

To compute the RSI, access the technicals module on the Toolkit instance:

rsi = company.technicals.get_relative_strength_index(
    period="daily",
    window=14
)
Enter fullscreen mode Exit fullscreen mode

Which returns:

Date NVDA RSI Reading
2024-01-24 97.00 Extreme overbought
2024-04-19 28.55 Oversold
2024-07-30 21.04 Deep oversold
2025-01-27 31.97 Oversold (DeepSeek gap-down)
2025-04-08 24.37 Oversold (tariff selloff)
2025-05-16 92.67 Extreme overbought (trade truce)
2026-04-20 98.63 Historic extreme
2026-06-04 35.85 Cooling off
2026-06-16 46.49 Neutral

Several things stand out. The April 2025 reading of 24.37 coincided with the peak of the US-China tariff shock - a sentiment-driven event that pushed NVIDIA well below any fundamental valuation anchor. The stock recovered sharply when the tariff pause was announced on April 9 (RSI bouncing to 46.41 in a single session). The April 2026 extreme at 98.63 marked the tail end of a run driven by AI infrastructure announcements; the RSI had already been above 80 for six consecutive sessions before hitting that level.

One thing the RSI does not tell you is the cause of the signal. For that, you need context - which is where combining indicators and understanding the underlying news becomes important.

Try this in the Finance Toolkit MCP: "Show me NVIDIA's 14-day RSI from January 2024 to June 2026, and identify the key overbought and oversold turning points."

MACD: Catching Trend Shifts Early

The Moving Average Convergence Divergence indicator measures the difference between a short-term and a long-term exponential moving average, typically 12-day and 26-day. The result is the MACD line. A signal line - usually a 9-day EMA of the MACD line - is plotted alongside it. When the MACD line crosses above the signal line, it signals bullish momentum building; when it crosses below, momentum is turning negative.

The MACD is a lagging indicator by design - it confirms a trend shift after it has started rather than predicting one. But that lag is also its strength: it filters out short-term noise and only triggers when momentum has been building for several sessions.

To compute the MACD for NVIDIA:

macd = company.technicals.get_moving_average_convergence_divergence(
    period="daily",
    short_window=12,
    long_window=26,
    signal_window=9
)
Enter fullscreen mode Exit fullscreen mode

Which returns:

Date MACD Line Signal Line Condition
2024-04-19 -1.99 0.63 Bearish: MACD below signal
2024-07-30 -6.28 -2.01 Deep bearish
2025-01-27 -1.75 0.35 Bearish crossover (DeepSeek)
2025-04-08 -10.71 -7.70 Deep bearish (tariff panic)
2025-05-09 3.44 1.11 Bullish crossover
2025-05-16 11.28 6.52 Strong bullish
2026-04-17 9.42 4.31 Bullish peak
2026-06-16 -2.22 -0.59 Bearish crossover

The April 2025 tariff selloff pushed the MACD to -10.71, its lowest reading in the dataset. Importantly, the May 9 bullish crossover came just before the strongest leg of the recovery: by May 16, the MACD had expanded to 11.28 as momentum built. The June 16, 2026 bearish crossover (-2.22 vs -0.59) confirms what the RSI had already signaled - that the late-April surge has fully unwound.

What the MACD added over the RSI alone: the RSI flagged the April 2026 peak in real time (98.63 on April 20), but the MACD bullish crossover in early April gave an earlier entry signal for the rally. Neither indicator is superior - they answer different questions.

Try this in the Finance Toolkit MCP: "Compute NVIDIA's MACD with a 12-26-9 setup from January 2024 to today and show me where the bullish and bearish crossovers occurred."

The 50-Day EMA: Separating Trend from Noise

A single price reading tells you where a stock is. The 50-day exponential moving average tells you where it has been trending. More precisely, the EMA weights recent prices more heavily than older ones, making it more responsive to new information than a simple moving average. When the price is trading above the 50-day EMA, the medium-term trend is up; when it falls below, the trend has turned.

For NVIDIA, the relationship between price and the 50-day EMA has flipped multiple times since 2024, each flip corresponding to a meaningful change in regime.

ema_50 = company.technicals.get_exponential_moving_average(
    period="daily",
    window=50
)
Enter fullscreen mode Exit fullscreen mode

Which returns:

Date Close Price 50-Day EMA Price vs EMA
2024-01-02 48.17 47.30 +1.8% above - early uptrend
2024-06-18 135.58 104.46 +29.7% above - extended
2024-08-05 100.45 114.70 -12.4% below - trend broken
2025-01-27 118.42 137.30 -13.8% below - DeepSeek selloff
2025-04-08 96.30 118.11 -18.4% below - tariff panic
2025-05-16 135.40 116.86 +15.9% above - trend restored
2026-04-20 202.06 184.57 +9.5% above - extended
2026-06-16 207.41 206.85 flat - price testing EMA support

The June 2024 divergence of 29.7% above the EMA was unsustainable. The August 2024 correction brought the price back below the EMA within six weeks. The DeepSeek gap-down in January 2025 pushed the stock 13.8% below the EMA overnight - which helps explain why the RSI hit 31.97 immediately, since the move was violent enough to register on both indicators simultaneously. The recovery in May 2025 restored the uptrend, and by April 2026 NVIDIA had been comfortably above its 50-day EMA for nearly a year.

The June 16, 2026 flat reading (close at 207.41, EMA at 206.85) is worth watching. When price converges with the EMA after an extended period above it, the next directional move often signals whether the underlying trend is continuing or breaking.

Try this in the Finance Toolkit MCP: "Show me NVIDIA's 50-day EMA and closing price from 2024 to today, and highlight where the price crossed below and back above the EMA."

Bollinger Bands: Reading Volatility in Real Time

Bollinger Bands place a 20-day simple moving average at the center of a price channel, with upper and lower bands set at two standard deviations above and below. When prices reach the upper band, they have moved two standard deviations from the recent mean - statistically unusual in a stable environment. When prices touch the lower band, the opposite is true. The width of the channel itself is a volatility indicator: narrow bands suggest a calm market, wide bands reflect elevated uncertainty.

For NVIDIA, the bands have caught every significant turning point since 2024, including the one playing out right now.

bollinger = company.technicals.get_bollinger_bands(
    period="daily",
    window=20,
    num_std_dev=2
)
Enter fullscreen mode Exit fullscreen mode

Which returns:

Date Close Lower Band Middle Band Upper Band
2024-06-18 135.58 94.39 117.06 139.73
2024-07-24 114.25 115.22 124.92 134.62
2024-08-05 100.45 99.39 118.49 137.58
2025-01-27 118.42 124.77 138.29 151.80
2025-04-08 96.30 94.99 111.88 128.78
2026-04-17 201.68 159.97 181.44 202.91
2026-04-20 202.06 159.99 182.91 205.83
2026-06-10 200.42 200.55 217.20 233.84
2026-06-16 207.41 199.43 213.23 227.03

Three moments jump out. On July 24, 2024, the close of 114.25 fell below the lower band at 115.22 - a squeeze that resolved to the upside once the rotation out of AI stocks stabilized. The January 27, 2025 close of 118.42 was significantly below the lower band at 124.77, which happened overnight on the DeepSeek news: the gap opened below the band and confirmed that the move was a sentiment break, not a gradual fade.

The April 17-20, 2026 entries show the price pressing against the upper band at precisely the moment the RSI hit its peak. Close at 201.68 against an upper band of 202.91, then 202.06 against 205.83 - price was sitting on the ceiling. By June 10, the setup had completely inverted: close at 200.42 touching the lower band at 200.55. The stock bounced, closing June 16 at 207.41 with the lower band now at 199.43, acting as support.

The band width also carries information. The 43-point gap between bands on April 17 (159.97 to 202.91) reflected heightened volatility from the AI infrastructure cycle. The narrower 28-point gap on June 16 (199.43 to 227.03) suggests volatility is compressing - which typically precedes the next directional move, though not the direction itself.

Try this in the Finance Toolkit MCP: "Show me NVIDIA's Bollinger Bands with a 20-day window and 2 standard deviations from January 2024 to June 2026. Where did the price touch the upper and lower bands?"

The Current Picture

Since June 2026, NVIDIA's technical setup is mixed but stabilizing. The RSI has recovered from its June low of 32.97 to 46.49 - neutral territory. The MACD is in a fresh bearish crossover (-2.22 vs -0.59), but the spread is narrow, which means the negative momentum is not accelerating. The 50-day EMA is at 206.85, essentially matching the current price of 207.41: the stock is at a decision point where trend support and current price are the same number.

The Bollinger lower band just acted as support on June 10, which historically has resolved to the upside more often than not for a stock with NVIDIA's earnings trajectory. What the indicators do not tell you is how long the consolidation lasts before the next leg.

To get the full current reading in a single block:

rsi_current = company.technicals.get_relative_strength_index(period="daily", window=14).iloc[-1]
macd_current = company.technicals.get_moving_average_convergence_divergence(period="daily").iloc[-1]
ema_current = company.technicals.get_exponential_moving_average(period="daily", window=50).iloc[-1]
bb_current = company.technicals.get_bollinger_bands(period="daily", window=20).iloc[-1]
Enter fullscreen mode Exit fullscreen mode

Technical indicators are most useful when they agree. Right now, the RSI, MACD, and Bollinger Bands are all pointing to the same conclusion: the April-May 2026 surge has been fully corrected, the stock has found support at the lower band, and the price is back at its medium-term trend line. Whether the next move continues the longer uptrend or breaks deeper into the EMA will become visible in the RSI and MACD readings over the next few weeks.

Top comments (0)