MCPcopy
hub / github.com/tkfy920/qstock / kline

Function kline

plot/chart_plot.py:65–177  ·  view source on GitHub ↗
(df, mas=5, mal=20, notebook=True,title="股票K线图")

Source from the content-addressed store, hash-verified

63
64# 股票K线图
65def kline(df, mas=5, mal=20, notebook=True,title="股票K线图"):
66 # 计算技术指标
67 data = df.dropna().copy(deep=True)
68 data['mas'] = data.close.rolling(mas).mean()
69 data['mal'] = data.close.rolling(mal).mean()
70 data['macd'], data['macdsignal'], data['macdhist'] = MACD(data.close)
71 attr = list(data.index.strftime('%Y%m%d'))
72 try:
73 vol = data["volume"].tolist()
74 except:
75 vol = data['vol'].tolist()
76 kline = (Kline() # K线图
77 .add_xaxis(xaxis_data=attr)
78 .add_yaxis(series_name="klines",
79 y_axis=data[["open", "close", "low", "high"]].values.tolist(),
80 itemstyle_opts=opts.ItemStyleOpts(
81 color="red", color0="green", # 设置K线两种颜色
82 border_color="red", border_color0="green", ),
83 markpoint_opts=opts.MarkPointOpts(data=[ # 添加标记符
84 opts.MarkPointItem(type_='max', name='最大值'),
85 opts.MarkPointItem(type_='min', name='最小值'), ]),
86 markline_opts=opts.MarkLineOpts( # 添加辅助线
87 data=[opts.MarkLineItem(type_="average", value_dim="close")], ))
88 .set_global_opts(
89 legend_opts=opts.LegendOpts(is_show=True, pos_top=1, pos_left='center'),
90 datazoom_opts=[ # 控制三个组合图
91 opts.DataZoomOpts(is_show=False, type_="inside", xaxis_index=[0, 0], range_end=100, ),
92 opts.DataZoomOpts(is_show=False, xaxis_index=[0, 1], range_end=100),
93 opts.DataZoomOpts(is_show=True, xaxis_index=[0, 2], pos_top="95%", range_end=100, ), ],
94 title_opts=opts.TitleOpts(title=title, pos_left="0"),
95 yaxis_opts=opts.AxisOpts(is_scale=True,
96 splitarea_opts=opts.SplitAreaOpts( # 分隔区域配置
97 is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)), )))
98 # 成交量柱状图
99 bar = (Bar()
100 .add_xaxis(xaxis_data=attr)
101 .add_yaxis(series_name="volume",
102 y_axis=vol,
103 label_opts=opts.LabelOpts(is_show=False),
104 itemstyle_opts=opts.ItemStyleOpts(color=JsCode("""
105 function(params) {
106 var colorList;
107 if (barData[params.dataIndex][1] > barData[params.dataIndex][0]) {
108 colorList = 'red';} else {
109 colorList = 'green';}
110 return colorList;}""")), )
111 .set_global_opts(
112 legend_opts=opts.LegendOpts(is_show=False), ))
113 # 添加均线
114 line = (Line()
115 .add_xaxis(xaxis_data=attr)
116 .add_yaxis(series_name=f"{mas}日均线", y_axis=data["mas"].tolist(),
117 label_opts=opts.LabelOpts(is_show=False),
118 is_symbol_show=False,
119 linestyle_opts=opts.LineStyleOpts(width=1.5),
120 itemstyle_opts=opts.ItemStyleOpts(color="black"), )
121
122 .add_yaxis(series_name=f"{mal}日均线", y_axis=data["mal"].tolist(),

Callers 1

HA_klineFunction · 0.85

Calls 2

MACDFunction · 0.85
copyMethod · 0.45

Tested by

no test coverage detected