Build 02

Stock Indicator Dailies

A system built end-to-end on my own time.

Problem

A stock analysis tool can compute technical indicators cleanly, MACD, moving averages, stochastics, but a computed signal only tells you what the math says, and misses the nuance that comes with looking at a chart. Relying on an AI read alone means trusting a system that can be fluent and wrong at the same time, confidently misreading a chart the same way it could confidently misread a document.

Neither source is trustworthy enough alone. The interesting problem wasn't picking one, it was building something that knew when they disagreed.

What I built

A full-stack tool that retrieves:

  • Computed analysis. Retrieves daily price data and computes technical indicators via API.
  • Chart retrieval and interpretation. Captures chart context through automated browser interaction via Playwright, then interprets it via an LLM visual-language model. The chart image is verified during the retrieval stage by the model to confirm it has no pop-ups and contains only the chart, no account information.
  • Rule-based interpretation. Determines signal from both computed and chart-read results and compares the results to explicitly call out mismatches and proposes an overall indicator read.
Stock Indicator Dailies results panel
results.pngScreenshot pending
  • Historical comparison. For the past two years of stock data, see how the buy or sell signal parameters performed over time.
Stock Indicator Dailies historical comparison
history.pngScreenshot pending
  • AI-assisted parameter recommendations, using web search to collect and synthesize company news, earnings reports, and industry trends to ultimately suggest reasonable indicator settings rather than relying on fixed defaults.
Stock Indicator Dailies AI parameter recommendations
ai_assist.pngScreenshot pending
  • Instrumented pipeline timing, capture, analysis, and data retrieval each measured and shown, so performance is visible rather than a black box.
Try it out!
The decision that mattered

The easy version of this tool picks one source and reports it as the answer. That doesn't exactly empower the user to make decisions with the information it gives nor enables trust.

This principle is built into my product DNA. Simply reporting a result isn't trustworthy. You have to show your work to prove your hypothesis.

Showing both, and flagging when they diverge, does something a single blended output can't. It tells the user where to look closer instead of asking them to trust a synthesis they can't inspect. When the computed signal and the AI read agree, that agreement is itself informative. When they don't, that disagreement is crucial information and shouldn't be treated as noise that gets averaged away.

This is deliberately not a system that tells someone what to do. It's a data-acquisition and reporting tool, clearly labeled as such, built to surface signal and disagreement so a person can make their own call.

Where this is going

Any system pulling from two sources that can independently fail, a computation and a model, two models, a model and a human, faces the same choice. Merge them into one confident-sounding answer, or show the seam. Merging is more comfortable to look at and less honest. Showing the seam is what actually lets someone calibrate how much to trust the output.

I used the same instinct, don't resolve a disagreement silently, surface it, in no-API external retrieval automation, where a failed automated retrieval hands off to a human rather than quietly returning nothing.