【Python】Pandas で取得した Ticker で移動平均線を描画する

2018年4月25日Python,開発

おはようございます。

今回はまた一つ戻って
さくっとTicker の情報から移動平均線のチャートを表示したいと思います。

プログラムは、下記の記事のものを流用します。

【Python】Pandas で取得した Ticker を使ってチャートを描画する

スポンサーリンク

プログラムの修正

BfTool.py

class GetTicker(RequestHandler):
    """
    ティッカー情報を取得
    """

    def initialize(self):
        logging.info("GetTicker [initialize]")

    def post(self):
        logging.info("GetTicker [post]")

        # ティッカー情報の取得
        mysql = MySQLUtil()
        df = mysql.convert_table_to_df()

        # 最終取引価格を浮動小数点に変換
        df['LTP'] = df['LTP'].astype("float")

        # 取引日時の型を変換
        df['TIME_STAMP'] = pd.to_datetime(df['TIME_STAMP'])

        # 取引日時をインデックスに設定
        df.set_index('TIME_STAMP', inplace=True)

        """
        1分毎のデータを抽出
        freq="H" 時間
        freq="T" or "min" 分
        freq="S" 秒
        freq="5T" 5分
        """
        span = pd.date_range('2018-04-17 00:00:00', periods=5000, freq="T")
        df = df[df.index.isin(span)]

        # 同じ日時のデータがある場合は、そのうちの最大値をとる
        grouped = df.groupby("TIME_STAMP")
        df = grouped.max()

        # 移動平均
        df["MA5"] = df["LTP"].rolling(window=5).mean()
        df["MA10"] = df["LTP"].rolling(window=10).mean()
        df["MA15"] = df["LTP"].rolling(window=15).mean()
        df["MA30"] = df["LTP"].rolling(window=30).mean()
        df["MA60"] = df["LTP"].rolling(window=60).mean()
        df["MA75"] = df["LTP"].rolling(window=75).mean()

        # プロットの設定
        df[["LTP", "MA5", "MA30"]].plot(legend=True, figsize=(15, 6))

        plt.xticks(df.index)
        plt.xlabel("日時 TIME_STAMP")
        plt.ylabel("最終取引価格 LTP")
        plt.show()

        self.write(df.to_json(orient="records"))

移動平均用の列を追加し、表示したい列を指定してプロットするように修正したのみです。

まとめ

とりあえずそれっぽい線は描画されたのですが、
これでいいのだろうか。

FXについてもっと勉強しないと。。
うー色々と時間が無さすぎる笑

次回の予定は Techan.js を使ってブラウザ上にチャートが出せればと思ってます。

ではでは。

スポンサーリンク


関連するコンテンツ

2018年4月25日Python,開発Bitflyer,Python,プログラミング

Posted by doradora