【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 を使ってブラウザ上にチャートが出せればと思ってます。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません