J-Quants Local-first PWA v7e-alpha65c

1.12GBレスキューSQLiteをCloudflare側OPFSへストリーミングImportし、公式SQLite-WASMで直接開く実機PoC。

J-Quants APIキー

このページ内のJ-Quants取得処理すべてで共通利用します。セッション中だけ保持し、SQLite/localStorageには保存しません。

未入力

Screening 開発フロー

ここだけ上から順番に実行すればOKです。①は履歴取得済みなら再実行不要です。

① 財務履歴 → ② 財務正規化 → ③ 母集団 → ④ 5戦略選抜 → ⑤ PC/Web Parity

残差財務監査(単独実行)

97.8%の残差だけをローカル財務DBで確認します。③→④→⑤をやり直す必要はありません。

未実行

① Screening 財務履歴補完

前年同期比較をPC版と揃えるため、Screeningに必要な財務履歴だけを補完します。取得済みの日は自動でスキップします。初回だけ数分かかります。

未実行

② 財務データ正規化

取得済み `/jq_fins_summary_v1.sqlite` のraw JSONを、PC版Screening/JQPで使う財務分析向けの共通列へ変換します。

未実行

③ Screening 統合母集団

Web DataLakeの全銘柄を結合後、PC版と同じ共通除外条件で母集団を絞ります。表示は「フィルタ前→フィルタ後」と、フィルタ後母集団に対するJOIN率です。

未実行

④ Screening 5戦略 選抜

統合母集団4,000銘柄超から、PC版と同じ5戦略名でTop20を選抜し、重複を統合した候補一覧を作ります。まずWeb側の選抜経路を完成させ、次段でPC版との完全Parityへ詰めます。

未実行

⑤ Screening 選抜 PC/Web Parity

PC版 screening_candidates.csv と、直前にWebで選抜した候補コード・PrimaryStrategyを照合します。

未実行
旧テスト・詳細ツール

Parity済み・開発確認用の機能です。通常のScreeningテストでは触らなくてOKです。

Web版 Screening Core 1

正式Screening移植の第1段階です。日足だけで再現できる価格・出来高系のCore指標をCatalog + Shardから計算します。

未実行

Core 1では、MA5/25/75、乖離率、5日/20日騰落率、RSI14、出来高20日比、20日/60日レンジ位置を監査対象にします。仮ランキングは表示確認用で、正式な銘柄選定ロジックにはまだ使用しません。

財務履歴バックフィル

Financial Summaryを日付単位で蓄積。API制限を守るため約1.1秒間隔です。初回は直近3か月。

未実行

需給統合監査

取得済み5つの需給Shardの件数・期間・実フィールドを横断確認します。

未実行

需給分析用正規化

取得済み5種を分析用スナップショットへ整理します。

未実行

財務 PC/Web Parity

PC版 screening_candidates.csv の比較可能財務列を自動検出してWeb正規化値と比較します。

未実行

JQP テクニカル全項目 Parity

PC版 technical_snapshot.csv とWeb版を、MA200・傾き・ATR・52週高安・MACD・一目均衡表・トレンド判定まで一括比較します。

未実行

⑨ Portfolio統合スナップショット

PC版 `portfolio.csv` を読み込み、Web DataLakeのMaster・株価・テクニカル・TOPIX相対強度・財務を1銘柄1行へ統合します。JQP Web化の中核テストです。

未実行

⑩ Portfolio / JQP PC-Web Parity

⑨で作成したWeb統合スナップショットを、PC版 portfolio.csv と technical_snapshot.csv に同時照合します。Portfolio入力値とJQPテクニカル54項目の統合経路を一括監査します。

未実行

Web JQP統合チェック

Portfolio統合がPASSしたら、CSVまたはJSONを書き出せます。JSONはWeb版JQPの初期形式で、Portfolio・Master・株価・テクニカル・TOPIX・財務・需給を1ファイルにまとめます。

今回の合格目安: テクニカル 14/14・財務 14/14。需給は銘柄/公表対象により14/14でなくても正常です。

v7e-alpha65c 起動確認

JavaScript起動: PASS(ボタンが反応すれば正常)
日付エンジン確認中…

Web版 DataLake

J-Quants DataLake

普段はここだけ使えばOKです。

日次更新

未実行

データの抜け確認・自動補完

未実行
①のチェック後に利用できます

①は全ての年別Shardを確認します。②は候補日だけJ-Quantsへ照会し、実際の取引日だけ補完します。祝日・休場日は0件として除外します。

② 銘柄マスター Shard

日足テクニカルの次のDataLake層です。J-Quants V2 /equities/master を基準日指定で取得し、/jq_equities_master_v1.sqlite に保存します。

APIキーはページ最上部の共通入力欄を使います。

未実行

③ 銘柄マスター PC/Web Parity

PC版 screening_candidates.csv の候補銘柄について、Web Masterの会社名・市場・業種17/33・信用区分を突合します。

未実行

④ 財務サマリー Shard

J-Quants V2 /fins/summary の開示データを日次保存します。まずraw JSONを完全保持し、PC版の財務列Parity後に正規化列を固定します。

未実行

⑤ 決算予定 Shard

J-Quants V2 /equities/earnings-calendar を日次保存します。決算跨ぎ除外・カタリスト管理の基礎層です。

未実行

⑥ 市場基礎 Shard(TOPIX + 営業日)

PC版の相対強度・市場状態判定に必要な基礎層です。初回は既存DataLakeと同じ2016-08-30から一括構築できます。

未実行
未実行
未実行

⑦ Standard需給 Shard 5種

信用残・日々公表信用・空売り比率・空売り報告・投資部門別を独立Shardで保持します。API仕様に合わせ、信用残は週次date走査、日々公表信用は営業日date走査、空売り報告は開示日範囲、その他はrange取得します。Plan差で取得不能な項目があっても他項目は継続します。

未実行
未実行
未実行
未実行
未実行
未実行

マイ銘柄

自分の保有・管理銘柄をこの端末のprivate DBへ登録します。追加・更新・削除できます。

未実行

PC版 portfolio.csv から登録

未実行
未実行

保存先は /jq_private_v1.sqlite。市場DataLakeとは分離します。同じコード+口座は追加ではなく更新になります。


マイ銘柄を分析

未実行

マイ銘柄:PC / Web 突合

PC版JQPの technical_snapshot.csv を読み込み、登録済みマイ銘柄の同一基準日テクニカルを比較します。

未実行

新規発掘 Screening:PC / Web 計算値突合

PC版で選ばれた候補の screening_candidates.csv を使い、その候補銘柄についてWeb側のテクニカル計算値が一致するか検証します。※候補選定ロジックそのものの一致テストではありません。

未実行

比較対象: Close / MA5 / MA25 / MA75 / MA25・75乖離率 / Return5D / Return20D / RSI14 / 最新出来高20日比 / High・Low 20D・60D。不一致だけ下に表示します。

現在の本番DataLake導線です。Catalog + Shards方式で、必要な小型DBだけを使います。旧巨大DataLake操作は開発者診断へ移しました。
未実行

未実行

未実行

年別Shard移行

最新年を既定値として、1暦年分の日足を専用Shardへ移します。
未実行

過去年を一括Shard化

Legacy DataLakeに実在する年を自動検出し、未移行年を新しい順に1年ずつ検証しながらShard化します。
未実行

未実行

未実行

不足期間をJ-Quantsから直接補完

旧巨大DataLakeを作り直さず、実機PASS済みの date=YYYYMMDD 取得方式で 2020〜2025年を日ごとに取得し、年別Shardへ直接保存します。 途中停止してもUPSERTなので同じ期間を再実行できます。
未実行

未実行

未実行
安全設計: 土日を自動スキップ / 祝日・休場日はAPI 0件としてスキップ / 1日ごとに取得→年別ShardへCommit / 年完了ごとにquick_check→Catalog ready登録 / Legacy DataLakeは未使用・未変更。

SAH Pool 緊急診断

固定Storage identity: origin=https://jquants-pwa-test.pages.dev / pool=jq-sahpool / directory=.jq-sahpool-v7c-r5
DataLakeを書き換えず、まずPoolの論理ファイル一覧を確認します。次に候補名をread-onlyで1つずつ開きます。
未実行

未実行

未実行

J-Quants DataLake 更新

普段はこちらだけ使います。J-Quants V2 APIキーはセッション中だけ利用し保存しません。 日次更新と過去データ穴埋めは、既存DataLakeへ日付単位で直接Commitします。
未実行

未実行

未実行

未実行

高速バックフィル v7e-alpha65c

書込みを1行ごとの db.exec から prepared statement 再利用へ変更しました。 祝日ではなく「実際に株価データがある欠損営業日」を自動で探し、API取得+SQLite書込みを1日分実測してから大量穴埋めを開始します。
未実行

未実行
開発者診断(通常は開かなくてOK)

本番 日次更新

J-Quants V2の日足を取得し、bars_recent+当年Shardへ同時保存します。旧巨大DataLakeは使いません。

未実行
未実行

保存先: jq_bars_recent_v1.sqlite(直近30取引日)+ jq_bars_YYYY_v1.sqlite。両方を検証後Catalogを更新します。

DataLake 読み取り / Catalog

日付範囲を渡すとCatalogが必要な年別Shardだけを選び、利用側からは1つのDataLakeとして読み取ります。

未実行
未実行

年をまたぐ場合も自動で複数Shardを解決します。年別Shardを優先し、bars_recentは年Shardが無い場合だけfallbackします。

日足Gap 自動補完

Catalog監査で見つかった長期GapをJ-Quants V2から日ごとに取得し、該当年Shardへ直接UPSERTします。旧巨大DataLakeは使いません。

未実行
未実行

土日はAPIを呼ばずスキップ。平日の祝日・休場日はAPI 0件としてスキップ。1日ごとに取得→該当年ShardへCommit→日次行数+quick_checkを検証します。再実行はUPSERTなので安全です。

正式バックアップ / 復元

Catalog+年別ShardをiPhoneのFilesなどブラウザ外へ保存します。 SAH Pool内だけのコピーではなく、Safariのサイトデータ消失にも備える正式バックアップです。

長時間バックフィル実行中はバックアップしないでください。2020〜2025の補完がPASSしてから実行してください。
未実行
未実行
未実行
Safariが複数ダウンロードを止める場合は、下の選択式で1ファイルずつ保存できます。
未実行

外部バックアップから復元

保存した jq_catalog_v1.sqlite / jq_bars_YYYY_v1.sqlite 等を複数選択できます。 各ファイルはStreaming Import後に quick_check を実行します。

未実行
未実行
旧・同一ブラウザ内スナップショット

Legacy巨大DataLake向けの旧機能です。外部バックアップの代わりにはなりません。

未実行
未実行
旧sql.jsのようにDB全体をRAMへ読み込みません。レスキューSQLiteはストリームでOPFSへコピーし、 SQLite-WASMはWorkerからOPFS上のDBを直接開きます。
Import先はCloudflare Pages側OPFSの jq_market_v7c.sqlite です。 GitHub Pages側の元DBや、Filesに保存したレスキューSQLiteは変更しません。

自動連続バックフィル v7e-alpha65c

穴を再検出しながら連続処理。日付単位Commitなので安全停止・再開できます。Safariは前面表示のままにしてください。

未実行

1. v7c前提チェック

Cloudflare配信条件とOPFS容量見積りを確認します。
未実行

2. レスキューSQLiteをストリーミングImport(Direct Open前に必須)

Filesから1.12GBのレスキューSQLiteを選択。4MB前後のチャンク単位でOPFSへコピーし、全体をRAMには載せません。
未実行

3. SQLite-WASM同一オリジン配信チェック

Cloudflare Pages Function経由で index.mjs / sqlite3.wasm を pages.dev 同一オリジンから取得できるか確認します。
未実行

4. SQLite-WASM初期化テスト(opfs-sahpool)

DBをまだ開かず、SQLite 3.53の新しい opfs-sahpool VFSだけを有効化して初期化します。opfs-sahpoolは意図的に無効化します。
未実行

5. SAH Pool基本動作テスト(小型DB)

巨大DBの前に、小型SQLiteを作成→INSERT→Worker終了→別Workerで再Open→SELECTし、永続化を確認します。
未実行

6. 公式SQLite-WASMで直接Open(opfs-sahpool)

Worker内で公式 @sqlite.org/sqlite-wasm を起動し、SQLite 3.53の opfs-sahpool VFSへ1.12GB DBをストリーミングImportし、read-onlyで直接開きます。
未実行

7. 整合性チェック(任意・重め)

PRAGMA quick_checkを実行します。1GB超DBを走査するため時間がかかる可能性があります。
未実行

7. v7e-alpha65c総合判定

未判定

v7e-alpha65c 実運用同期エンジン前段テスト

既存1.12GB DataLakeの実スキーマを検査し、日付単位Transaction → Commit → Checkpoint → Worker再起動後Resumeを同じSQLiteへ直接書き込みます。DB全体RAM展開・db.export()は使いません。
未実行

未実行

未実行

v7e-alpha65c J-Quants 実データ同期

J-Quantsの日足をブラウザから取得し、既存1.12GB DataLakeへ日付単位で直接Commitします。 認証情報はこの画面のメモリ内だけで使用し、SQLite・localStorage・GitHubには保存しません。
未実行

未実行

未実行

v7e-alpha65c 自動Catch-up Sync

DataLakeの最終取得日と専用Checkpointを自動判定し、その翌日から指定日まで順番に同期します。 土日はAPI呼出しを省略。祝日などAPIが0件の日も「確認済み」としてCheckpointを進めます。 iPhoneでは前景実行のため、このカードの同期中はSafariを閉じないでください。
未実行

未実行

未実行

10. 更新履歴 / Build情報

正式な更新履歴は CHANGELOG.md / release_history.json / このUIの3層で管理します。
Version: v7e-alpha65c Build date: 2026-09-01 Schema version: catalog-shards-v1 Migration version: history-4

本番 日次更新

J-Quants V2の日足を取得し、bars_recent+当年Shardへ同時保存します。旧巨大DataLakeは使いません。

未実行
未実行

保存先: jq_bars_recent_v1.sqlite(直近30取引日)+ jq_bars_YYYY_v1.sqlite。両方を検証後Catalogを更新します。

DataLake 読み取り / Catalog

日付範囲を渡すとCatalogが必要な年別Shardだけを選び、利用側からは1つのDataLakeとして読み取ります。

未実行
未実行

年をまたぐ場合も自動で複数Shardを解決します。年別Shardを優先し、bars_recentは年Shardが無い場合だけfallbackします。

日足Gap 自動補完

Catalog監査で見つかった長期GapをJ-Quants V2から日ごとに取得し、該当年Shardへ直接UPSERTします。旧巨大DataLakeは使いません。

未実行
未実行

土日はAPIを呼ばずスキップ。平日の祝日・休場日はAPI 0件としてスキップ。1日ごとに取得→該当年ShardへCommit→日次行数+quick_checkを検証します。再実行はUPSERTなので安全です。

正式バックアップ / 復元

Catalog+年別ShardをiPhoneのFilesなどブラウザ外へ保存します。 SAH Pool内だけのコピーではなく、Safariのサイトデータ消失にも備える正式バックアップです。

長時間バックフィル実行中はバックアップしないでください。2020〜2025の補完がPASSしてから実行してください。
未実行
未実行
未実行
Safariが複数ダウンロードを止める場合は、下の選択式で1ファイルずつ保存できます。
未実行

外部バックアップから復元

保存した jq_catalog_v1.sqlite / jq_bars_YYYY_v1.sqlite 等を複数選択できます。 各ファイルはStreaming Import後に quick_check を実行します。

未実行
未実行
旧・同一ブラウザ内スナップショット

Legacy巨大DataLake向けの旧機能です。外部バックアップの代わりにはなりません。

未実行
未実行
旧sql.jsのようにDB全体をRAMへ読み込みません。レスキューSQLiteはストリームでOPFSへコピーし、 SQLite-WASMはWorkerからOPFS上のDBを直接開きます。
Import先はCloudflare Pages側OPFSの jq_market_v7c.sqlite です。 GitHub Pages側の元DBや、Filesに保存したレスキューSQLiteは変更しません。

自動連続バックフィル v7e-alpha65c

穴を再検出しながら連続処理。日付単位Commitなので安全停止・再開できます。Safariは前面表示のままにしてください。

未実行

1. v7c前提チェック

Cloudflare配信条件とOPFS容量見積りを確認します。
未実行

2. レスキューSQLiteをストリーミングImport(Direct Open前に必須)

Filesから1.12GBのレスキューSQLiteを選択。4MB前後のチャンク単位でOPFSへコピーし、全体をRAMには載せません。
未実行

3. SQLite-WASM同一オリジン配信チェック

Cloudflare Pages Function経由で index.mjs / sqlite3.wasm を pages.dev 同一オリジンから取得できるか確認します。
未実行

4. SQLite-WASM初期化テスト(opfs-sahpool)

DBをまだ開かず、SQLite 3.53の新しい opfs-sahpool VFSだけを有効化して初期化します。opfs-sahpoolは意図的に無効化します。
未実行

5. SAH Pool基本動作テスト(小型DB)

巨大DBの前に、小型SQLiteを作成→INSERT→Worker終了→別Workerで再Open→SELECTし、永続化を確認します。
未実行

6. 公式SQLite-WASMで直接Open(opfs-sahpool)

Worker内で公式 @sqlite.org/sqlite-wasm を起動し、SQLite 3.53の opfs-sahpool VFSへ1.12GB DBをストリーミングImportし、read-onlyで直接開きます。
未実行

7. 整合性チェック(任意・重め)

PRAGMA quick_checkを実行します。1GB超DBを走査するため時間がかかる可能性があります。
未実行

7. v7e-alpha65c総合判定

未判定

v7e-alpha65c 実運用同期エンジン前段テスト

既存1.12GB DataLakeの実スキーマを検査し、日付単位Transaction → Commit → Checkpoint → Worker再起動後Resumeを同じSQLiteへ直接書き込みます。DB全体RAM展開・db.export()は使いません。
未実行

未実行

未実行

v7e-alpha65c J-Quants 実データ同期

J-Quantsの日足をブラウザから取得し、既存1.12GB DataLakeへ日付単位で直接Commitします。 認証情報はこの画面のメモリ内だけで使用し、SQLite・localStorage・GitHubには保存しません。
未実行

未実行

未実行

v7e-alpha65c 自動Catch-up Sync

DataLakeの最終取得日と専用Checkpointを自動判定し、その翌日から指定日まで順番に同期します。 土日はAPI呼出しを省略。祝日などAPIが0件の日も「確認済み」としてCheckpointを進めます。 iPhoneでは前景実行のため、このカードの同期中はSafariを閉じないでください。
未実行

未実行

未実行

10. 更新履歴 / Build情報

正式な更新履歴は CHANGELOG.md / release_history.json / このUIの3層で管理します。
Version: v7e-alpha65c Build date: 2026-09-01 Schema version: catalog-shards-v1 Migration version: history-4