当前位置: 首页 > ai >正文

python:如何获取股票 周K线数据、月K线数据

依赖库:
pip install tushare
pip install pandas
pip install matplotlib
pip install mplfinance

参阅接口文档:周线行情 , 月线行情

为了获取股票 周线数据 weekly 、月线数据 monthly ,编写 get_week_month.py  如下

# coding: utf-8
""" 获取股票 周K线数据、月K线数据 """
import os
import sys
import pandas as pd
import tushare as tsif len(sys.argv) ==2:code = sys.argv[1]
else:print('usage: python get_week_month.py stockcode ')sys.exit(1)if len(code) !=6:print('stock code length: 6')sys.exit(2)if code < '600000':s_code = code +'.SZ'
else:s_code = code +'.SH'# 初始化pro接口
pro = ts.pro_api('your token')# 获取周K线数据
df = pro.weekly(ts_code=s_code, start_date='20190101')if df.empty :print(" df is empty ")sys.exit(2)df = df.sort_values(by='trade_date')
#df = df.reset_index(drop=True)
# 为了与旧版的 tushare 保持一致性,修改列名
df.rename(columns={'trade_date':'date','vol':'volume'}, inplace=True)path = './data/'
file1 = 'w'+code+'.csv'
df.to_csv(path + file1, index=False)
print(file1)# 获取月K线数据
df = pro.monthly(ts_code=s_code, start_date='20190101')if df.empty :print(" df is empty ")sys.exit(2)df = df.sort_values(by='trade_date')
#df = df.reset_index(drop=True)
# 为了与旧版的 tushare 保持一致性,修改列名
df.rename(columns={'trade_date':'date','vol':'volume'}, inplace=True)path = './data/'
file2 = 'm'+code+'.csv'
df.to_csv(path + file2, index=False)
print(file2)

运行  python get_week_month.py 601225

为了绘制股票周K线图,编写 mpf_week.py  如下

# coding: utf-8
""" 绘制股票周K线图 """
import os, sys
import datetime
import matplotlib.pyplot as plt
import mplfinance as mpf
import pandas as pd
#import tushare as tsif len(sys.argv) ==2:scode = sys.argv[1]
else:print('usage: python mpf_week.py scode ')sys.exit(1)if len(scode) !=6:print('stock code length: 6')sys.exit(2)path = './data/'
f1 = 'w'+ scode +'.csv'
df = pd.read_csv(path+f1, parse_dates=True, index_col=1 )
#print(df.head())
df = df[ df.index >'20230101']
print(df.tail())
if len(df) <10:print(" len(df) <10 ")sys.exit(2)#df.index = pd.to_datetime(df.date)
#print(mpf.available_styles())
title = scode+' week'
mpf.plot(df, style='charles', mav=(5,10,20,30), volume=True, title=title)
# 线图
#mpf.plot(df, type='line', mav=(5,10,20), title=title)
# OHLC图
#mpf.plot(df, type='ohlc', mav=(5,10,20), title=title)
# 烛台图, K线图
mpf.plot(df, type='candle', mav=(5,10,25,50), volume=True, title=title)
# 砖形图( Renko chart)是一种只使用价格变动构建的图表
#mpf.plot(df, type='renko', mav=(5,10,20), title=title)
# 点数图,简称 P&F图,它在不考虑时间流逝的情况下绘制资产的价格走势
#mpf.plot(df, type='pnf',pnf_params=dict(box_size=0.03),style='starsandstripes', title=title)

运行 python mpf_week.py 601225 

为了绘制股票月K线图,编写 mpf_month.py  如下

# coding: utf-8
""" 绘制股票月K线图 """
import os, sys
import datetime
import matplotlib.pyplot as plt
import mplfinance as mpf
import pandas as pd
#import tushare as tsif len(sys.argv) ==2:scode = sys.argv[1]
else:print('usage: python mpf_month.py scode ')sys.exit(1)if len(scode) !=6:print('stock code length: 6')sys.exit(2)path = './data/'
f1 = 'm'+ scode +'.csv'
df = pd.read_csv(path+f1, parse_dates=True, index_col=1 )
#print(df.head())
df = df[ df.index >'20190101']
print(df.tail())
if len(df) <10:print(" len(df) <10 ")sys.exit(2)#df.index = pd.to_datetime(df.date)
#print(mpf.available_styles())
title = scode+' month'
mpf.plot(df, style='charles', mav=(5,10,20,30), volume=True, title=title)
# 线图
#mpf.plot(df, type='line', mav=(5,10,20), title=title)
# OHLC图
#mpf.plot(df, type='ohlc', mav=(5,10,20), title=title)
# 烛台图, K线图
mpf.plot(df, type='candle', mav=(6,12,24,36), volume=True, title=title)
# 砖形图( Renko chart)是一种只使用价格变动构建的图表
#mpf.plot(df, type='renko', mav=(5,10,20), title=title)
# 点数图,简称 P&F图,它在不考虑时间流逝的情况下绘制资产的价格走势
#mpf.plot(df, type='pnf',pnf_params=dict(box_size=0.03),style='starsandstripes', title=title)

运行 python mpf_month.py 601225 

http://www.xdnf.cn/news/3640.html

相关文章:

  • Go语言入门基础:协程
  • 【信息系统项目管理师-论文真题】2012上半年论文详解(包括解题思路和写作要点)
  • 装饰器@wraps(func)详解
  • 伊甸园之东: 农业革命与暴力的复杂性
  • Learning vtkjs之Cutter
  • 有向图强连通分量好题分享(一)
  • 【深度学习的灵魂】图片布局生成模型LayoutPrompt(2)·布局序列化模块
  • 如何通过文理工三类AI助理赋能HI,从而,颠覆“隔行如隔山”的旧观念和“十万小时定律”的成长限制
  • 快速掌握--cursor
  • 深入解析 Stacking:集成学习的“超级英雄联盟
  • 排查 EF 保存数据时提示:Validation failed for one or more entities 的问题
  • 以梦为舟,共赴中医星辰大海
  • 【Mytais系列】Type模块:源码
  • MySQL快速入门篇---数据库约束
  • 【计算机视觉】三维重建: MVSNet:基于深度学习的多视图立体视觉重建框架
  • 驱动精灵v9.7(含网卡版)驱动工具软件下载及安装教程
  • 360驱动大师v2.0(含网卡版)驱动工具软件下载及安装教程
  • The Traitor King (10 player 25 player)
  • 【网络编程】HTTP(超文本传输协议)详解
  • 文献总结:TPAMI端到端自动驾驶综述——End-to-End Autonomous Driving: Challenges and Frontiers
  • 《解锁Windows下GCC升级密码,开启高效编程新旅程》
  • 游戏引擎学习第255天:构建配置树
  • 【AI面试准备】Testim.io自动化测试工具使用指南
  • C++ 友元:打破封装的钥匙
  • 【Linux】线程控制
  • 【PINN】DeepXDE学习训练营(12)——operator-antiderivative_aligned_pideeponet.py
  • 0902Redux_状态管理-react-仿低代码平台项目
  • Go小技巧易错点100例(二十八)
  • LeetCode240. 搜索二维矩阵 II(巧妙转换)
  • 【AI论文】DeepCritic:使用大型语言模型进行有意识的批判