TypeScript:アメリカ個別銘柄の連続増配を調べる

確認する方法を探した所、Dividend Investor で調べることができました。
例えばコカ・コーラなら、stock symbol を KO で検索します。

60年ですね。

一括で調べるソースコードの作成

1つずつ手動で確認するのは辛いのでコードを書いてみました。
相手のサイトを高負荷にしない為に間を置きながら取得します。

使用パッケージ

typescript 5.0.4
ts-node 10.9.1
axios 1.4.0

ソースコード

import axios from 'axios';

// 調べたい銘柄
const symbols = [
  'AWR',
  'DOV',
  'GPC',
  'NWN',
  'PG',
  'AAPL',
  'MSFT',
  'GOOGL',
];

const main = async(symbol: string) => {
    const res = await axios.get(`https://www.dividendinvestor.com/ajax/?action=quote_ajax&symbol=${symbol}`)
      .then(value => value);
    const html = res.data.html;
    const start = 'Consecutive Dividend Increases</a></span><span class="data">';
    const from = html.indexOf(start) + start.length;
    const to = html.indexOf('</span>', from);
    const y = html.slice(from, to);
    console.log(`${symbol} : ${y}`);
}

let i = 0;
const intervalID = setInterval(() => {
  main(symbols[i]);
  i += 1;
  if (i >= symbols.length) {
    clearInterval(intervalID);
  }
}, 5000);

コード簡略化の為に結果を console.log で表示しましたが、実際はファイルやDBに書き出して使い回し、頻繁に取得するのは避けた方が良いでしょう。
私の場合は console.log の出力をテキストファイルにコピペ後、加工してから使いまわそうと思っています。

※ サイトが新しくなるなど、変更が行われた場合は結果が得られないと思います。

実行

$ ts-node src/index
AWR : 69 Years
DOV : 67 Years
GPC : 66 Years
NWN : 67 Years
PG : 69 Years
AAPL : 10 Years
MSFT : 17 Years
GOOGL : 0 Years

ちなみに、日本個別銘柄の連続増配を調べられるサイトは見つけられませんでした。残念。
無いんですかね。もしくは有料ならあったりするんでしょうか。

Pythonでできる! 株価データ分析 (Amazon)
Docker Desktop for Windows/Macでつくるクリーンな開発環境構築入門(Python版) (Amazon)
ファイナンス機械学習 (Amazon)
アセットマネージャーのためのファイナンス機械学習 (Amazon)

コメント