[PYTHON] Erstellt eine Klasse zum Herunterladen und Analysieren von XBRL von UFO Catcher

Über diesen Artikel

Ich fragte mich, ob es möglich sein würde, grundlegende Investitionsdaten mit Python zu sammeln, und als ich sie nachschlug, fand ich einige Artikel, die ich XBRL vom UFO-Catcher heruntergeladen und verschiedene Dinge getan hatte, aber ich dachte, dass alle kratzig und problematisch wären. Ich habe ein Modul erstellt, mit dem XBRL schnell abgerufen und analysiert werden kann. Ich habe es gerade geschafft, also würde ich mich freuen, wenn Sie mich kontaktieren könnten, wenn etwas nicht stimmt.

1. Installation

Installation aus dem Git-Repository.

sawadyrr5/UfoDataReader

python


pip install git+https://github.com/sawadyrr5/UfoDataReader

2. Erhalten Sie XBRL

Verwenden Sie zum Abrufen der XBRL die DataReader-Klasse. Geben Sie das Symbol an, starten Sie, beenden Sie, um alle übereinstimmenden Dokumente anzuzeigen. Diejenigen mit "Securities Report" oder "Quarterly Report" im Titel sind is_yuho = True. Wenn fetch_xbrl = True ist, werden XBRL-Daten heruntergeladen (Beachten Sie, dass ungefähr mehrere MB vorhanden sind).

python


In [1]:
# 1. getting xbrl
from UfoDataReader.io.data import DataReader
from datetime import datetime

start = datetime(2017, 6, 23)
end = datetime(2017, 6, 23)
ufos = DataReader('7203', 'ufo', start, end, fetch_xbrl=False)  # if fetch_xbrl=True, download xbrl files.
ufos
Out[1]:
[{'docid': 'S100AKEX',
  'id': 'ED2017062301177',
  'is_yuho': True,
  'title': '[E02144] Wertpapierbericht von Toyota Motor Co., Ltd. - 113. Amtszeit(1. April 2016 - 31. März 2017)',
  'updated': datetime.datetime(2017, 6, 23, 0, 0),
  'url': 'http://resource.ufocatch.com/data/edinet/ED2017062301177'},
 {'docid': 'S100AI3I',
  'id': 'ED2017062301247',
  'is_yuho': False,
  'title': '[E02144] Bericht über die interne Kontrolle von Toyota Motor Co., Ltd. - 113. Amtszeit(1. April 2016 - 31. März 2017)',
  'updated': datetime.datetime(2017, 6, 23, 0, 0),
  'url': 'http://resource.ufocatch.com/data/edinet/ED2017062301247'}]

3. XBRL-Perspektive

Beim XBRL-Parsing wird die UfoXBRLParser-Klasse verwendet. Wenn Sie eine XBRL-Datei an die parse () -Methode übergeben, wird ein analysiertes XBRL-Dokument zurückgegeben. Sie können die grundlegenden Informationen des Dokuments abrufen, indem Sie das XBRL-Dokument an parseDEI () übergeben.

python


In [2]:
# 2.1 parse xbrl (US GAAP)
from UfoDataReader.util.parser import UfoXBRLParser
ufoparser = UfoXBRLParser()

toyota = 'jpcrp030000-asr-001_E02144-000_2015-03-31_01_2015-06-24.xbrl'     # US GAAP

xbrl = ufoparser.parse(toyota)
dei = ufoparser.parseDEI(xbrl)
dei.__dict__

python


Out[2]:
{'accounting_standards': 'US GAAP',
 'company_name': 'Toyota Motor Corporation',
 'current_fy_end': '2015-03-31',
 'current_fy_start': '2014-04-01',
 'edinet_code': 'E02144',
 'trading_symbol': '72030'}

Sie können grundlegende Finanzindikatoren usw. erhalten, indem Sie das XBRL-Dokument an parseGAAP () übergeben. Es gibt drei Arten von Rechnungslegungsstandards für die Erstellung von Wertpapierberichten: US-GAAP, IFRS und Japan-GAAP, und die Elementnamen für die Analyse unterscheiden sich geringfügig, aber vorerst, wenn Sie in parseGAAP () gehen, Ich versuche, zwischen US-GAAP und Japan-GAAP zu unterscheiden und diese zu analysieren. IFRS werden nicht unterstützt. (Einzelheiten wie Elementnamen finden Sie in der folgenden von der Financial Services Agency veröffentlichten Datei.)

(e) Liste der Taxonomieelemente (EXCEL: 6.281 KB)

Im Fall von Toyota Motor basiert es auf US-GAAP-Standards.

python


In [3]:
gaap = ufoparser.parseGAAP(xbrl)
gaap.__dict__

python


Out[3]:
{'assets': '15128623000000',
 'basic_eps': '688.02',
 'cashflow_from_financing': '306045000000',
 'cashflow_from_investing': '-3813490000000',
 'cashflow_from_operation': '3685753000000',
 'comprehensive_income': '3294275000000',
 'current_assets': '6000524000000',
 'current_liabilities': '3571917000000',
 'diluted_eps': '687.66',
 'liabilities': '4944351000000',
 'net_assets': '10184271000000',
 'net_income_loss': '2173338000000',
 'non_current_assets': '9128099000000',
 'non_current_liabilities': '1372433000000',
 'operating_income_loss': 0,
 'per': '12.2',
 'profit_loss_before_tax': '2892828000000',
 'revenues': '27234521000000',
 'shares_outstanding': '3417997000'}

Dies gilt für Unternehmen, die nach dem inländischen Standard Japan GAAP gegründet wurden.

python


In [4]:
# 2.2 parse xbrl (Japan GAAP)
amiyaki = 'jpcrp030000-asr-001_E03398-000_2017-03-31_01_2017-06-23.xbrl'    # Japan GAAP

xbrl = ufoparser.parse(amiyaki)
dei = ufoparser.parseDEI(xbrl)
dei.__dict__

python


Out[4]:
{'accounting_standards': 'Japan GAAP',
 'company_name': 'Amiyakitei Co., Ltd.',
 'current_fy_end': '2017-03-31',
 'current_fy_start': '2016-04-01',
 'edinet_code': 'E03398',
 'trading_symbol': '27530'}

python


In [5]:
gaap = ufoparser.parseGAAP(xbrl)
gaap.__dict__

python


Out[5]:
{'assets': '23304000000',
 'basic_eps': '315.96',
 'bps': '2769.14',
 'cashflow_from_financing': '-744000000',
 'cashflow_from_investing': '-1339000000',
 'cashflow_from_operation': '3100000000',
 'comprehensive_income': '2163000000',
 'current_assets': '11004000000',
 'current_liabilities': '3538000000',
 'diluted_eps': '',
 'equity_to_asset_ratio': '0.814',
 'liabilities': '4339000000',
 'net_assets': '18965000000',
 'netsales': '30564000000',
 'non_current_assets': '12299000000',
 'non_current_liabilities': '800000000',
 'ordinary_income_loss': '3053000000',
 'per': '13.1',
 'profit_loss': '2163000000',
 'roe': '0.119',
 'shares_outstanding': '6848800',
 'total_assets': '23304000000'}

Referenz

Finanzanalyse für die Anlage Schritt 1 "Erfassung von Finanzinformationen XBRL" Finanzanalyse für Investitionsschritt 2 "XBRL-Datei in DB importieren" Gemeldetes XBRL-Elementmemo

Recommended Posts

Erstellt eine Klasse zum Herunterladen und Analysieren von XBRL von UFO Catcher
Ich habe eine Klasse in Python erstellt und versucht, Enten zu tippen
[EC2] So installieren und laden Sie chromedriver über die Befehlszeile herunter
Django: Klasse aus String importieren
OpenMPI-Installation Vom Download bis zum Bestehen
Migration von Python2 zu Python3 (Python2 wird als virtuelle Umgebung neu erstellt und existiert gleichzeitig)
Stellen Sie von Python aus eine Verbindung zu postgreSQL her und verwenden Sie gespeicherte Prozeduren in einer Schleife.