No data yet
The daily update hasn't run yet, or every pull failed so far.
No data yet
Needs at least 5 trading days of CVD history before any CVD5 value can be shown.
| Ticker |
CVD5 |
Price |
SMA50 |
Price/SMA50 |
Signal |
No data yet
Needs today's CVD and SMA50 data before signals can be shown.
| Ticker |
Share Price |
6-Month Return |
vs OEF |
CVD5 |
SMA50 |
No data yet
Needs today's data with a 6-month-old close on file before a return can be shown — the day this tab is first deployed, existing rows won't have it yet.
What this shows: each tracked ticker ranked by its trailing 6-month price return —
a momentum/relative-strength ranking, named for Jegadeesh & Titman (1993), "Returns to Buying
Winners and Selling Losers," the academic paper documenting that stocks with strong trailing
3-12 month returns tend to keep outperforming over the following 3-12 months.
6-Month Return = (today's close ÷ close closest to 6 calendar months ago) − 1
CVD5 and SMA50 are the same figures shown on the Signals tab — repeated here so momentum and
short-term money flow/trend can be read side by side for the same ticker, without switching tabs.
Left as "—" if this ticker doesn't yet have enough history on file for that particular column (a
brand-new listing, or the first day after this tab was added — history isn't backfilled).
The box above the table shows the benchmark ticker's own price and 6-month return,
fixed in place regardless of how the table below is sorted, searched, or how long it is — so you
always have it in view rather than needing to scroll and find it as a row.
The "vs OEF" column is each ticker's 6-month return minus the benchmark's —
positive means that ticker beat the benchmark over the trailing 6 months, negative means it lagged.
Sort by this column to rank the whole roster by relative strength against the benchmark directly,
rather than comparing two separate numbers by eye.
The benchmark ticker is OEF by default (an S&P 100 proxy ETF) —
add it from "Manage tickers" under the CVD tab if you haven't already; until it's in the roster and
has data, the box above stays hidden and "vs OEF" shows "—" everywhere.
This ticker list is this app's own roster (Manage tickers, under the CVD tab), not the
official S&P 100 index constituent list. It's a reasonable large-cap starting set, not a
verified, live membership feed — add or remove tickers there any time.
What this is not: Jegadeesh & Titman's original strategy ranks a large universe
(hundreds+ of stocks), holds long the top decile and short the bottom decile, and rebalances
periodically — applying it to a roster this size, long-only, is a much smaller-sample version of the
idea, not a reproduction of the paper's tested strategy. This tab is a ranking, not a buy/sell signal.
No views yet
Run ai-portfolio-schema.sql in Supabase to add the starting allocation, then wait for the first morning run or press "Run check now".
Today's view
| Ticker |
Weight |
Change |
Reason |
Performance vs OEF
Your actual portfolio
| Ticker |
Shares |
Avg cost |
Last close |
Value |
P/L |
| Date |
Ticker |
Side |
Shares |
Price |
Amount |
|
View history
| Close of |
Allocation |
Changes |