前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >趋势(五)利用python绘制烛台图

趋势(五)利用python绘制烛台图

作者头像
HsuHeinrich
发布2024-11-26 09:12:38
发布2024-11-26 09:12:38
10700
代码可运行
举报
文章被收录于专栏:HsuHeinrichHsuHeinrich
运行总次数:0
代码可运行

趋势(五)利用python绘制烛台图

烛台图(Candlestick)简介

烛台图也叫K线图,通常用作交易工具,用来显示和分析证券、衍生工具、外汇货币、股票、债券等商品随着时间的价格变动。

绘制基本烛台图

由于不是专业的金融从业者,这里只是简单的进行分享,更多用法可参考baostock 数据平台[1]mplfinance文档[2]以及Candlestick charts in Python - Plotly[3]

获取股票数据

代码语言:javascript
代码运行次数:0
复制
# 获取股票数据
import baostock as bs
import pandas as pd

lg = bs.login()

rs = bs.query_history_k_data_plus("sh.600000",
    "date,open,high,low,close",
    start_date='2022-01-01', end_date='2022-03-31',
    frequency="d", adjustflag="2")

data_list = []
while (rs.error_code == '0') & rs.next():
    data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)

# 将date转为索引
result['date'] = pd.to_datetime(result['date'])
result.set_index('date', inplace=True)

# 更换字段类型
for col in ['open', 'high', 'low', 'close']:
    result[col] = result[col].astype(float)

bs.logout()

基于mplfinance

代码语言:javascript
代码运行次数:0
复制
import mplfinance as mpf

moving_averages = [5,10,15] # 需要绘制的均线

mpf.plot(result,
         type='candle',
         mav=moving_averages)

基于plotly

代码语言:javascript
代码运行次数:0
复制
import plotly.graph_objects as go

result['moving3'] = result['close'].rolling(3).mean()
result['moving8'] = result['close'].rolling(8).mean()

fig = go.Figure(data=[go.Candlestick(
                x = result.index, # 日期索引
                open = result['open'],
                high = result['high'],
                low = result['low'],
                close = result['close'],
    
                # bar颜色
                increasing_line_color = 'purple',
                decreasing_line_color = 'orange',
                showlegend=False
                ),
                      
                      # 均线
                      go.Scatter(x=result['moving3'].index,
                                     y=result['moving3'],
                                     line=dict(color='gray',
                                               width=1,
                                               shape='spline'), # smooth the line
                                     name='MA3'),
                      
                      go.Scatter(x=result['moving8'].index,
                                 y=result['moving8'],
                                 line=dict(color='black',
                                           width=1,
                                           shape='spline'), # smooth the line
                                 name='MA8')
         ])

# 屏蔽默认滑块
fig.update_layout(xaxis_rangeslider_visible=False,
                 autosize=False,
                 width=700,
                 height=500,
                 legend=dict(
                        x=0.82, 
                        y=0.98,
                        font=dict(size=12)
    ))

总结

以上基于baostock获取股票数据,并利用mplfinance和plotly快速绘制烛台图。

共勉~

参考资料

[1] baostock 数据平台: http://www.baostock.com/

[2] mplfinance文档: https://pypi.org/project/mplfinance/

[3] Candlestick charts in Python - Plotly: https://plotly.com/python/candlestick-charts/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HsuHeinrich 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 趋势(五)利用python绘制烛台图
    • 烛台图(Candlestick)简介
    • 绘制基本烛台图
    • 总结
      • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档