前の記事で約定履歴が手に入ったので、OHLCを求めてローソク図を描画してみる。
from datetime import datetime, timedelta import pandas as pd import matplotlib.pyplot as plt import matplotlib.finance as mpf from matplotlib import ticker import matplotlib.dates as mdates import psycopg2 import sqlalchemy import sqlalchemy.orm import sqlalchemy.ext.declarative POSTGRES_HOST='HOST' POSTGRES_PORT=5432 POSTGRES_USER='user' POSTGRES_PASSWORD='password' connection_config = { 'host': POSTGRES_HOST, 'port': '5432', 'database': POSTGRES_USER, 'user': POSTGRES_USER, 'password': POSTGRES_PASSWORD, } connection = psycopg2.connect(**connection_config) end = datetime.utcnow() # ここはテキトーに period = 48 * timedelta(minutes=60) # 1時間足で48本 start = end - period executions = pd.read_sql(sql=f"SELECT * FROM executions WHERE market='bitbank_btc_jpy' AND '{start}' < timestamp AND timestamp <= '{end}' ORDER BY timestamp ASC;", con=connection) df = executions[['timestamp', 'price']].set_index('timestamp') ohlc = df.resample('60T').ohlc(); # ここは60T = 60分 ohlc['price']['open'].head() fig, ax = plt.subplots() mpf.candlestick2_ohlc(ax, opens=ohlc['price']['open'], closes=ohlc['price']['close'], lows=ohlc['price']['low'], highs=ohlc['price']['high'], width=0.6, colorup='r', colordown='b')
こんな感じ。
独学プログラマー Python言語の基本から仕事のやり方まで
- 作者: コーリー・アルソフ,清水川貴之監訳,清水川貴之,新木雅也
- 出版社/メーカー: 日経BP社
- 発売日: 2018/02/24
- メディア: 単行本
- この商品を含むブログを見る
前処理大全[データ分析のためのSQL/R/Python実践テクニック]
- 作者: 本橋智光
- 出版社/メーカー: 技術評論社
- 発売日: 2018/04/13
- メディア: 大型本
- この商品を含むブログを見る
- 作者: 馬場真哉
- 出版社/メーカー: 翔泳社
- 発売日: 2018/04/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る