【Python】Pandas で取得した Ticker で移動平均線を描画する
おはようございます。
今回はまた一つ戻って
さくっと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 を使ってブラウザ上にチャートが出せればと思ってます。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません