[PYTHON] Ich habe eine Klasse erstellt, um zu überprüfen, ob es sich um einen Bestandteil von TOPIX Core30, Large70, Mid400, Small handelt

Einführung

Ist diese Marke groß? Mittlere Größe? Klein? Wenn Sie sich darüber Sorgen machen, ist es hilfreich, Informationen darüber zu haben, ob es sich um einen Bestandteil des Index handelt oder nicht. Wenn Sie also einen beliebigen Aktiencode angeben, haben wir eine Klasse erstellt, die das Streubesitzverhältnis und das Zusammensetzungsgewicht sowie den enthaltenen TOPIX-Größenindex zurückgibt. Da es schwierig war, die Originaldaten online zu stellen, erfolgt die Aktualisierung manuell. Tsumami.

Was vorzubereiten?

Speichern Sie das folgende PDF im TXT-Format am selben Speicherort wie die Klasse. (Sie können es mit Acrobat Reader tun)

TOPIX (TSE Stock Index) | Japan Exchange Group Liste des Streubesitzverhältnisses und des Zusammensetzungsgewichts nach Bestandteilen

Code

Nichts, nur den Text lesen und analysieren.

TOPIX


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


class TOPIX:
    """
Wie benutzt man

    1.Vorbereitung
    http://www.jpx.co.jp/markets/indices/topix/tvdivq00000030ne-att/list-j.pdf
DL und Liste am selben Speicherort wie das Skript-j.Als txt speichern.(Speichern Sie Acrobat Reader txt)

das ist alles
    """
    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

Methode

Gibt den in newindex () enthaltenen Indexnamen, float_ratio () die Floating Stock Ratio und weight () die Composition Ratio zurück. Wenn Sie den Indexnamen in include () angeben, werden die Bestandteile des Index zurückgegeben.

Testcode

python


myTOPIX = TOPIX()

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

Ergebnis

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

Ich habe eine Klasse erstellt, um zu überprüfen, ob es sich um einen Bestandteil von TOPIX Core30, Large70, Mid400, Small handelt
Ich habe ein Skript erstellt, um zu überprüfen, ob an der angegebenen Position der JSON-Datei in Python Englisch eingegeben wird.
Laden Sie eine große Anzahl von Bildern in Wordpress hoch
Beurteilen Sie, ob es sich um eine Primzahl handelt [Python]
So überprüfen Sie, ob es sich um einen Wörterbuch-Typ (Wörterbuch, Hash) handelt, indem Sie einen oder alle verwenden
Verwendung zum Aufrufen einer Methode einer Instanz, bevor sie von __new__ zurückgegeben wird