[PYTHON] J'ai fait une classe pour vérifier si c'est un constituant de TOPIX Core30, Large70, Mid400, Small

introduction

Cette marque est-elle grande? Taille moyenne? Petit? Lorsque cela vous inquiète, il serait utile d'avoir des informations pour savoir s'il fait ou non partie de l'indice. Donc, si vous donnez un code boursier arbitraire, nous avons créé une classe qui renvoie le ratio flottant libre et le poids de la composition ainsi que les indices de taille TOPIX inclus. Comme il était difficile de mettre en ligne les données originales, la mise à jour est manuelle. Tsumami.

Quoi préparer

Enregistrez le PDF suivant au format txt au même emplacement que la classe. (Vous pouvez le faire avec Acrobat Reader)

TOPIX (indice boursier TSE) | Japan Exchange Group Liste du ratio flottant et du poids de composition par stock constituant

code

Rien, juste lire et analyser le texte.

TOPIX


#! /usr/bin/env python
# -*- coding: utf-8 -*-
import re


class TOPIX:
    """
Comment utiliser

    1.Préparation
    http://www.jpx.co.jp/markets/indices/topix/tvdivq00000030ne-att/list-j.pdf
DL et liste au même emplacement que le script-j.Enregistrez en tant que txt.(Enregistrer le txt d'Acrobat Reader)

c'est tout
    """
    def __init__(self):
        re_date = re.compile(r"\d{4}/\d{2}/\d{2}")

        self.result = dict()
        for line in open('list-j.txt', 'r'):
            matchOB = re_date.match(line)
            if matchOB:
                line = line.replace('Small ', 'Small').replace('○ ', '').replace('-', '- ').replace('\n', '')
                line = line.replace(matchOB.group(), matchOB.group()+' ')
                l = line.split(' ')
                self.result[l[2]] = dict(
                    newindex=l[3],
                    float_ratio=l[4],
                    weight=l[5]
                )

    def newindex(self, code):
        return self.result[code]['newindex']

    def float_ratio(self, code):
        return self.result[code]['float_ratio']

    def weight(self, code):
        return self.result[code]['weight']

    def includes(self, newindex):
        result = [code for code in self.result if self.result[code]['newindex'] == newindex]
        return result

Méthode

Renvoie le nom de l'indice inclus dans newindex (), le ratio de stock flottant dans float_ratio () et le ratio de composition dans weight (). Si vous spécifiez le nom de l'index dans includes (), les actions constitutives de l'index sont renvoyées.

Code de test

python


myTOPIX = TOPIX()

s = '9984'
print(myTOPIX.newindex(s))
print(myTOPIX.float_ratio(s))
print(myTOPIX.weight(s))
print(myTOPIX.includes('Core30'))

résultat

Core30
0.75000
1.6244%
['9432', '6752', '6981', '4502', '8031', '9437', '8058', '9433', '8802', '6501', '8766', '6902', '7267', '8306', '4503', '4063', '7203', '2914', '7751', '9022', '8604', '9020', '8801', '8411', '8316', '9984', '6954', '3382', '6758', '7201']

Recommended Posts

J'ai fait une classe pour vérifier si c'est un constituant de TOPIX Core30, Large70, Mid400, Small
J'ai créé un script pour vérifier si l'anglais est entré dans la position spécifiée du fichier JSON en Python.
Téléchargez un grand nombre d'images sur Wordpress
Juger s'il s'agit d'un nombre premier [Python]
Comment vérifier s'il est dans le type de dictionnaire (Dictionary, Hash) en utilisant tout ou partie
Utilisation pour appeler une méthode d'une instance avant qu'elle ne soit renvoyée par __new__