尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Two live trackers on one site, sharing one scoring engine:
index.html): 87 sector and theme funds across the US, Europe, Japan, Canada and global markets (no whole-country funds),
each scored 0–100 against its own local benchmark, with a business-cycle read, rotation map, fund facts, top-10 holdings,
score history and a plain-English verdict.world.html): 36 national stock markets, with each headline index in local currency and a US-listed country fund
in US dollars. Includes a world map, currency effects, valuation (P/E, yield, value score), correlation with world stocks,
a global-backdrop read (dollar, oil, metals, risk appetite) and open/closed market status.Both pages include a backtest: every month for the past ~9 years, every market is re-scored using only the data available at the time, and its next-month return is compared with its benchmark. It also reports the result after an assumed 0.15% trading cost, and separately for the first and second half of the period.
Returns can be shown in pounds as well as the local currency (and US dollars on the Countries page).
Keeping a real record from now on:
data/history/, one file per page per year): every weekday after the US close, daily.yml runs
snapshot.py and saves every score and signal, so the pages can show when each signal last changed.data/paper/): on the first snapshot of each month, pretend £10,000 portfolios buy the top-scored 20%
and the lowest-scored 20% on each page, equally weighted, paying the assumed trading cost. They're compared with the
same money in their markets and in world stocks.briefing.html, data/briefings/): every Saturday at about 07:30 UK time, briefing.yml runs briefing.py,
which saves the week's numbers (data/briefings/facts/<date>.json) and an automatic draft. At 09:00, a scheduled Claude task
on Max's PC rewrites the draft following app/BRIEFING_PROMPT.md and publishes it. If the PC is off, the draft stays up until
the task runs.app/research.py): tests other score recipes the careful way. Each one is judged on the first half of the
history and must still win on the second half, which it never saw. It only reports; it never changes the live score.universe.BUY_ON_IBKR): a UK retail IBKR account can't buy US, Japanese or Canadian funds (no UK key
information document). Each fund shows what to buy instead: the fund itself if it's UCITS (the European ones), or a UCITS
"twin" in London tracking the same or a similar index. 58 of 87 funds are buyable; tickers checked in IBKR on 7 Oct 2026 (the Luxury Goods fund, GLUX on Xetra, added 27 Oct 2026, is a UCITS fund itself).
Scores stay based on the original funds, which have longer histories.app/candidates_test.py); it did worse than holding every
buyable fund, so it is reported on the page but not used.app/cycles.py): 23 cyclical stock-market indices (not funds), such as FTSE 350 Mining, STOXX Europe 600
sectors and the PHLX Semiconductor index, from CNBC's daily closes (full history re-downloaded daily, cached in
data/cycles_cache.json.gz). For each: how far below its 5-year high, its phase (vs its 5-year and 200-day averages),
its past big falls and its own dip record. Buying deep dips (30%+ below the 5-year high) was tested once, fixed in
advance (app/cycles_test.py), against 1,000 reshuffled histories: "Possibly worked" (+4.3% a year vs buying at any
time, p = 4.6%); waiting for the turn up "Didn't work". The page re-runs the test as each month completes.
CNBC history fixes (made before the test): FTSE 350 Mining joined to the old Mining index at 24 Mar 2021; UK
housebuilders only from that date; PHLX Housing halved before Feb 2006.Live site: https://maxgilbertson.github.io/sector-compass/ (updated every ~15 minutes by GitHub Actions)
app/: the code and web pages.
engine.py: fetching prices, the score, score history and the backtest (shared by both pages).universe.py + sectors.py: the sector funds, their benchmarks and the Sectors page's data (including the cycle read).world.py: the countries, their indices, funds and currencies and the Countries page's data (including the backdrop rules).cycles.py: the Cycles tab's indices, cycle measures, past falls and the buy-the-dip test (cycles_test.py).funddata.py: top-10 holdings and fund facts (net assets, P/E, yield, beta, expense ratio), cached for a day.tracking.py + snapshot.py: daily snapshots, the signal-change log and the practice portfolios.briefing.py + briefing.html + BRIEFING_PROMPT.md: the weekly briefing's facts, draft, page and writing rules.index.html, world.html, common.css, common.js: the pages and what they share.server.py: the local web server. build_static.py: builds the GitHub Pages copy.data/: the permanent record the GitHub jobs add to: history/, paper/ and briefings/..github/workflows/: deploy.yml publishes the site every ~15 minutes; daily.yml saves the snapshot; briefing.yml gathers the briefing facts.The live site needs nothing on your PC. To run a copy locally (Python 3.10+):
pip install -r app/requirements.txt
py app/server.py # http://localhost:8765, refreshes every 5 minutes
py app/server.py --lan # also reachable from phones on the same Wi-Fi
For research and education only; not investment advice.