今天来说说mplfinance。这是matplotlib团队为金融量化提供的一个可视化库。
你可能会好奇,为何我们要看看K线图,均线或者其他技术指标。
在AI和金融量化领域,普遍外界有一个误区:要么神化,要么妖魔化。本质上大家还是把这两者看成一个黑盒。
其实大可不必,不必神化,不要指望机器学习或者ChatGPT能直接为你决策,把所以投资分析的事情都帮你办了,不可能。现代机器学习就是高阶、非线性统计模型,可作为大脑的延伸与辅助,与汽车、飞机延伸我们的走路能力一样。但思路和逻辑,还是需要我们给的,这就需要我们清楚地知道,机器可能帮忙我们做什么?因此,可视化非常重要。
pip install mplfinance
今天20日动量最强的ETF是豆粕(159985.SZ):我们就用它的数据来进行分析。
from engine.datafeed.dataloader import Hdf5Dataloader import mplfinance as mpf import matplotlib.pyplot as plt # 显示中文 plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示负数 plt.rcParams['axes.unicode_minus'] = False symbols = ['159985.SZ'] loader = Hdf5Dataloader(symbols, start_date="20230101") fields=['sma(close,5)','sma(close,10)','sma(close,20)','sma(close,60)'] fields.append('roc(close,20)') fields.append('ta("MACD",close,get_result=1)') fields.append('ta("MACD",close,get_result=2)') names = ['MA5',"MA10","MA20","MA60"] names.append('roc_20') names.append('macd-m') names.append('macd-s') df = loader.load(fields=fields, names=names) print(df) my_color = mpf.make_marketcolors(up='r', down='g', edge='inherit', wick='inherit', volume='inherit') # 设置图表的背景色 my_style = mpf.make_mpf_style(marketcolors=my_color, figcolor='(0.82, 0.83, 0.85)', gridcolor='(0.82, 0.83, 0.85)',rc={'font.family': 'SimHei'}) add_plot = [ mpf.make_addplot(df["roc_20"], panel=1, color="#aa2116", width=0.5), mpf.make_addplot( df["macd-s"], panel=2, color="#aa2116", secondary_y="auto"), mpf.make_addplot( df["macd-m"], panel=3, color="#aa2116", secondary_y="auto" ) ] mpf.plot(df, title="159985.SZ(豆柏ETF)",type="candle", mav=(5, 10, 20), volume=True, style=my_style, addplot=add_plot)
默认的颜色不符合A股的表达习惯,所以,我们改成上涨为红色,下跌为绿色。且画出周,月,季度均线,可以看出“均线呈现”多头排列。下方是显示的volume成交量。
代码在这个位置:
这块功能在我们的量化平台里,是回测之后但单支证券的交易记录,比如何时买入、卖出,看这个交易在图上的交易,可以看出真实的交易逻辑。
回测系统里添加单个标的的订单记录:
symbol_orders_df = pd.DataFrame.from_records(self.portfolio.symbol_orders[self.universe[0]], columns=Order._fields, index='id') print(symbol_orders_df)
代码已经更新至星球。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/104051
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!