Je me suis demandé s'il serait possible de collecter des données d'investissement fondamentales avec Python, et quand je l'ai recherché, j'ai trouvé des articles qui téléchargeaient XBRL à partir du récupérateur d'ovnis et faisaient diverses choses, mais je pensais que tous seraient irritants et gênants. J'ai créé un module qui permet d'obtenir et d'analyser rapidement XBRL. Je viens de le faire, donc je serais heureux si vous pouviez me contacter en cas de problème.
Installez à partir du référentiel Git.
python
pip install git+https://github.com/sawadyrr5/UfoDataReader
Pour obtenir le XBRL, utilisez la classe DataReader. Spécifiez symbole, début, fin pour afficher tous les documents correspondants. Ceux avec "Rapport sur les valeurs mobilières" ou "Rapport trimestriel" dans le titre sont is_yuho = True. Si fetch_xbrl = True, les données XBRL seront téléchargées (notez qu'il y a environ plusieurs Mo).
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] Rapport sur les valeurs mobilières de Toyota Motor Co., Ltd. - 113e terme(1er avril 2016 au 31 mars 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] Rapport de contrôle interne de Toyota Motor Co., Ltd. - 113e terme(1er avril 2016 au 31 mars 2017)',
'updated': datetime.datetime(2017, 6, 23, 0, 0),
'url': 'http://resource.ufocatch.com/data/edinet/ED2017062301247'}]
L'analyse XBRL utilise la classe UfoXBRLParser. Passer un fichier XBRL à la méthode parse () renverra un document XBRL analysé. Vous pouvez obtenir les informations de base du document en passant le document XBRL à parseDEI ().
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'}
Vous pouvez obtenir des indicateurs financiers de base, etc. en passant le document XBRL à parseGAAP (). Il existe trois types de normes comptables pour la préparation des rapports sur les titres: US GAAP, IFRS et Japan GAAP, et les noms des éléments pour l'analyse sont chacun légèrement différents, mais pour le moment, si vous creusez dans parseGAAP (), ce sera interne. J'essaie de faire la distinction entre les PCGR américains et les PCGR japonais et de les analyser. Les IFRS ne sont pas prises en charge. (Reportez-vous au fichier suivant publié par la Financial Services Agency pour plus de détails tels que les noms d'éléments)
(e) Liste des éléments de taxonomie (EXCEL: 6 281 Ko)
Dans le cas de Toyota Motor, il est créé sur la base des normes US GAAP.
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'}
C'est le cas des entreprises créées avec la norme nationale Japan GAAP.
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'}
Analyse financière pour l'étape d'investissement 1 "Acquérir des informations financières XBRL" Analyse financière pour l’étape 2 de l’investissement "Importer le fichier XBRL dans la base de données" Note d'article XBRL signalé
Recommended Posts