Kanichart
python-highcharts
のラッパーpandas
のDataFrame
やSeries
からお手軽に使える
Jupyterからローソク足チャートを使いたいと思った時、色々試しましたが一番良かったのが Highcharts
でした。それをできるだけ自分が使いやすいようにラッパーを書いたのがkanichartです。
Highcharts の良いところ
- JSなのでインタラクティブに操作可能
- マウスオーバー時に数値を表示など細かいところが標準で充実
- x軸を共有した際の動作が優秀
- 時系列解析には必須
python-highchartsの使いにくいところ
Pandas との連携がなく、データをJSの形式にユーザ側で書き換えてから使わなければならない点がかなり面倒。他にも標準の状態でのhighchartsを使うことになるので、ローソク足が勝手に連結されたりと望まない挙動も多い。その辺りをkanichartでは解決している。
使い方
add_chart
メソッドが基本となる。
StockChart.add_chart(self, chart_type, symbol, data, is_new_chart=True)
chart_type
以下の3つから選ぶ
- candlestick
- ローソク足チャート
- line
- ラインチャート
- scatter
- プロット
symbol
データの名前
data
Line chart の場合
- pandas の Series
- list データ
- 2次元配列(timestamp, value)
Candlestick chart の場合
- pandas の DataFrame
- ‘Open’, ‘High’, ‘Low’, ‘Close’ のカラムを持つこと
- list データ
- [[timestamp, o, h, l, c], ….] の形であること
is_new_chart
新しいチャートに表示するか。Falseの場合は同一一つ前に表示したチャート上に表示させる。
プログラム例
from kanichart._chart import StockChart
stock = StockChart()
stock.add_chart('candlestick', 'APPLE', data)
stock.add_chart('line', 'APPLE1', data1, False)
stock.add_chart('line', 'APPLE2', data2, False)
stock.add_chart('candlestick', 'APPLE', data)
stock.add_chart('scatter', 'APPLE1', data2, False)
stock.plot()
コメント
質問よろしいでしょうか?
例えばボリンジャーバンドとRSIとストキャスティクス3つの条件を加えたarrowを出す方法についてご教示いただきたいのですが、よろしいでしょうか?