Automation · Trading · Python

Market Wind
Brief

A daily pre-market email that lands at 7:15 AM with 11 tickers analyzed, Money Flow stages calculated, and key levels ready — before the open bell rings.

Runs 7:15 AM weekdays Python yfinance Hermes VPS Gmail API
200
Minutes of manual market prep, eliminated every morning
85+
Hours reclaimed per year from one automated script
11
Tickers tracked daily: equities, commodities, crypto, volatility
The problem

Twenty minutes every morning, just to know where you stood

Before every session I had to manually pull the same data from the same tickers. By the time I finished, half the pre-market move had already happened.

1

Open TradingView or Finviz

Pull up each ticker manually. Check price, check volume, scroll back to find the key levels from prior sessions.

2

Identify Money Flow stage for each ticker

Cross-reference price vs. moving averages, volume profile, sector rotation context. This wasn't fast — it required real judgment every morning.

3

Check macro instruments separately

DXY, VIX, TLT, GLD — each one on its own tab. Build the context picture in your head from disconnected windows.

4

Write your own brief in notes

Summarize what you found so you'd remember it by the time the open came. Some days the brief never got written.

5

Start trading already behind

By the time the manual prep was done, the pre-market move had already set the tone. You were reacting instead of prepared.

The reality
"By the time I finished the manual prep, the pre-market move was already over."
20 min
manual prep, every morning
0 min
in inbox before the open
How it works

Cron fires at 7:15. Email arrives before the open.

One Python script. Runs automatically on Hermes VPS every weekday morning. No manual trigger needed.

Cron fires at 7:15 AM

Hermes VPS triggers the script on a weekday schedule

📡

yfinance pulls live data

Price, volume, and OHLC for all 11 tickers in one batch

📊

Money Flow stages calculated

Each ticker gets a stage (1–4) based on price vs. moving averages

✍️

HTML brief assembled

Formatted report with levels, stages, and market context

📬

Delivered to inbox

Gmail API sends the report. Arrives before 7:30 AM

11 tickers tracked
SPY

S&P 500 broad market

QQQ

Nasdaq / tech

IWM

Small caps

SPYG

Growth stocks

DOW

Dow industrials

TLT

Long-dated bonds

GLD

Gold

USO

Crude oil

DXY

U.S. dollar index

VIX

Volatility / fear gauge

BTC

Bitcoin macro signal

The build

What I learned building it

Three honest cards from the build — what worked, what surprised me, what I'd change.

What I started with

A morning ritual that was costing me 20 minutes every day

I was doing the same manual scan every morning before the open — same tickers, same calculations, same format in my notes. When I realized I'd done the exact same thing 50 times, the only question was why I hadn't automated it yet. Started with a simple Python script and a cron job on the VPS.

What surprised me

Consistency matters more than I thought it did

The real value wasn't saving 20 minutes — it was getting the same format every day, no variation, no missed tickers. When the brief is always the same structure, you stop reading it and start absorbing it. Pattern recognition speeds up. That was the outcome I didn't expect.

What's next

Stage transitions and watchlist integration

The current brief shows current stage. What I want is an alert when a ticker transitions — Stage 2 → Stage 3 is a signal, not just a status. Next version flags transitions and cross-references the weekly watchlist so the brief becomes a direct action item, not just context.

What's coming

The roadmap

The brief is useful now. These additions make it actionable.

In progress

Stage transition alerts

The current brief shows current stage. What's more useful is knowing when a ticker moves. The next version flags every Stage 2 → 3 or 3 → 4 transition and sends a separate alert — not buried in the daily brief, but a standalone signal. That's when the trade opportunity appears.

Designed

Watchlist cross-reference

Each week I build a watchlist of options plays. Right now the brief and the watchlist are separate. The next version cross-references them — if a ticker on my watchlist is in Stage 2 and approaching a key level, the brief flags it directly as a potential setup. Brief becomes an action list.

Planned

TradingView integration

The brief pulls data from yfinance. TradingView has richer data — custom indicators, Money Flow overlays, volume profile. The next version pulls directly from TradingView via MCP, so the brief reflects exactly what's on my chart, not just the raw price data.

See it live

Watch the brief get built.

Under 60 seconds. 11 tickers staged and delivered before the open.

Demo recording coming soon.
Check back in a few days.

Try it yourself

See a real sample report

This is the actual format that lands in my inbox every weekday at 7:15 AM. Same data, same layout.

See Sample Report →
What you'll see
  • 1Cron fires at 7:15 AM on Hermes VPS
  • 2yfinance pulls live price data for all 11 tickers
  • 3Money Flow stage calculated for each ticker
  • 4HTML report assembled with stages, levels, and market context
  • 5Gmail API delivers the brief. Inbox before 7:30 AM.
See it live

What the report actually looks like.

This is a real output. The same format that lands in my inbox every weekday at 7:15 AM PST.

See a Sample Report → Back to all projects