先来个Tushare简介 Tushare是一个免费 注册链接(带本人推广码 注册完成后 网站上有API调用说明 下面介绍一个均线画图实现 步骤1 这里根据个人喜好进行安装 步骤2 #包含库 import tushare as ts import os #自己的token放这里 ts.set_token('xxxxxxxxxx') pro = ts.pro_api() #根据个人喜好填个代码 code = '002304' #输出文件名 output_file = code + '.csv' data = ts.get_hist_data(code) #日期是保留的 data.to_csv(output_file, columns=['open','high','low','close']) 第一个脚本完成 步骤3 import csv from datetime import datetime from matplotlib import pyplot as plt file = '002304.csv' with open(file) as f_stock_price: data = csv.reader(f_stock_price) stock_price = next(data) #转换日期和各种价格 dates, open_prices, high_prices, low_prices, close_prices = [], [], [], [], [] for row in data: try: date = datetime.strptime(row[0], "%Y-%m-%d") open_p = float(row[1]) high_p = float(row[2]) low_p = float(row[3]) close_p = float(row[4]) except ValueError: print("data missing") else: dates.append(date) open_prices.append(open_p) high_prices.append(high_p) low_prices.append(low_p) close_prices.append(close_p) #MA50计算 ma_50 = [] close_price_len = len(close_prices) print(close_price_len) interval = 49 count = 0 for i in range(0, close_price_len): if (i + interval) >= close_price_len: break; else: last = i + interval ma_50_price = round(float(sum(close_prices[i:last]) / 50), 2) ma_50.append(ma_50_price) count += 1 #创建线图 #不喜自己动手的 fig = plt.figure(dpi=128, figsize=(10, 6)) plt.plot(dates, close_prices, c='blue', alpha=0.5) plt.plot(dates[0:count], ma_50, c='red', alpha=0.5) title = "002304 MA50" plt.title(title, fontsize=20) plt.xlabel('', fontsize=16) fig.autofmt_xdate() ax = plt.gca() ax.yaxis.set_major_locator(plt.MultipleLocator(10)) plt.show() 最后一步 虽然丑了点 |
|