リソース
分析手法
StockVSの仕組み
StockVSは自動化されたパイプラインによって生成されています。データ収集、毎晩のビルド、自動チェック、そして公開という各段階について、以下で説明します。
データ収集
市場データはオープンソースのyfinanceライブラリを通じてYahoo Financeから取得しています。日次の価格と出来高、配当、主要統計を含む企業およびファンドのプロフィール、株式については年次損益計算書、ETFについては上位保有銘柄です。対象となる銘柄は米国およびカナダの取引所の公開上場銘柄から、ニュースの見出しはFinnhubニュースサービスから取得しています。預託証券(ADR)については、時価総額はADR価格にADR相当株式数を掛けたもので、Yahoo Financeが報告する通りです。ADRがプレミアムで取引されている場合、企業の本国市場での価値と異なることがあります(例:TSMやSKHY)。
データパイプライン
収集ジョブは、各銘柄の価格とプロフィール、そして株式についてはニュースの見出しをPostgreSQLデータベースに書き込みます。毎晩、静的サイトビルドがそのデータベースからすべてのページを生成し、自動チェックがその結果を検査します。いずれかのチェックに失敗した場合、アップロードは行われず、前のバージョンが公開され続けます。チェックに合格したビルドはCloudflareのネットワークの背後にある静的ホスティングにアップロードされ、その後、新しいページの中からランダムに抽出したサンプルを読み込んで応答を確認します。
更新スケジュール
価格は各取引日の市場終了後に収集され、収集が完了すると毎晩のビルドが開始されるため、ページには通常その日の夜のうちにその日の終値が表示されます。週末のビルドは直前の取引日のデータを使用します。企業プロフィールと主要統計は平日ごとに更新され、ETFの保有銘柄とETFの全価格履歴は週次で、各企業の損益計算書はおおむね四半期ごとに、新規上場銘柄については一週間以内に更新されます。株式のニュースの見出しは、大企業については毎日、小規模な企業については数日ごとに更新されます。平日の収集が失敗した場合、その夜のビルドは実行されず、前のバージョンが公開され続け、監視システムが警告を発します。
数値の算出方法
直近期間、暦年、月次のリターンは、保存されている日次終値から算出されます。この終値は、それぞれがダウンロードされた時点でYahoo Financeが株式分割と配当に合わせて調整した値です。ボラティリティは日次リターンの年率化標準偏差です。時価総額、バリュエーション指標、マージン、一株当たり利益、配当利回りは、Yahoo Financeが報告する値のまま表示され、妥当な範囲を外れる値は表示されません。数値はそれぞれの報告通貨(米ドルまたはカナダドル)のまま示され、換算は行われません。両方の通貨にまたがる合計は、通貨ごとに分けて示されます。業種との比較には業種の中央値を使用し、パーセンテージ間の差はパーセンテージポイントで示されます。
分析文の作成方法
株式およびETFページの分析は、対応する各言語で事前に用意された文章テンプレートに、データベースの数値を当てはめて組み立てられています。データが欠けている場合は、プレースホルダーを残すのではなく、その文自体が省かれます。テンプレートはデータと業種中央値との比較を説明するものであり、評価、推奨、予測は含みません。サイトのビルド時に言語モデルは一切動作せず、個々の株式やファンドについて文章を書くモデルもありません。一部のニュース見出しの横に表示される抽象的なイラストは、画像モデルによって一度だけ生成されたもので、記事の内容を描写するものではありません。
品質管理
データ収集の段階では、価格はその銘柄自身の市場が開いていた日のものだけが保存され、当日の価格はその取引が終了した後にのみ保存されます。また、日次更新によって保存済みの終値がリアルタイムの相場で上書きされることはありません。データフィードから届いた省略された名称が、保存済みの正式名称を置き換えることはなく、価格の取得ができなくなった銘柄は実行レポートにフラグが付けられます。ページ上では、最新でなくなった価格には最終取引日が表示され、複数の市場に重複上場している企業は一回のみ集計されます。
毎晩の公開前に、自動チェックが完成したサイトをページ単位、またはサンプル単位で読み取ります。ビルドの規模は直前に公開されたバージョンと近い値である必要があり、サイトマップに記載されているページ数以上を含み、価格はスケジュールが要求する範囲内で最新でなければなりません。構造化データは正しい形式である必要があり、価格の日付は取引日に限られ未来の日付であってはならず、各ページはただ一つのデータ日付を持ち、件数と合計はページ間で一致していなければなりません。どの表も、同じ企業を二度掲載したり、異なる通貨を合算したりしてはいけません。分析文と一覧のまとめ文は、そのページの言語の文字体系で書かれている必要があります。
既知の制限事項
StockVSはリアルタイムの相場を提供していません。データは終値ベースであり、Yahoo Financeが終値の公開を遅らせた場合や収集が失敗した場合には、一部のページが一取引日以上遅れることがあります。数値の正確さはYahoo Financeのデータの正確さに依存します。すべての財務指標がすべての株式やETFで利用できるわけではありません。過去データの利用可能期間は銘柄によって異なります。価格履歴の大半は日々少しずつ延長されているため、その後に行われた株式分割や配当の調整が過去の価格まで反映されないことがあり、長期的なリターンが他のソースと異なることがあります。取引が停止された銘柄もページはそのまま残り、最終価格には最新でないことを示す表示が付きます。また、企業概要は英語版の株式ページにのみ表示されます。
訂正
誤りは、上記の自動チェックや、公開済みページのレビューによって見つかります。それぞれの誤りは、データ、計算、テンプレートなど、その発生源で修正され、次回の夜間ビルドで影響を受けるすべてのページに反映されます。訂正内容はプロジェクトの内部課題管理システムに記録されます。現在、エラーを報告するための公開窓口はありません。