kessannote

週次市況の出し方 v1

指数を使わず、ticks から等加重で市場区分別・業種別の騰落と売買代金を出す。2026-09-12 のレポートから使用。

週次レポートの数字をどう出しているか。この版で出した数字は、この版の定義で読むこと。 定義が変わって数字が動くときは v2 を作る。古いレポートは v1 を指したままにする。

指数は使わない

日経平均も TOPIX も、株価の取得元が時系列を返さないため手元に無い。ticks から等加重で作る。

時価総額加重と違って上位数十社に引きずられないため、業種の広がりを見るには向く。そのぶん 「日経平均が何 % 下げた」とは直接比べられない。指数の騰落に触れるときは必ず出典を付ける。

母集団

  • stocks.is_listed が true の銘柄
  • 起点と終点の両方の日に値が付いたもの

上場中の全銘柄には届かない。どちらかの日に値が付かなかった銘柄が落ちるため。2026-09-11 の 週では 3707 銘柄中 3632 が残った。

値の取り方

項目 定義
株価 adjusted_close。無い行は close で代える
騰落率 起点の終値から終点の終値までの変化
中央値 銘柄ごとの騰落率の中央値
等加重 銘柄ごとの騰落率の単純平均
上昇した割合 騰落率がプラスの銘柄の比率
売買代金 volume * close。株数のまま足すと低位株に引きずられる
業種 33 業種区分。20 銘柄未満の業種は外す
出来高の基準 起点から 28 日遡った期間の日平均

中央値と等加重の両方を出すのは、差が開いたときに分かるようにするため。差が大きい区分は、 深く下げた少数の銘柄が平均を引っ張っている。

流し方

analysis/weekly-market.sql をそのまま使う。毎週コピーしない。

psql "$DATABASE_URL" -v d0=<起点> -v d1=<終点> -f analysis/weekly-market.sql

期間は暦ではなく ticks にある日で決める。祝日で狂うため。

原因の裏取り

数字は DB を正とする。Web は理由の裏取りにだけ使う。

まず tdnet_disclosures を引く。適時開示が出ていればそれが答えになる。集めているのは決算 短信だけなので、業務提携などは入らない。決算値は latest_financials から引き、記事の数字を 写さない。

記事は必ず開いて、日付と中身を確かめてからリンクする。裏が取れなければ断定せず「未確定」に 落とす。

DB と記事が食い違ったら、その銘柄だけ取得元から取り直して照合する。照合した範囲は正確に 書く。 1 銘柄を見たなら「この銘柄だけ」と書き、全体を確かめたように読める書き方をしない。

過去に踏んだ間違い

  • 検索結果の要約は数字がずれる。 ソフトバンクグループの 2026-09-04 終値を「5,001 円」と する要約が出た。実際は 5,590 円だった
  • 記事の配信時刻で値が違う。 2026-09-07 の記事は同社の終値を 6,052 円としているが、 12:37 配信の前場引けの値になる。大引けは 6,217 円で食い違いではない
  • 出来高が少ない日は「動いていない」とは限らない。 ストップ高やストップ安に張り付くと 商いが細る。ティアフォーは 2026-08-31 に 194 万株で +20% 上げた
  • 指数が上げた日に中央値が動いていないことがある。 2026-09-07 は日経平均が前場で 2% 以上 上げた一方、中央値は 0.00% だった。値がさ 2 銘柄が指数を押し上げただけだった
  • 祝日のある週は売買代金の日平均が潰れる。 SQL が当週の合計を 5 固定で割っていた。 2026-09-25 の週は営業日が 2 日で、倍率が 0.4 倍前後に出た。当週の営業日数で割るように 直した。5 営業日の週は直す前と同じ数字になる

この版で出したレポート