统计某日A股市场,不同振幅分布。按照1%振幅进行统计
import tushare as ts
import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts
# 初始化pro接口
pro = ts.pro_api('d437******72')
tradedate = "20220315"
# 拉取数据
df = pro.daily(**{
"ts_code": "",
"trade_date": tradedate,
"start_date": "",
"end_date": "",
"offset": "",
"limit": ""
}, fields=[
"ts_code",
"trade_date",
"open",
"high",
"low",
"close",
"pre_close",
"change",
"pct_chg",
"vol",
"amount"
])
df.loc[:, "updown_pct_chg"] = (df["high"] - df["low"]) / df["pre_close"] * 100
# 按统计振幅0-30%
bins = [i for i in range(0, 30)]
cuts = pd.cut(df['updown_pct_chg'], bins=bins)
share_amount = df.groupby(cuts)['updown_pct_chg'].count().tolist()
c = (
Bar()
.add_xaxis(bins)
.add_yaxis("", share_amount)
.set_global_opts(
xaxis_opts=opts.AxisOpts(name='振幅( %)'),
yaxis_opts=opts.AxisOpts(name='股票数'),
title_opts=opts.TitleOpts(title=tradedate + 'A股振幅分布', pos_left='middle')
)
.render("振幅分布.html")
)
生成柱状图: