#!/usr/bin/python # -*- coding: UTF-8 -*- """ 接口名称:股票分析(一) 使用描述:(1)numpy之股票数据分析 (2)读取股票数据,使用numpy.genfromtxt,股票数据来自tushare API (3)分析股票走势:日线级别收盘价趋势图,5日平均线趋势图,制图工具matplotlib """ import numpy as np import matplotlib.pyplot as plt from datetime import datetime import os import tushare as ts def now(): return datetime.now().strftime('%Y%m%d') def str2dateTime(str): return datetime.strptime(str, '%Y-%m-%d') def getStockKdata(code): date=now(); if not os.path.exists(code+date+".csv"): df = ts.get_hist_data(code) df.to_csv(code + date+'.csv', mode='w') data=np.genfromtxt(code +date +".csv", delimiter=",", dtype=str, skip_header=1) return data #收盘价趋势图 def showClosingtrend(code,days=30): if days > 100: raise Exception("days max support 100. ") data = getStockKdata(code) x = data[0:days, 0] # date y = data[0:days, 3] # close print("close:",y) newx = [] for value in x: newx.append(str2dateTime(value)) plt.plot(newx, y, 'r--', label='close') plt.xlabel('date') plt.ylabel('price') plt.title('closingtrend') plt.show() #5日移动平均线趋势图 def showMa5trend(code,days=30): if days > 100: raise Exception("days max support 100. ") data = getStockKdata(code) x = data[0:days, 0] # date y = data[0:days, 8] # ma5 print("ma5:", y) newx = [] for value in x: newx.append(str2dateTime(value)) plt.plot(newx, y, 'g--', label='close') plt.xlabel('date') plt.ylabel('price') plt.title('ma5trend') plt.show() #上证指数 showClosingtrend("sh000001",20) showMa5trend("sh000001",20)