はじめに
- テーマ株を見つけるとき、ニュースやSNSだけに頼ると偏りがある。
- そこで、大発会を基準にした上昇率を出して、前年・前々年の動きと比較することで「モメンタム」や「反発銘柄」を数値で捉えられないかと考えた。
- 今回はSQLで集計する仕組みを試作。
活用方法
- テーマ銘柄の調査
→ 前年も強く、今年も上がっている=モメンタム継続
- 出遅れ銘柄の発見
→ 前年下げていたが、今年に入ってリバウンドしている銘柄
- その他
→ 出来高や信用残を重ねると、需給の鮮度も見やすそう
調査方法
- Priceテーブル(銘柄×日付×4本値+出来高)を利用。
- SystemDateテーブルで「直近」「1週間前」「4週間前」を取得。
- 年初・年末は、銘柄ごとの最初と最後の取引日を拾うようにした(IPO銘柄や流動性が薄い銘柄も対応できる)。
抽出項目
- code: 証券コード
- name: 銘柄名
- market: 上場市場
- sector_33: 東証33業種分類
- close_latest: 直近の終値
- close_week: 1週間前の終値
- close_month: 1ヶ月前(4週間前)の終値
- open_2025: 2025年の始値
- open_2024: 2024年の始値
- close_2024: 2024年の終値
- open_20234: 2023年の始値
- close_2023: 2023年の終値
- yoy_2025: 2025年の上昇率
- yoy_2024: 2024年の上昇率
- yoy_2023: 2023年の上昇率
- wow: 週次上昇率
- mom: 月次上昇率
SQLサンプル
WITH sys AS (
SELECT
"public"."SYSTEM_DATE"."system_date" AS "system_date",
ROW_NUMBER() OVER (ORDER BY "public"."SYSTEM_DATE"."created_at" DESC) AS rn
FROM "public"."SYSTEM_DATE"
),
dates AS (
SELECT
MAX(CASE WHEN rn = 1 THEN system_date END) AS current_date,
MAX(CASE WHEN rn = 2 THEN system_date END) AS prev_week_date,
MAX(CASE WHEN rn = 4 THEN system_date END) AS prev_4week_date
FROM sys
),
year_first_last AS (
SELECT
p.code,
EXTRACT(YEAR FROM TO_DATE(p.date, 'YYYY-MM-DD')) AS year,
MAX(CASE WHEN rn_asc = 1 THEN p.open END) AS open_first,
MAX(CASE WHEN rn_desc = 1 THEN p.close END) AS close_last
FROM (
SELECT
code,
date,
open,
close,
ROW_NUMBER() OVER (
PARTITION BY code, EXTRACT(YEAR FROM TO_DATE(date, 'YYYY-MM-DD'))
ORDER BY TO_DATE(date, 'YYYY-MM-DD') ASC
) AS rn_asc,
ROW_NUMBER() OVER (
PARTITION BY code, EXTRACT(YEAR FROM TO_DATE(date, 'YYYY-MM-DD'))
ORDER BY TO_DATE(date, 'YYYY-MM-DD') DESC
) AS rn_desc
FROM "public"."prices"
) p
GROUP BY p.code, year
),
pivoted AS (
SELECT
p.code,
-- 直近系
MAX(CASE WHEN p.date = d.current_date THEN p.close END) AS close_latest,
MAX(CASE WHEN p.date = d.prev_week_date THEN p.close END) AS close_week,
MAX(CASE WHEN p.date = d.prev_4week_date THEN p.close END) AS close_month,
-- 年初・年末系(銘柄ごと)
MAX(CASE WHEN y.year = 2025 THEN y.open_first END) AS open_2025,
MAX(CASE WHEN y.year = 2024 THEN y.open_first END) AS open_2024,
MAX(CASE WHEN y.year = 2024 THEN y.close_last END) AS close_2024,
MAX(CASE WHEN y.year = 2023 THEN y.open_first END) AS open_2023,
MAX(CASE WHEN y.year = 2023 THEN y.close_last END) AS close_2023
FROM "public"."prices" p
CROSS JOIN dates d
LEFT JOIN year_first_last y
ON p.code = y.code
GROUP BY p.code
)
SELECT
pv.code,
b.name,
b.market,
b.sector_33,
pv.close_latest,
pv.close_week,
pv.close_month,
pv.open_2025,
pv.open_2024, pv.close_2024,
pv.open_2023, pv.close_2023,
ROUND((pv.close_latest / pv.open_2025 - 1) * 100, 2) AS yoy_2025,
ROUND((pv.close_2024 / pv.open_2024 - 1) * 100, 2) AS yoy_2024,
ROUND((pv.close_2023 / pv.open_2023 - 1) * 100, 2) AS yoy_2023,
ROUND((pv.close_latest / pv.close_week - 1) * 100, 2) AS wow,
ROUND((pv.close_latest / pv.close_month - 1) * 100, 2) AS mom
FROM pivoted pv
JOIN "public"."Brands" b ON pv.code = b.code
今日時点のリストを眺めて考察
- 2025年の上昇率トップは8105堀田丸正で筆頭株主がRIZAPから仮想通貨企業Bakktに異動:仮想通貨関連銘柄として注目 米Bakkt日本進出の経緯
- 仮想通貨関連を除くと、6574コンヴァノや2700木徳神糧がある
- 特に6574コンヴァノは2023年から+48%→+188%→+1020%と完全に上昇トレンド
- プライムにしぼり、並べると6310井関農機が-7%→-13%→154%と出遅れ銘柄の反発がわかる
- 7003三井E&Sの変化は83%→156%→125%と防衛関連が物色される前からパフォーマンスが良好
- 4072電算システムホールディングスや4776サイボウズといったDX関連系は2025年+20%以上とパフォーマンスが良好だが、直近一ヶ月は-30%と-10%と振るわない
TODO
- 処理高速化(マテビュー化)
- 出来高や浮動株比率を加えて需給面も見たい