分享

python最新版mplfinance中文乱码解决方

 禁忌石 2022-03-14

Posted on 2021-11-21 19:38  心默默言  阅读(112)  评论(0)  编辑  收藏  举报

https://blog.csdn.net/Wilburzzz/article/details/109667926

复制代码

# -*- coding: utf-8 -*-

# @Time    : 2021/11/7 20:40

# @Author  : zhaozhuang

# 导入 efinance 如果没有安装则需要通过执行命令: pip install efinance 来安装

import efinance as ef

import mplfinance as mpf

import pandas as pd

# import matplotlib.pyplot as plt

pd.set_option('display.max_rows', 50000)

pd.set_option('display.max_columns', 50000)

pd.set_option('display.width', 2000)

# plt.rcParams['font.sans-serif'] = ['SimHei']

# plt.rcParams['axes.unicode_minus'] = False

# 解决mplfinance绘制输出中文乱码

# s = mpf.make_mpf_style(rc={'font.family': 'SimHei'})

def get_kchar(df: pd.DataFrame, code: str, name: str):

    date_index = df['日期']

    date_index = pd.to_datetime(date_index)

    data = df[['开盘', '最高', '最低', '收盘', '成交量']]

    data = data.rename(columns={'开盘': 'Open', '收盘': 'Close', '最高': 'High', '最低': 'Low', '成交量': 'Volume'})

    data.index = date_index

    my_color = mpf.make_marketcolors(up='red', down='green')

    my_style = mpf.make_mpf_style(marketcolors=my_color, rc={'font.family': 'SimHei'})

    add_plot = [

        mpf.make_addplot(turnover_rate, scatter=True, marker='^', color='red'),

        mpf.make_addplot(turnover_rate, color='red'),

        mpf.make_addplot(ma_turnover_rate, color='blue'),

        ]

    mpf.plot(data, type='candle', style=my_style, figscale=2, addplot=add_plot, mav=(5, 20, 30), ylabel='price',

             volume=True,

             title=f'\n\n\n {code} {name}  K_line')

    # mpf.plot(data, type='candle', style=my_style, figscale=2, addplot=add_plot, mav=(5, 20, 30), volume=True,

    #          title=f'\n\n\n {code} {name}  K_line')

paras = {

    'stock_code': '002626',

    'begin': '20210130',

    'end': '20251105',

    'freq': 101

    }

stock_code = paras['stock_code']

beg = paras['begin']

end = paras['end']

freq = paras['freq']

# 获取最新一个交易日的分钟级别股票行情数据

df = ef.stock.get_quote_history(stock_codes=stock_code, beg=beg, end=end, klt=freq)

# 将数据存储到 csv 文件中

# df.to_excel(f'{stock_code}_{freq}.xlsx', encoding='utf-8-sig', index=None)

print(f'股票: {stock_code} 的行情数据已存储到文件: {stock_code}_{freq}.xlsx 中!')

# 获取一支股票的量比

name = df['股票名称'].values[0]

vol_ma = df['成交量'].rolling(window=5).mean().values

vol_raito = df['成交量'].values / df['成交量'].rolling(window=5).mean().values

turnover_rate = df['换手率'].values

ma_turnover_rate = df['换手率'].rolling(window=21).mean().values

# print(vol_ma)

# print(vol_raito)

get_kchar(df, paras['stock_code'], name)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多