Python Quantitativer Aktien-K-Linien-Chart

Wir könnendas Python-pyecharts-Modulverwenden, um Aktien-K-Linien-Diagramme zu zeichnen.

pyecharts ist eine Python-Datenvisualisierungsbibliothek, die auf ECharts basiert. Sie ermöglicht es Benutzern, Python zu verwenden, um verschiedene Arten von interaktiven Diagrammen und Datenvisualisierungen zu erstellen.

Inhalt des Python pyecharts-Moduls anzeigen:Python pyecharts-Modul。

In pyecharts können Sie das K-Liniendiagramm (Kline) verwenden, um Aktien anzuzeigen. K-Liniendiagramme werden hauptsächlich verwendet, um Finanzdaten anzuzeigen, wie den Eröffnungskurs, Schlusskurs, Höchstkurs und Tiefstkurs einer Aktie.

Stellen Sie zunächst sicher, dass Sie pyecharts installiert haben:

pip install pyecharts

Wir können Daten von Yahoo Finance verwenden, um die Aktienkurse des vergangenen Jahres abzurufen. Wir können die yfinance-Bibliothek verwenden:

pip install yfinance

Verwendung des K-Liniendiagramms

Importieren Sie die relevanten Module:

from pyecharts import options as opts
from pyecharts.charts import Kline

Bereiten Sie die Daten vor:

Kline-Diagrammdaten sind normalerweise ein zweidimensionales Array, das den Eröffnungskurs, Schlusskurs, Höchstkurs und Tiefstkurs enthält,

data = [
    [2320.26, 2320.26, 2287.3, 2362.94],
    [2300, 2291.3, 2288.26, 2308.38],
    # ...
]

Konfigurieren Sie das K-Liniendiagramm:

kline = (
    Kline()
    .add_xaxis(xaxis_data=["2017-10-24", "2017-10-25", "2017-10-26", "2017-10-27"])
    .add_yaxis(series_name="Kline", y_axis=data)
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(is_scale=True),
        yaxis_opts=opts.AxisOpts(is_scale=True),
        title_opts=opts.TitleOpts(title="Kline 示例"),
    )
)

Hier wird add_xaxis verwendet, um die x-Achsendaten festzulegen, add_yaxis wird verwendet, um die Kline-Serie hinzuzufügen, und set_global_opts wird für globale Konfigurationen verwendet, einschließlich des Titels usw.

Das Diagramm rendern:

kline.render("kline_chart.html")

Das K-Liniendiagramm in eine HTML-Datei rendern.

Beispiel

from pyecharts import options as opts
from pyecharts.charts import Kline

# Daten vorbereiten
data = [
    [2320.26, 2320.26, 2287.3, 2362.94],
    [2300, 2291.3, 2288.26, 2308.38],
    [2295.35, 2346.5, 2295.35, 2345.92],
    [2347.22, 2358.98, 2337.35, 2363.8],
    # ... weitere Daten
]

# Kline-Diagramm konfigurieren
kline = (
    Kline()
    .add_xaxis(xaxis_data=["2017-10-24", "2017-10-25", "2017-10-26", "2017-10-27"])
    .add_yaxis(series_name="Kline", y_axis=data)
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(is_scale=True),
        yaxis_opts=opts.AxisOpts(is_scale=True),
        title_opts=opts.TitleOpts(title="Kline-Beispiel"),
    )
)

# Diagramm rendern
kline.render("kline_chart.html")

Erklärung:

  • Wir haben einen Datensatz namensdata, der tägliche Finanzdaten enthält, einschließlich Eröffnungskurs, Schlusskurs, Höchstkurs und Tiefstkurs.
  • Wir haben eineKlineInstanz, verwendetadd_xaxisum die x-Achsen-Daten (in diesem Fall die Datumsangaben) festzulegen, und verwendetadd_yaxisum die Kline-Datenreihe hinzuzufügen.
  • Verwenden Sieset_global_optsum globale Optionen festzulegen, wie x-Achsen- und y-Achsen-Zoom sowie den Diagrammtitel.
  • Schließlich verwenden wirrenderum das Diagramm in eine HTML-Datei zu rendern.

Im aktuellen Verzeichnis wird eine Datei kline_chart.html generiert. Öffnen Sie die Datei, und das Diagramm wird wie folgt angezeigt:

Der folgende Beispielcode zeigt, wie man die Aktiendaten von Kweichow Moutai abruft und ein K-Liniendiagramm erstellt:

Beispiel

import yfinance as yf
from pyecharts import options as opts
from pyecharts.charts import Kline

# Abrufen der Aktiendaten von Kweichow Moutai für die letzten drei Jahre
symbol = '600519.SS'  # 600519.SS ist der Aktiencode für Kweichow Moutai
start_date = '2020-01-01'
end_date = '2022-12-31'

stock_data = yf.download(symbol, start=start_date, end=end_date)

# Das für das K-Liniendiagramm erforderliche Datenformat extrahieren
kline_data = []
for index, row in stock_data.iterrows():
    kline_data.append([row['Open'], row['Close'], row['Low'], row['High']])

# Kline-Diagramm konfigurieren
kline = (
    Kline()
    .add_xaxis(xaxis_data=stock_data.index.strftime('%Y-%m-%d').tolist())
    .add_yaxis(series_name="Kline", y_axis=kline_data)
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(is_scale=True),
        yaxis_opts=opts.AxisOpts(is_scale=True),
        title_opts=opts.TitleOpts(title="Kweichow Moutai Kline-Diagramm-Beispiel"),
        datazoom_opts=[opts.DataZoomOpts()],
        toolbox_opts=opts.ToolboxOpts(
            Merkmal={
                "dataZoom": {"yAxisIndex": "none"},
                "restore": {},
                "saveAsImage": {},
            }
        ),
    )
)

# Diagramm rendern
kline.render("maotai_kline_chart.html")

Eine maotai_kline_chart.html-Datei wird im aktuellen Verzeichnis generiert. Öffnen Sie die Datei, und das Diagramm wird wie folgt angezeigt:

Ein Liniendiagramm zeichnen

Wir können pyecharts auch verwenden, um ein einfaches Liniendiagramm einer Aktie zu zeichnen, am Beispiel von Moutai (600519.SH):

Beispiel

import yfinance as yf
from pyecharts import options as opts
from pyecharts.charts import Line
from datetime import datetime, timedelta

# Moutais Aktiencode festlegen
stock_code = "600519.SS"

# Aktuelles Datum abrufen
end_date = datetime.now().strftime('%Y-%m-%d')

# Das Datum von vor drei Jahren berechnen
start_date = (datetime.now() - timedelta(days=3 * 365)).strftime('%Y-%m-%d')

# yfinance verwenden, um die Aktiendaten abzurufen
df = yf.download(stock_code, start=start_date, end=end_date)

# Die Datumsangaben und Schlusskurse aus den Daten extrahieren
dates = df.index.strftime('%Y-%m-%d').tolist()
closing_prices = df['Close'].tolist()

# Liniendiagramm erstellen
line_chart = Line()
line_chart.add_xaxis(xaxis_data=dates)
line_chart.add_yaxis(series_name="Moutai-Aktienkurs-Trend",
                     y_axis=closing_prices,
                     markline_opts=opts.MarkLineOpts(
                         data=[opts.MarkLineItem(type_="average", name="Durchschnitt")]
                     )
                     )
line_chart.set_global_opts(
    title_opts=opts.TitleOpts(title="Moutai-Aktienkurs-Trenddiagramm (letzte drei Jahre)"),
    xaxis_opts=opts.AxisOpts(type_="category"),
    yaxis_opts=opts.AxisOpts(is_scale=True),
    datazoom_opts=[opts.DataZoomOpts(pos_bottom="-2%")],
)

# Diagramm rendern
line_chart.render("maotai_stock_trend_chart.html")

Eine maotai_stock_trend_chart.html-Datei wird im aktuellen Verzeichnis generiert. Öffnen Sie die Datei, und das Diagramm wird wie folgt angezeigt:

Sie können in Betracht ziehen, einige Diagrammwerkzeuge wie Datenzoom, Datenansicht usw. hinzuzufügen, um die interaktive Erfahrung des Benutzers zu verbessern.

Das Folgende ist der optimierte Code, wobei die Funktionen Datenzoom und Datenansicht hinzugefügt wurden:

Beispiel

import yfinance as yf
from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.commons.utils import JsCode
from datetime import datetime, timedelta

# Moutais Aktiencode festlegen
stock_code = "600519.SS"

# Aktuelles Datum abrufen
end_date = datetime.now().strftime('%Y-%m-%d')

# Das Datum von vor drei Jahren berechnen
start_date = (datetime.now() - timedelta(days=3 * 365)).strftime('%Y-%m-%d')

# yfinance verwenden, um die Aktiendaten abzurufen
df = yf.download(stock_code, start=start_date, end=end_date)

# Die Datumsangaben und Schlusskurse aus den Daten extrahieren
dates = df.index.strftime('%Y-%m-%d').tolist()
closing_prices = df['Close'].tolist()

# Liniendiagramm erstellen
line_chart = Line()
line_chart.add_xaxis(xaxis_data=dates)
line_chart.add_yaxis(series_name="Moutai-Aktienkurs-Trend",
                     y_axis=closing_prices,
                     markline_opts=opts.MarkLineOpts(
                         data=[opts.MarkLineItem(type_="average", name="Durchschnitt")]
                     )
                     )
line_chart.set_global_opts(
    title_opts=opts.TitleOpts(title="Moutai-Aktienkurs-Trenddiagramm (letzte drei Jahre)"),
    xaxis_opts=opts.AxisOpts(type_="category"),
    yaxis_opts=opts.AxisOpts(is_scale=True),
    datazoom_opts=[
        opts.DataZoomOpts(
            pos_bottom="-2%",
            range_start=0,
            range_end=100,
            type_="inside"
        ),
        opts.DataZoomOpts(
            pos_bottom="-2%",
            range_start=0,
            range_end=100,
            type_="slider",
        ),
    ],
    toolbox_opts=opts.ToolboxOpts(
        Merkmal={
            "dataZoom": {"yAxisIndex": "none"},
            "restore": {},
            "saveAsImage": {},
        }
    ),
)

# Diagramm rendern
line_chart.render("maotai_stock_trend_chart2.html")

Im aktuellen Verzeichnis wird eine Datei maotai_stock_trend_chart2.html erzeugt. Öffnen Sie die Datei, und das Diagramm wird wie folgt angezeigt:

Andere Erweiterungen