Methodology and validation

Data sources & timing

Prices are Yahoo Finance daily bars (not intraday). Financials/filings come from Korea's DART and the US EDGAR. News comes from several RSS sources per market. The table below is read from the actual batch config (deploy/crontab.txt).

MarketNews sourcesPost-close batch time (UTC / KST)
Korea607:15 / 16:15
US822:30 / 07:30
Crypto400:15 / 09:15

Point-in-time — no future leakage

Financial verdicts use only the quarter that was actually filed by that date — Korea by DART receipt date (rcept_no), US by EDGAR filed date. If a quarter was filed more than once, only the first filing is used; later restatements are excluded because they weren't known at the time (engine/quality_backtest.py). Price signals likewise use only closes available up to that day.

Signals and scoring

The storm alert turns 14 signals (breadth, volatility regime, trend break, volume spikes, etc.) into percentiles (0-1, expanding window) using only data available up to that day, then combines them with a model retrained every January on prior data only, giving a 0-100 score (engine/crash.py). Stock scores are a walk-forward cross-sectional rank of trend/momentum/etc. factors.

Validation method

Walk-forward (no future data in training) + block-bootstrap 95% confidence intervals (holding periods overlap, so days aren't independent) + no conclusions drawn below n=30. The storm alert's "Danger" stage is only used for alerts once a market has at least 20 sample days and a post-danger drawdown lift of at least 1.5x; markets that don't clear this bar still show the score, but alerts cap out at "Alert".

Limits — nothing hidden

  • Forecast record length by market (actual days): Korea 40 · US 39 · Crypto 42
  • Daily bars only — intraday moves aren't captured.
  • Execution, commissions and taxes aren't modeled (backtest cost assumptions are simulation estimates).
  • Survivorship-bias handling is partial — the buy-fit table reuses today's stock list for past periods too.
  • Markets/stages with a short record withhold conclusions (see table above).
  • Not investment advice — statistical information only.

Update frequency

Refreshed automatically 1-2 times a day after market close. This page last checked: 2026-09-19.

Methodology · Data quality

All figures on this page are statistical information, not investment advice.

1 2 3