Tushare是一个免费提供各类金融数据 , 助力智能投资与创新型投资的平台。在这个平台上可以免费获得股票、期货和外汇的各种数据。(Tushare ID:488134)
Tushare安装1.使用tushare的前提是部署好Python环境,然后与安装其他python模块一样使用pip命令安装tushare模块。
pip install tushare -i https://pypi.douban.com/simple
1、Tushare注册链接https://tushare.pro/register?reg=488134,注册完成之后进入个人主页
2、完善个人信息
完善好个人资料可以获得20积分,加上注册送的100积分,可以用股票的行情数据,对于练手来说,够用了。如果你是学生的话,还可以进行学生认证,一般的接口数据都可以使用。 3、TOKEN获取
点击接口TOKEN(复制自己的TOKEN,之后介绍TOKEN如何使用,注意:这个TOKEN是你自己的,不要外传)
找到了一个程序,按照自己的想法改了改,仅供参考,别根据这个选股啊哈哈哈
# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts
from pyecharts.charts import Line, Scatter
from pyecharts import options as opts
import re
pd.set_option('expand_frame_repr', False) # 当列太多时不换行
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
# 获取正常上市的所有股票代码
def get_allstock_code(exchange='', list_status='L', fields='ts_code'):
data = pro.stock_basic(exchange=exchange, list_status=list_status, fields=fields)
return data
# 获取股票数据
def get_stock_data(code, start, end):
stock_df = pro.daily(ts_code=code, start_date=start, end_date=end)
stock_df.index = pd.to_datetime(stock_df.trade_date)
stock_df = stock_df.sort_index()
return stock_df
token = 'b40a758f8f7e194d6fa42c066c5593607ad20bb317d1c97a67dfd0d2'
pro = ts.pro_api(token)
start = '20220309'
end = '20220417'
# code = '603712.SH'
fee_rate = 0.0003
tax_rate = 0.001
df_code = get_allstock_code(exchange='', list_status='L', fields='ts_code, name')
# 不玩创业板和科创板
df_code = df_code[df_code.ts_code.str.startswith(('60', '00'))]
chose_df = pd.DataFrame()
# # 计算均线的周期尽量多
start = '20211122'
end = '20220416'
aga_code = []
for code in df_code.ts_code:
df = get_stock_data(code, start, end)
df = df[['ts_code', 'open', 'close', 'pct_chg', 'vol']]
if len(df) > 60:
df['30ma'] = df['close'].rolling(30).mean()
df['60ma'] = df['close'].rolling(60).mean()
df.dropna(inplace=True)
print(code)
date_list = list(df.index)
df1 = pd.DataFrame()
for date in date_list[:-10]:
location = date_list.index(date)
next_date = date_list[location + 9]
if df.loc[date, 'pct_chg'] > 9.94:
open = df.loc[date, 'open']
close = df.loc[date, 'close']
vol = df.loc[date, 'vol']
ma_30 = df.loc[next_date, '30ma']
ma_60 = df.loc[next_date, '60ma']
df1 = df[date:next_date]
max_close = df1.close.max()
min_close = df1.close.min()
# avg_close = df1.close.mean()
max_vol = df1.vol.max()
min_vol = df1.vol.min()
if max_close < close * 1.10 and min_close > open*1.03 \
and max_vol < vol * 1.5 and min_close > ma_60 \
and min_close*1.02 > ma_30 > ma_60:
stock_code = df.loc[date, 'ts_code']
aga_code.append(stock_code)
print(aga_code)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)