tushare+mplfinance+pandas 画K线图

该代码示例展示了如何在Python中利用mplfinance库和tushare数据接口获取并绘制股票K线图。首先导入所需库,然后定义一个get_info函数从tushare获取指定股票在特定日期范围内的数据,再使用drawk函数将数据转化为时间戳并绘制K线图。用户需提供自己的tushareAPIkey以及股票代码、类别和日期范围。
摘要由CSDN通过智能技术生成

人狠话不多,直接上代码+注释

tips:

要用mplfinance库,不能用 mpl_finance(会提示使用新版)

tushare官网Tushare数据

# 导入tushare
import tushare as ts
import mplfinance as mpf  # 导入mpf
import pandas as pd
from pandas import Timestamp   # 时间戳转化函数

offset = 1  # 偏置
limit = 1000  # 限制


def get_info(code, ex_name, start_date, end_date, api_string):
    pro = ts.pro_api(api_string)
    code = str(code)
    ts_code = code + "." + ex_name
    '''tushare 给的接口代码'''
    df = pro.daily(**{
        "ts_code": ts_code,
        "trade_date": "",
        "start_date": start_date,
        "end_date": end_date,
        "offset": offset,
        "limit": limit
    }, fields=[
        "ts_code",
        "trade_date",
        "open",
        "high",
        "low",
        "close",
        "pre_close",
        "change",
        "pct_chg",
        "vol",
        "amount"
    ])
    return df


def drawk(data, style='up-r-down-g', ):  # 画k线图 data 为从tushare得到的pandasframe对象
    pd1 = pd.DataFrame(data)
    pd1 = pd1.iloc[::-1]   # 翻转date顺序,使时间顺序排列
    # print(pd1['Date'])
    # print(pd1)
    pd1['Date'] = pd1['trade_date'].apply(Timestamp)  # 把tradedate转化为时间戳
    pd1.set_index('Date', inplace=True)  # 把时间戳设置为索引
    # pd1=pd.DatetimeIndex()  #另一种转换时间戳索引的方法,不会用
    # print(pd1)

    # k线图绘制
    if style == 'up-r-down-g':  # 设置红涨还是绿涨
        my_color = mpf.make_marketcolors(up='r', down='g')
    else:
        my_color = mpf.make_marketcolors(up='g', down='r')
    my_style = mpf.make_mpf_style(marketcolors=my_color)  # 设置k线 style
    mpf.plot(pd1, type="candle", style=my_style, mav=(5, 10))  # 画图


if __name__ == '__main__':
    api_key = 'your key'
    pd_data = get_info('000001', 'SZ', '20221001', '20230220', api_key)  # 股票代码 、股票类别简称(SZ为深证) 、开始日期、终止日期
    drawk(pd_data)  # 画图
    pass

1. 这里需要把api_key换成自己的api

2. 修改get_info的传入值    【 股票代码(只含数字) 、股票类别简称(SZ为深圳,以此类推) 、开始日期(不加横杠)、终止日期】

3. 运行程序

4. 浅浅地点个赞qwq

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值