EDGAR XBRLの名前空間とティッカーシンボル。スキーマファイルからティッカーを調べるに至った過程

スポンサーリンク

米国株の決算分析のために、エドガーXBRLを読み込むプログラムを書いているのですが、その過程で色々なことが分かってきました。まだまだ作っている途中ですが、エドガーXBRLの読み込みで大変だったところをお話しします。ティッカーシンボル(ティッカーコード、Ticker)のことです。

まず、XBRLのファイル名には、ティッカーっぽい文字列が含まれているんですね。大体のXBRLが amzn-20180331.xml みたいなファイル名になっていました。ティッカーと日付をハイフンでつないだ感じです。

それを見て、「ああ、なるほど。じゃあファイル名からティッカーは取得できるんだな」って思いました。

実はエドガーXBRLって、タグの名前空間にティッカーが使われているんですね。なので、どこかでそのティッカーを特定する必要があるんですよ。特に、特定の勘定科目を狙って読み込みたいときです。

それで、ティッカーがファイル名でいきなり分かるなら、きっと簡単だろうなって思いました。でも、これがうまくいかなかったです。例外がたくさんありました。

たとえば、企業のティッカーが変わった場合。これです。いや~、ティッカーって変わるんですね。日本でも吸収・合併などで新しい企業になったときは、新しい証券コードが割り当てられたりしますし、そういうこともやはりあります。

で、問題は新しくなったあとです。ファイル名と名前空間のティッカーが合わないんですね。ファイル名が新しくなったのに、名前空間では古いのが使われているという、そういう状況がしばらく続いていました。そのあたり、どういう仕様・方針になってるのかは調べていないのですが、とりあえず、合わなかったです。

ファイル名にはほかにも、「c771」とか「c474」とか、あまりティッカーって感じじゃないのがくっついてる場合もありました。なんだろう、仮の連番かな?

いろいろ試してみて、今はスキーマファイル(xsd)のエレメントタグからティッカーを取得しています。エレメントタグのid属性には、名前空間の接頭辞がくっついているので、そこから取得します。これが今のところ良く動いてくれてます。スキーマファイルへのリンクはXBRLに載っていますので、簡単に辿れます。

それでもなんとかXBRL単体で特定できないかと、トレーディング・シンボルタグ <dei:TradingSymbol> にも目をつけたのですが、必須タグではなかったようで上手くいきませんでした。ファイル1つで完結するなら一番簡単だったんですけれど。

日本のエディネットなら、こういう提出者別の名前空間は正規表現で特定できたのですが、エドガーの場合は、また別のアプローチが必要だったという、そういうお話でした。

タイトルとURLをコピーしました