【趣味案例】用Python绘制K线图,一眼看清股市状况

[复制链接]
[投诉]
167 0
online_moderator 爱卡网小编手机认证 实名认证 发表于 2022-6-9 20:20:00 | 只看该作者 |只看大图 |阅读模式 打印 上一主题 下一主题
前段时间美股熔断,据悉这次熔断是自美股有熔断机制30年来第二次,成了头条新闻。对股票一窍不通的我也在此情此景进行了一波学习,股市的变化瞬息万千,有一种图可以用来清晰地反应一段时间内股市的变化情况,它就是K线图。
今天我们用Python基于两种不同的方式来绘制K线图,它们都是Python可视化的好帮手——Matplotlib、Pyecharts。
K线图这种图表源处于日本德川幕府时代,被当时日本米市的商人用来记录米市的行情与价格波动,后因其细腻独到的标画方式而被引入到股市及期货市场。目前,这种图表分析法在我国以至整个东南亚地区均尤为流行。由于用这种方法绘制出来的图表形状颇似一根根蜡烛,加上这些蜡烛有黑白之分,因而也叫阴阳线图表。

【趣味案例】用Python绘制K线图,一眼看清股市状况

K线图由周期内的开盘价、最高价、最低价以及收盘价绘制而成。首先选择该日的最高价和最低价,垂直连线,接着将改日的开盘价和收盘价连成一个长方体。如果该日的开盘价高于收盘价,以绿色来表示(跌了),反之以红色来表示(涨了)。这便是K线图绘制的原理,而Matplotlib、Pyecharts都已经给我们写好了绘制K线图的方法,我们仅需调用这些方法。
生成数据这边我为了方便绘图根据这些数据之间简单的逻辑关系,随机生成了一个月的股市数据,数据顺序具体为日期,开盘价,最高价,最低价,收盘价。
start="2020-1-1"
data=[]
for i in range(31):   
    random_data=[random.randint(2000,2500) for _ in range(4)]
    sorted_data=sorted(random_data)
    day=date2num(datetime.datetime.strptime(start,'%Y-%m-%d'))
    print(day)
    if i==0:
        one=(day,sorted_data[1],sorted_data[3],sorted_data[0],sorted_data[2]) if random.random()>0.5 else (day,sorted_data[2],sorted_data[3],sorted_data[0],sorted_data[1])      
    else:
        one=(day+i,sorted_data[1],sorted_data[3],sorted_data[0],sorted_data[2]) if random.random()>0.5 else (day+i,sorted_data[2],sorted_data[3],sorted_data[0],sorted_data[1])
    data.append(one)Matplotlib绘制

【趣味案例】用Python绘制K线图,一眼看清股市状况

from matplotlib import pyplot as plt
from mpl_finance import candlestick_ohlc
fig,ax=plt.subplots(facecolor="white",figsize=(12,8))
fig.subplots_adjust(bottom=0.1)
ax.xaxis_date()
plt.xticks(rotation=30)
plt.title('K-line')
plt.xlabel('time')
plt.ylabel('price')
candlestick_ohlc(ax,data,width=0.5,colorup='r',colordown='green')
plt.grid(True)Pyecharts绘制

【趣味案例】用Python绘制K线图,一眼看清股市状况

c=(
        Kline()
        .add_xaxis(["2017/7/{}".format(i + 1) for i in range(31)])
        .add_yaxis("kline",
                   data,
                   itemstyle_opts=opts.ItemStyleOpts(
                   color="#ec0000",
                   color0="#00da3c",
                   border_color="#8A0000",
                   border_color0="#008F28",
            )
        )
        .set_global_opts(
            xaxis_opts=opts.AxisOpts(is_scale=True),
            yaxis_opts=opts.AxisOpts(
                is_scale=True,
                splitarea_opts=opts.SplitAreaOpts(
                    is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
                ),
            ),
            title_opts=opts.TitleOpts(title="K-line"),
        )
)
c.render("k-line.html")另外,我们还可以设置伸缩坐标轴,便于放大缩小观察k线图。

【趣味案例】用Python绘制K线图,一眼看清股市状况

版权声明:本站部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们将及时更正、删除,谢谢!


weinxin
爱卡网站长——亚熙哥
若开通会员无法使用
请扫码联系爱卡网站长
本平台不放贷、也不接网贷代做!
上一篇:外汇交易k线图形态实例,外汇K线经典反转形态
下一篇:Tushare财经数据接口(四)案例
楼主热帖
分享到:  QQ好友和群QQ好友和群
收藏
收藏0
支持
支持0
反对
反对0
122329my40v0m19mm281y0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 qq_login wechat_login1

本版积分规则

avatar

0关注

26粉丝

1091904帖子

发布主题
精选帖子
热帖排行
推荐
162349x8b848x8bpq4qaaz
客服咨询

155-5555-5876

服务时间 9:00-24:00

爱卡网APP下载

app

知识改变命运,技术改变未来!

  • 客服Q Q:70079566     微信:79710
  • 工作时间:周一到周日     9:00-22:00
  • 加入爱卡网VIP会员,菜鸟也能变大神!
15555555876

关注我们

  • app
  • app
  • app
本站唯一官网:www.7177.cn Copyright    2010-2021  爱卡网  Powered by Discuz!  技术支持:亚熙工作室   浙ICP备17046104号-1