利用tushare一个选股的思路。

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)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值