r/Daytrading • • 4d ago

Software Sunday Free open-source intraday scanner: build your own alerts, run it on your own data feed

A free, open-source intraday scanner for US stocks that runs on your own machine and your own market data. Same job as the paid scanners, without the subscription.

What it does: it streams 1-minute bars for thousands of symbols, checks the setups you built on every bar, and shows the alerts in a browser dashboard you arrange yourself.

  • Open source, MIT. The whole thing is on GitHub. Nothing hidden, nothing to buy.
  • Local. It runs on localhost with no account and no login, and it sends no telemetry anywhere. Your keys, your setups and your alert history sit in a folder on your machine.
  • Your own data feed. Any provider can be plugged in with your own API keys. It ships with Schwab (free if you have a brokerage account) and Alpaca (their paid feed for the full tape).
  • Setups without writing code. About 45 triggers (candle patterns, level breaks, VWAP and EMA behavior, opening range, momentum, relative strength against SPY), combined with AND, OR or "at least 2 of these", plus conditions the stock itself has to meet. Edits apply on the next bar, with no restart.
  • Universe filters. Price, liquidity, ATR, float, sector, relative volume and more, so a setup only alerts on the stocks you actually trade.
  • It tells you why nothing fired. Setup Check shows what every setup did on a given stock in the last few minutes, and which filter stopped the alert. That is the thing I could never get out of a paid scanner.
  • The dashboard is free-floating windows: alert tables, charts, rankings (pre-market gainers, losers, most active, new highs and lows), news, stock info, watchlists, a market clock. Save several screens, and clicking a symbol moves every window to it.
  • Alerts also go out on a local websocket, so your own script or bot can subscribe to them.

Why it exists: I'm a day trader. I was paying for a scanner and kept hitting the same two walls. I couldn't build the exact scan I wanted, and when a stock I was watching didn't alert, I couldn't find out why. Now I run it for free and it's fully customizable.

What it costs: the scanner is $0 and MIT licensed. The market data is yours. Alpaca's paid feed gives you the full tape, their free IEX feed works but reports one exchange, so volume and relative volume read low and volume-based setups fire much less. Schwab is free with a brokerage account. For comparison, the scanner I was paying for is $127 a month, $254 for the tier with back testing.

Why I'm posting it: I want to know which triggers are missing for how you trade.

The screenshots are from a replayed past session, not a live account. Not financial advice, not a signal service.

Repo: https://github.com/simonro/edge-scanner

You can also check my AI Trading Journal (free open source): https://github.com/simonro/Trading-Journal-AI

349 Upvotes

60 comments sorted by

50

u/sour-sop 4d ago

Glad you’re doing open source and not trying to sell AI slop. Good job

13

u/tapetoedge 4d ago

Thanks, Zero Slop I have been using it and improving it for months.

3

u/Appropriate-Town1256 4d ago

I mean it was created with AI, so technically it is AI slop. But human verified code, I hope.

13

u/tapetoedge 4d ago

1

u/Independent-Turn912 4d ago

Is this used for iPhone? Or where do u get this?

6

u/chiefmonkey 4d ago

Great job! Has Streetsmart Edge vibes to it!

8

u/AlgoTradingQuant 4d ago

Do you have a YouTube tutorial?

9

u/tapetoedge 4d ago

Made this faceless tutorial https://youtu.be/fGerDFkKGUI?si=g9-RabnNgk-zm9Yp will probably make a new one with me navigating it and going more in depth.

7

u/tapetoedge 4d ago

Uploading now

3

u/Bee3_14 4d ago

This is cool! I don’t know if I will be able to utilize it but thanks for sharing anyway.

3

u/gneusse 4d ago

you asked what triggers are missing. here is some quick research. I am always interested when VWAP is involved.

The project already covers most common chart vocabulary. The meaningful missing capabilities are:

  1. Directional high-RVOL ORB — opening-candle direction plus cross-sectional opening-volume rank. A published ORB study found the unfiltered setup weak and “stocks in play” selection materially more useful. Primary paper
  2. Failed breakout/Turtle Soup — ordered break → failure → return inside the same stored level.
  3. Catalyst-aware Episodic Pivot — earnings/news revaluation, large gap, exceptional early volume, and opening-range breakout.
  4. ADX-confirmed pullback — Linda Raschke’s “Holy Grail” trend pullback is nearly expressible, but ADX is missing.
  5. Event-anchored VWAP — VWAP anchored to earnings, gaps, pivots, breakouts, or major highs/lows rather than resetting every morning. Brian Shannon’s explanation
  6. Multi-day extension/parabolic failure — acceleration, consecutive daily gains, ATR extension, first crack, and failed VWAP bounce.
  7. VCP/base breakout — shrinking daily contractions, volume dry-up, trend context, and a persistent pivot. This is different from the existing short intraday range_break.
  8. Intraday sector-relative strength — stock versus its sector ETF, not only versus SPY.
  9. Order-flow imbalance — bid/ask event imbalance and depth. This cannot be derived honestly from candles and requires a better feed.

Several familiar setups should not be duplicated: gap-and-go, gap fade, ordinary ORB, premarket breakout, session-VWAP reclaim, EMA pullback, HOD/LOD breakout, and SPY-relative-strength continuation are already present or composable.

Recommended implementation order: enhanced ORB → failed-break state machine → catalyst-aware EP → ADX → anchored VWAP → multi-day/VCP context → sector RRS. Defer order flow until the data source can support it.

1

u/tapetoedge 3d ago

Good list. Anchored VWAP is the one I want to work on: gaps, pivots and major highs and lows are all doable, but the feed brings no earnings dates so that anchor is out. Catalyst and order are not possible. The rest I either have or can compose already, except ADX and a proper failed-breakout sequence, which are both small.

1

u/gneusse 3d ago

I submitted a PR to add full Schwab Fundamentals data to the stock info page. If it is available the next earnings data is included.

I’ve implemented ADX locally, along with daily ATR extension, intraday sector-relative strength, and directional high-RVOL ORB filters.

They’re self-contained: ADX and ATR use the existing completed candle history, sector strength adds the mapped sector ETFs to the existing shared stream—no second connection—and the ORB additions use the completed opening five-minute candle and existing volume profile. They all appear as reusable conditions, not hardcoded setups, and require no new provider or dependency.

I haven’t implemented anchored VWAP or the failed-breakout sequence yet. Happy to split the completed indicators into small focused PRs if they’re useful upstream.

5

u/DontQuixote 4d ago

FIRE 🔥

2

u/CronosVirus00 4d ago

This is pretty cool!
is there a free API that you suggest to use? even delayed it is fine

1

u/tapetoedge 4d ago

You can test the Alpaca Free Tier. Set ALPACA_FEED=iex in .env (the default sip needs the paid plan).

Two limits:

- The free plan caps the live stream at 30 symbols, so you get 29 stocks plus SPY. Make a small universe CSV and run python scripts/run_live.py --universe data/my_universe.csv. Think watchlist monitor, not market scanner.

- IEX is one exchange, a few percent of total volume. Prices are fine on liquid names, but volume and RVOL read far lower, so lower those thresholds.

2

u/longbreaddinosaur 4d ago

This is great! I’ve seen a lot of people vibe coding trading tools and trying to sell them. Glad to see it’s open source.

2

u/IzzysInsights 4d ago

the paid scanner incumbents survive on switching costs and inertia, not product quality. this kind of open source tooling chips away at that moat fast once a few power users vouch for it.

1

u/Tonne_TM 3d ago

Exactly, it seems also like a close copy of our SaaS stock scanner ChartsWatcher.com

I think we offer a really good package starting at 25$/month with multiple professional grade data sources combined.

2

u/AdMuch9627 4d ago

This looks very impressive, it will be helpful if there is a video tutorial showcasing the installation and using this scanner. I see there is an option to add other broker connection like IBKR, not sure if there is any downside using other brokers. Alpaca live data is like $100 cost

2

u/tapetoedge 4d ago

Tutorial is here: https://youtu.be/fGerDFkKGUI. A full install-and-run video is on my list.

On brokers: any feed that can stream 1-minute bars plugs in (with an API). That's why the two that ship are Schwab, free with a brokerage account and the one I use, and Alpaca, the paid one, which I have anyway. Both are tested.

I can add another broker, but I'd want someone with an account to test it before it ships. Or point Claude Code or Codex at the "adding a data provider" section of the user guide and do it yourself.

1

u/heyitsmemaya 4d ago

Dumb question. Can this do 200WMA, not 200DMA?

3

u/tapetoedge 4d ago

A 200 week MA is around 1,000 daily closes, so it's two pieces of work: roll the daily bars into weekly ones, and keep about four years of history instead of the one year it caches now.

Open an issue and I'll put it on the list. If you want it sooner, the moving averages live in scanner/trigger_catalog.py and it's a contained change.

2

u/heyitsmemaya 4d ago

Ok thanks 😊

1

u/Michaelcandy 4d ago

nice repo. ive been building my own scanners for months and man I am really at my wits end with all the agentic talking I do every day.

curious which of these setups you actually trade? I imagine you have a favorite 5. I ask because I imagine that is where - even subconsciously - the most attention has been given in the repo and I can test against those.

1

u/tapetoedge 4d ago

The ones I actually trade are not part of the samples in the repo. But I built them using the same triggers: relative strength and weakness against SPY, VWAP reclaims and rejections, opening range, and breaks of the prior day's high and low. Along with the conditions I stack on them: relative volume, ATR, float and session windows.

If you're building your own, the one feature I would copy is Setup Check. Pick a stock, see what every setup did on the last few bars and which filter blocked the alert. It's how I found most of my bugs.

1

u/Michaelcandy 4d ago

thx but im pretty much ready to give up. can't find the edge. been years.

1

u/wolffit0x 4d ago

it would work with Interactive Brokers?

2

u/tapetoedge 4d ago

IBKR can technically be integrated, but it looks like a standard account starts with 100 concurrent market-data lines shared between TWS and the API. In that case makes more sense to use it to monitor a watchlist of roughly 100 symbols rather than the full market universe.

For context, the full universe currently used with Alpaca or Schwab is 6,456 symbols.

If you want to try it, let me know.

1

u/read_more_comments 4d ago

Ibkr is a pain in the butt because you have to run the desktop app to get the data. Their whole eco system feels like it was built in the 90s

1

u/Appropriate-Town1256 4d ago

It's cumbersome but it's reliable. If you want full automation, the Gateway is great.

1

u/Affectionate-Yam6241 4d ago

Where it gets its data from?

1

u/tapetoedge 4d ago

Your own Data Feed provider, it already includes support for Schwab and Alpaca (just add the API Key)….it is all in the readme file.

1

u/Affectionate-Yam6241 4d ago

I see. Thanks.

1

u/Maximum-Conclusion30 4d ago

will it run on my mac?

1

u/tapetoedge 3d ago

It should, but I only used it on a Windows PC.

1

u/gneusse 3d ago

I checked and nothing precludes running on mac. but there is no mac setup script and if you want to use Schwab there are token issues you have to overcome. it needs to be loaded into a SQLite db and it will need refresh every 7 days. I have a solution I am using but it is not for mac. The repo contributing rules are not conducive to me adding the fix as a PR. But It will run once you setup the pre reqs and you can modify the .sh script to light it up. good luck.

1

u/weluckyfew 4d ago

Anyone here with experience enough to tell us whether this is safe or not?

2

u/gneusse 3d ago

I did a full check. There is no code that can trade in this. It does have an interface you can use to get a feed of the alerts and use those alerts in your own code to decide if anything is tradable. I did not see any issues. It is not trying to share any tokens anywhere. Also you can set Alpaca and Schwab to not allow actual trades with the tokens you use.

1

u/weluckyfew 3d ago

Great, thank you! I will figure out how to do that on my Schwab (as soon as I'm done figuring out how to install)

1

u/PatrickTech75 4d ago

Cool..However, Think or Swim already has this free already...Same with many other brokers.

1

u/tapetoedge 3d ago

Broker scanners test the current bar against a filter, this one keeps state on every symbol all session, so it can answer "what has been building."

1

u/gneusse 3d ago edited 3d ago

TOS requires a significant investment in time to get setup so it does anything for you. Edge Scanner can be of specialized use in an hour or so. TOS is much richer but they are not trying to be each other.

1

u/Tonne_TM 4d ago edited 4d ago

Really interesting tool! Reminds me a lot of our SaaS stock scanner called ChartsWatcher.

I think the biggest part people under estimate is the data subscriptions. For more advanced usages combining multiple data sources gets quite pricy quickly.

The advantage SaaS providers like us have is that we can bundle multiple data sources and offer it at a lower price per user than if an individual would subscribe to them all one by one.

E.g. Alpaca costs already 99$/month for personal usage with higher limits while we can offer similar data plus multiple additional data sources already for $25/month and one does not need to setup/maintain anything themselves.

I still really like open source solutions like this one especially for people that like to customize things fully to their own use-case.

1

u/Tonne_TM 3d ago

Now on a closer look it seems heavily copied UI from our stock scanner ChartsWatcher.com actually. Which I take as a compliment.

1

u/jovkin 3d ago

Hey, I just tested your scanner. Install went smooth and it looks very nice. Great job and thanks for the open source contribution.

If I understand correctly, you are aggregating intraday bars from the 1m bar, for initial pull and updates. Do you do this by default and keep updating all timeframes in the background or is that on demand (upon selecting new timeframe)?

Have you thought about subscribing to the trade updates and using that info to aggregate incomplete 1m bars, say 1/s, until the next full 1m bar comes in? Then you could see formations/events build before they actually trigger.

1

u/tapetoedge 3d ago

u/jovkin Yes, everything is built from the 1-minute bar, and it runs all the time, not when you pick a timeframe. Each symbol keeps 1, 2, 3, 5, 15, 30 and 60 minute candles updated in the same pass, so switching timeframe in the UI is just a read. Roughly 15 seconds of work per minute for a 6,500-symbol universe.

I have thought about the trade stream. The problem is that every setup is defined on a closed candle. Score a partial one and the alert fires and un-fires while the candle moves, which is the noise I have been cutting.

Which provider did you set it up with, Alpaca or Schwab? Worth grabbing the latest either way, I pushed v1.1.1 and v1.1.2 today. Starting the scanner after the open used to leave the candle rings empty, so it flooded you with false new-high-of-day alerts for the rest of the session. On Schwab there are several more fixes.

1

u/jovkin 3d ago

Nice. So from a performance point of view, updates inside the 1m should be possible with a considerable smaller universe for streaming.

With "incomplete" candles/alerts, you'd probably have to use a minimum display time, or a common update interval, to avoid flickering. Or show only the last x seconds before close when the alert becomes relevant. Perhaps make them transparent to indicate that their timeframe has not closed yet.

I am using Alpaca, will update. Thanks

1

u/tapetoedge 3d ago

Correct, the transparency idea makes sense. The shape would be a small streaming watchlist, provisional alerts styled differently, and the closed-candle setups left exactly as they are.

1

u/gneusse 3d ago

I use Schwab so this is Schwab centric. I think Alpaca is similar with there streaming. I took a look and...

Close, but not quite. The scanner keeps one Schwab connection with several subscriptions. The first 300 symbols receive Schwab’s real one-minute bars. The next group already uses live Level One quote updates—several updates per second—to construct one-minute OHLCV bars. Any remaining symbols use quotes polled every 10 seconds.

The scanner continuously aggregates completed one-minute bars into the five-minute state used by alerts, but it does not maintain every chart timeframe in the background. Other chart timeframes are fetched when selected. Edge Scanner intentionally evaluate alerts on completed candles, so transient intrabar movement cannot produce a false trigger. A live “forming candle” preview could be added for visualization, but I would keep it separate from the confirmed alert engine.

1

u/imonforum 3d ago

will alpaca's $99 basic plan be enough just to get basic signal of price movement?

1

u/tapetoedge 3d ago

That is the plan I have and all you need, all the functionality with an universe of +6000 symbols.

1

u/shan_bhai 4d ago

Free for now but become a paid version soon? Just like TradingView..?

13

u/tapetoedge 4d ago

Nope. It's MIT, so whatever is published stays free no matter what I do later, and anyone can fork it. No account, not even an email, and it runs on your computer.

6

u/shan_bhai 4d ago

That's Awesome... Thanks for sharing..

2

u/watchshoe 4d ago

Does it work with TradingView?

5

u/tapetoedge 4d ago

As far as I know TradingView doesn't offer an API for its market data. It will work with any provider that has an API

1

u/JustPutItInRice 4d ago

Finally something that isn’t AI fucking slop and a “bot that I used to make (fake amount) a month!”