ジグザグ

ZigZagをプロットする

Zigzagを使用してジグザグをプロットしてみます。 株価のデータとしてTORM plc (TRMD)のデータを使用しています。

import mplfinance as mpf
import numpy as np
import pandas as pd
import seaborn as sns
from matplotlib.dates import DateFormatter
from zigzag import peak_valley_pivots

# TORM plc (TRMD)
trmd = pd.read_csv("TRMD.csv", index_col="Date")
trmd.index = pd.to_datetime(trmd.index)
trmd.head(5)

OpenHighLowCloseAdj CloseVolume
Date
2023-02-1732.08000232.66999831.76000032.06000125.389601206600
2023-02-2132.49000233.25000031.84000032.11999925.437117240900
2023-02-2232.70999932.75999831.11000131.45000124.906519340400
2023-02-2333.38000134.63999933.33000234.29999927.163548496600
2023-02-2434.88999934.96500034.29000134.68999927.472404338000
def plot_zigzag(ax, X, p):
    """zigzagをプロット
    args:
        ax: axis
        X: pandas.Series
        p: pivots index
    """
    ax.plot(np.arange(len(X))[p != 0], X[p != 0], "g-", linewidth=1)
    return ax


fig, axes = mpf.plot(
    trmd, type="candle", style="starsandstripes", figsize=(12, 4), returnfig=True
)

pivots = peak_valley_pivots(trmd["Close"], 0.03, -0.03)
axes[0] = plot_zigzag(axes[0], trmd["Close"], pivots)

png

コメント欄

※コメントは承認後に表示されます。個人情報は入力しないようにお願いします。