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 ts

if 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 600519

为了绘制股票周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 ts

if 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 600519 

为了绘制股票月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 ts

if 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 600519 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值