DEV Community

NexGenData
NexGenData

Posted on • Originally published at thenextgennexus.com

東証銘柄スクリーナー実践:Apify で日経225・TOPIX の株価とファンダメンタルズを取得(コード付き)

日本株のデータ分析をやったことがある方なら、データ取得のハードルの高さをご存じのはずです。Bloomberg ターミナルや FactSet、Refinitiv Eikon は機能十分ですが、個人やスタートアップには価格が高すぎます。一方、無料の海外フィードは日本株のカバレッジが薄く、銘柄コードや時価総額(円建て)の扱いも不安定です。

この記事では、Apify 上の TSE Japan Stock Screener(東証銘柄スクリーナー) を紹介します。日経225・TOPIX・東証全銘柄を対象に、株価・時価総額(円)・騰落率などを構造化 JSON で返し、必要に応じてファンダメンタルズも付与できます。クラウド実行・従量課金で、無料枠から始められます。以下、出力フィールド・コード・料金・FAQ をまとめます。

1. 課題:日本株データは高い/APIが少ない

  • プロ向け端末は高額。 Bloomberg / FactSet / Eikon は年額数百万円規模で、個人・小規模チームには非現実的。
  • 無料フィードはカバレッジが薄い。 海外系の無料 API は日本銘柄の網羅性・鮮度に難あり。
  • 銘柄コード/円建ての整形が面倒。 4桁証券コード、時価総額の円表記などを自分で揃える必要がある。
  • スクリーニング条件の組み立てが手間。 指数・時価総額・セクターでの絞り込みを毎回スクラッチで書くのは非効率。

2. このActorでできること

指数(NIKKEI / TOPIX / TSE-all)を指定して銘柄一覧を取得します。各銘柄について、銘柄コード・銘柄名・株価(円)・騰落率・時価総額(円)・売上高などの基本情報を返します。enrich_fundamentals を有効にすると、PER・PBR・配当利回り・ROE などのファンダメンタルズも付与します(その分やや時間がかかります)。

主な入力パラメータ:index(指数・市場、既定 NIKKEI)、limit(取得銘柄数、既定 50)、min_market_cap_jpy_billion(時価総額の下限・十億円)、sector(セクター/業種/銘柄名キーワード)、enrich_fundamentals(ファンダメンタルズ付与)。

3. こんな方におすすめ

  • ヘッジファンド/クオンツ: 日本株ユニバースを構造化データで取得し、スクリーニングやバックテストに利用。
  • 個人投資家: 高額端末なしで日経225・TOPIX のスクリーニングを実行。
  • フィンテック/データ基盤: 日本株の時価総額・株価を自社パイプラインに取り込む。
  • リサーチ: セクター別・時価総額別の銘柄群を抽出してレポートに活用。

4. 出力フィールド例

フィールド 内容
symbol / name 銘柄コード / 銘柄名
ticker_yahoo Yahoo!ファイナンス用ティッカー
price_jpy / pct_change 株価(円) / 騰落率
market_cap_jpy / market_cap_billion_jpy / market_cap_display 時価総額(円 / 十億円 / 表示用)
revenue_ttm_jpy / revenue_ttm_billion_jpy 売上高(TTM、円 / 十億円)
is_nikkei225 日経225 構成銘柄か
stockanalysis_url / yahoo_finance_url 参照リンク

1銘柄あたりの JSON はおおよそ次のような形です:


    {
      "symbol": "7203",
      "name": "トヨタ自動車",
      "ticker_yahoo": "7203.T",
      "price_jpy": 3120,
      "pct_change": 1.4,
      "market_cap_jpy": 50000000000000,
      "market_cap_billion_jpy": 50000,
      "market_cap_display": "50.0兆円",
      "is_nikkei225": true
    }
Enter fullscreen mode Exit fullscreen mode

※ 値はフォーマット例示用のサンプルです。実データは実行時に取得されます。

5. 活用例

  • 大型株スクリーニング: index=NIKKEI + min_market_cap_jpy_billion で大型株だけを抽出。
  • セクター分析: sector キーワードで特定業種の銘柄群を取得。
  • ファンダメンタルズ比較: enrich_fundamentals=true で PER・配当利回り等を付与し相対比較。
  • 定点観測: 定期実行で株価・時価総額の時系列を蓄積。

6. Apify で実行する

Actor ページ:TSE Japan Stock Screener on Apify。新規登録で $5 の無料クレジットこちらから登録)。


    from apify_client import ApifyClient

    client = ApifyClient("YOUR_APIFY_TOKEN")
    run = client.actor("nexgendata/tse-japan-stock-screener").call(run_input={
        "index": "NIKKEI",
        "limit": 20,
        "enrich_fundamentals": True,
    })

    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item["symbol"], item["name"], item["price_jpy"], item["market_cap_display"])

Enter fullscreen mode Exit fullscreen mode

料金:いくらかかる?

従量課金(Pay-Per-Event) :起動 $0.01 + 1銘柄あたり $0.25 。たとえば 20 銘柄で約 $5。銘柄数が多いと費用も増えるため、limit や時価総額・セクターで対象を絞るのがおすすめです。無料枠の $5 でまず動作確認できます。

7. 関連Actor:日本データスタックを組む

8. よくある質問

対象はどの市場ですか?

日経225・TOPIX・東証全銘柄から index で選べます。

データはリアルタイムですか?

実行時点の株価・時価総額を取得します。時系列が必要な場合は定期実行で蓄積してください。

PER や配当利回りも取れますか?

enrich_fundamentals=true を指定すると、PER・PBR・配当利回り・ROE などのファンダメンタルズを付与します(処理はやや遅くなります)。

ログインや口座は必要ですか?

不要です。公開情報をもとに取得します。

pandas や Excel にそのまま読み込めますか?

はい。結果は Apify のデータセットに保存され、CSV / Excel / JSON でエクスポート、またはデータセット API から pandas に直接読み込めます。

今すぐ試す: TSE Japan Stock Screener を実行 · $5 無料クレジットで登録

Top comments (0)