分享

cutebin: 使用开源Tushare数据库,自己画均线 先来个Tushare简介 Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集...

 rcylbx 2018-11-29

先来个Tushare简介

Tushare是一个免费开源的python财经数据接口包主要实现对股票等金融数据从数据采集清洗加工到数据存储的过程能够为金融分析人员提供快速整洁和多样的便于分析的数据为他们在数据获取方面极大地减轻工作量使他们更加专注于策略和模型的研究与实现上

注册链接(带本人推广码帮忙增加积分 :P)

https:///register?reg=133066

注册完成后在个人主页会获得一个token用户取数据时进行认证

网站上有API调用说明可以根据自己的需要进行组合使用

下面介绍一个均线画图实现供大家参考(代码质量就不要计较了刚实现还待优化:P)

步骤1安装python环境

这里根据个人喜好进行安装百度上有各种教程此处略过

步骤2取日线行情脚本实现如下

#包含库

import tushare as ts

import os

#自己的token放这里

ts.set_token('xxxxxxxxxx')

pro = ts.pro_api()

#根据个人喜好填个代码这里填的小洋子

code = '002304'

#输出文件名这里存成csv文件简单好处理

output_file = code + '.csv'

data = ts.get_hist_data(code)

#日期是保留的不用指定这里指定保留开盘价/最高价/最低价/收盘价

data.to_csv(output_file, columns=['open','high','low','close'])

第一个脚本完成

步骤3计算MA50脚本实现如下

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

#创建线图此处如何实现可以参照python从入门到实践里面有很详细的教学例子

#不喜自己动手的直接拿去改改就行了

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()

最后一步运行步骤3脚本咚咚咚MA50画好蓝色是收盘价红色是MA50

虽然丑了点但是能看啊后期再改进

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多