マスクは未だ市場に流通していません。
そして近所の薬局に朝6:30に起きて行ってみると既に10人並んでいました・・・・開店3時間前に10人待ち。
新型コロナウイルスの猛威にも関わらず株価が下がりません。
いや日経平均22,000円からは下がりましたが19,000円程度を推移しており、企業の業績を反映しているとは言えません。
怖いのは日銀の株価指数連動型上場投資信託(ETF)買い。
TOPIXが下がれば日銀がETFを買っているようで、もはや過去のシステムトレードでは太刀打ちできません。
matplotlib でロウソク足をプロットするときは mpl_finance を使っていましたが、「mplfinance」に生まれ変わったとの事なので使い方を確認しました。
mplfinance を利用してロウソク足を手軽にプロット
Githubは「mplfinance 」となります。
exampleにjupyter-notebookのサンプルが幾つか存在するので、それを見ると大体理解できます。
カラム名は Open, High, Low, Close, Volume と指定が必要です。
表示するのは簡単でしたが本数が多すぎてロウソク足かどうか判別できないので、表示する範囲を絞っています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import pandas as pd import mplfinance as mpf import seaborn as sns sns.set_style("white") def pre_processing(stock_id, skiprows=2000, skipfooter=2000): df = pd.read_csv("tosho/" + stock_id + ".csv", skiprows=skiprows, skipfooter=skipfooter, engine="python", names=("Date", "Open", "High", "Low", "Close", "Volume")) df["Date"] = pd.to_datetime(df["Date"].str.replace('/', '-')) df.set_index('Date', inplace=True) return df daily = pre_processing("7203") display(daily) mpf.plot(daily[100:200], title='\nToyota(7203)', type='candle', mav=(20,60,100,300), volume=True, style='yahoo', figscale=2.00, savefig='testsave.png') |
plot 関数に DataFrame をそのまま渡すだけで、numpy に変換したり、atplotlib を import しておく必要もありません。
特段と記載方法で難しいところはありませんでした。
移動平均線や、出来高も引数を追加するだけで出力されるのも便利ですね。
mplfinance styles
「style=’yahoo’」とか書くだけで、色々なスタイルに変更できるのは便利そうです。
でも、どれも独特な色だなぁ・・・。
brasil
nightclouds
starsandstripes
Backtesting.pyを使った方法と比較する
以前「Backtesting.py」を使った方法を紹介しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import datetime import pandas as pd from backtesting import Strategy from backtesting import Backtest class myCustomStrategy(Strategy): def init(self): pass def next(self): self.buy if self.data.Close[-1]> self.data.Open[-1] else self.sell() df = pd.read_csv("tosho/7203.csv", skiprows=2000, names=("Datetime", "Open", "High", "Low", "Close", "Volume"), index_col='Datetime') # 欠損値を埋める df = df.interpolate() df.index = pd.to_datetime(df.index) bt = Backtest(df, myCustomStrategy, cash=100000, commission=.001) #bt.run() bt.plot() |
600KB程度のHTMLとして出力され、ブラウザ上で操作が可能です。
まとめ
「mplfinance 」を使って実装が必要なことってあるかなぁ・・・・。
結局、グラフだけ表示されてもマウスでグリグリと動かせないと活用用途が特に無い気がします。
そして「Backtesting.py」を使った方がバックテストもできるし便利な気がします。
GUI検討って時間がかかって好きじゃないな。