python自动获取行情数据,并画k线图

本文介绍如何使用Python的yfinance和mpl_finance模块获取并绘制股票K线图,包括5日、10日和30日均线。通过示例展示了从2020-01-01到2020-04-20期间腾讯控股(0700.HK)的K线图,并解释了移动平均线的概念。代码实现了鼠标悬浮时显示交易日关键行情数据的功能,但存在非交易日导致均线不连续的问题。
摘要由CSDN通过智能技术生成

1、概述

本例子为画k线图,同时画出5日,10日,30日均线,且鼠标移动到上面会显示当前交易日,开盘价,收盘价,最高价,最低价。

移动平均线:Moving Average,简称MA,MA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根MA。5日,10日:短线操作参考;30日:中线操作参考;150日,200日:长线参考。

2、选取参数

交易日范围:2020-01-01到2020-04-20;

公司:港股上市的腾讯控股(0700.HK)。也可选A股公司:如平安银行(000001.SZ),具体设置见下面代码;

3、主要用到的模块

yfinance模块:获取行情数据(from yahoo);

mpl_finance模块:计算日k线,均线;

4、实现代码

定义画k线图函数DrawKLine(),主要实现:

获取行情数据,画图及显示样式设置,定义鼠标停留显示当前交易日行情数据事件(闭包函数实现)

import datetime
#import pandas_datareader.data as web  # 是一个远程获取金融数据的Python工具,但是经常提示连接错误,不好用,换成了yfinance
import yfinance as yf
import numpy as np
import mpl_finance as mpf  # mpl_finance替换 import matplotlib.finance as mpf画k线图,网上说mpl_finance已经弃用,这里还能用,暂时用它
import matplotlib.pyplot as plt # 可视化模块


def DrawKLine():
    # 1、获取数据
    print('获取yahoo财经行情数据')
    # 获取指定公司,指定时间内的行情数据
    '''
    df_stockload = web.DataReader("000001.SZ", "yahoo", datetime.datetime(2020, 1, 1), datetime.datetime(2020, 4, 26))  # 如 A股平安银行:000001.SZ 港股腾讯:0700.HK 
    print(df_stockload.Open)
    '''
    # 上面那个获取行情数据的方式,经常连不上报错 "远程主机强迫关闭了一个现有的连接"
    # 连不上可用yfinance,参考:https://zhuanlan.zhihu.com/p/44212853,获取方式如下所示:
    # ['0700.HK', 'BABA', 'BIDU', 'GOOGL', 'FB', 'AMZN'] 选取腾讯,阿里巴
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值