精华内容
下载资源
问答
  • 利用tushare选股票

    2019-04-17 19:14:35
    听完朋友的“天眼地量”选股理论后,热血沸腾,打算找一只股票试试。可以整个股票市场有3600+只股票怎么找呢?不急,我们有python3和tushare。先上代码 import time import datetime import tushare as ts import ...

    听完朋友的“天眼地量”选股理论后,热血沸腾,打算找一只股票试试。可以整个股票市场有3600+只股票怎么找呢?不急,我们有python3和tushare。先上代码

    import time
    import datetime
    import tushare as ts
    import numpy as np
    import pandas as pd
    import csv 
    import pandas_datareader.data as web 
    from sqlalchemy import create_engine 
    import pymysql
    import winsound
    
    duration = 500  # millisecond
    freq = 440  # Hz
    path = 'C:/Users/Administrator/Desktop/stockpy/'
    csv_file = path + 'StockList.csv'
    
    ts.set_token('sfdsdfs')
    pro = ts.pro_api()
    
    def get_stock_list():
        data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
        # data.to_csv(csv_file)
    
    def get_daily_data():
        csv_data = pd.read_csv(csv_file, low_memory = False)#防止弹出警告
        list_df = pd.DataFrame(csv_data)
        row = list_df.shape[0] #
        today = datetime.datetime.today().date()
        # for i in range(3):
        for i in range(row):
            bar_df = ts.pro_bar(ts_code=str(list_df.iloc[i,1]), start_date='20180701', end_date=str(today),
                                ma=[5, 10, 20, 30, 60])
            print(list_df.iloc[i,1])
            tmp_df = bar_df.sort_values(axis = 0, ascending = True, by = 'trade_date')
            # print(tmp_df.head(3))
            tmp_df = tmp_df.reset_index(drop = True)
            # print(tmp_df.head(3))
            tmp_df.to_csv(path + 'bar_' + str(list_df.iloc[i,1]) + '.csv')
            winsound.Beep(freq, duration)
    
    def run():
        get_stock_list()
        get_daily_data()
        winsound.Beep(880, 1000)
    
    if __name__ == '__main__':
        run()
    

    两个function,get_stock_list用来获取当天有效的股票列表信息,保存到csv文件。get_daily_data用来获取所有有效股票的日线数据。因为“天眼地量”理论要用到日线、均线和量能,所以选择了5日、10日、20日、30日和60日的均线数据和对应的量能。每次下载完一只股票后,就提示一声winsound.Beep(freq,duration)。因为tushare设定每分钟只能获取不超过200只股票的数据,我就是设定了提示音响的时间为500ms。经过实测,在半小时左右就可以获取完所有股票的数据了。

    后面就是对每只股票进行分析筛选了,代码还没有想出来:(。

     

    展开全文
  • tushare选股1

    2021-04-07 20:36:56
    tushare ID: 419258 打新肯定是股市中赚钱最稳当,而且很多的了,所以新手跟着新股买基本上是稳赚,只是你基本上买不进去而已。 再一个就是买基本面很好,或者是趋势很好,但是突然一下跌了5个点以上这种的股票,...

    tushare ID: 419258
    打新肯定是股市中赚钱最稳当,而且很多的了,所以新手跟着新股买基本上是稳赚,只是你基本上买不进去而已。
    再一个就是买基本面很好,或者是趋势很好,但是突然一下跌了5个点以上这种的股票,这种一般第二天都会弹回来,我是经常用这种方法,感觉挺好用的。

    
    # 找到某段时间内的上网发行的股票
    def find_all_new_stock_during_date(start_date, end_date):
        df = pro.new_share(start_date=start_date, end_date=end_date)
        return df
    
    
    # print(find_all_new_stock_during_date('20200327','20200410'))
    
    
    # 找到某天之后上市的新股
    def find_all_new_stock_on_market_after_the_date(date, industry):
        """
    
        :param date:
        :param industry:
        :return:
        """
        data = pro.query('stock_basic', fields='ts_code,symbol,name,area,industry,market,list_date')
        for i in range(len(data)):
            # 如果上市日期在date之前,就删去这一行
            if industry != '':
                if datetime.datetime.strptime(date, "%Y%m%d") > datetime.datetime.strptime(data['list_date'][i], "%Y%m%d") \
                        or industry != data['industry'][i]:
                    data = data.drop(index=i)
            else:
                if datetime.datetime.strptime(date, "%Y%m%d") > datetime.datetime.strptime(data['list_date'][i], "%Y%m%d"):
                    data = data.drop(index=i)
            # data['list_date'][i]=datetime.datetime.strptime(data['list_date'][i],"%Y%m%d")
        data.set_index('list_date', inplace=True)
        return data
    
    
    # print(find_all_new_stock_on_market_after_the_date('20210322',''))
    
    def get_last_on_market_date(date):
        date_ = datetime.datetime.strptime(date, "%Y%m%d")
        date = (date_ + datetime.timedelta(days=-1)).strftime("%Y%m%d")
        while pro.query('trade_cal', start_date=date, end_date=date)['is_open'][0] == 0:
            date_ += datetime.timedelta(days=-1)
            date = date_.strftime("%Y%m%d")
        return date
    
    
    def get_ke_neng_ming_tian_zhang_stock_data_by_codes(codes, zhang_die_fu_limit, price_limit):
        """
        找到猛跌的股票
        :param codes: list
        :param zhang_die_fu_limit: 2 items tuple
        :param price_limit: 2 items tuple
        :return:'name', 'open':今日开盘价, 'pre_close'昨日收盘价, 'price':当前价格, 'high':今日最高价, 'low':今日最低价,
        'bid',竞买价,即“买一”报价, 'ask',竞卖价,即“卖一”报价, 'volume'成交量 ,maybe you need do volumn/100, 'amount',成交金额(元 CNY),
        'b1_v',委买一(笔数 bid volume), 'b1_p', 'b2_v', 'b2_p', 'b3_v', 'b3_p', 'b4_v', 'b4_p', 'b5_v', 'b5_p',
        'a1_v',委卖一(笔数 ask volume), 'a1_p', 'a2_v', 'a2_p', 'a3_v', 'a3_p', 'a4_v', 'a4_p', 'a5_v', 'a5_p',
        'date',日期, 'time',时间, 'code'
    
        """
        today = datetime.datetime.now().strftime("%Y%m%d")
        out_list = [['code', 'price', '涨跌幅', '换手率', '量比', 'date', 'time']]
        df = pro.query('daily_basic',
                       ts_code='',
                       trade_date=get_last_on_market_date(today),
                       fields='ts_code,trade_date,turnover_rate,volume_ratio,pe,pb')
        df = df.where(df.notnull(), -1)
        for i in range(len(codes)):
            data = ts.get_realtime_quotes(codes[i])
            if float(data['pre_close']) != 0:
                dang_qian_zhang_die_fu = (float(data['price'][0]) - float(data['pre_close'][0])) / float(
                    data['pre_close'][0]) * 100
            else:
                return None
            if zhang_die_fu_limit[0] < dang_qian_zhang_die_fu < zhang_die_fu_limit[1]:
                if float(data['price'][0]) < price_limit:
                    turnover_rate = int([df['turnover_rate'][x] for x in range(len(df)) if
                                         df['ts_code'][x].split('.')[0] == data['code'][0]][0])
                    if turnover_rate > 3:
                        volume_ratio = int([df['volume_ratio'][x] for x in range(len(df)) if
                                            df['ts_code'][x].split('.')[0] == data['code'][0]][0])
                        if volume_ratio > 1:
                            out_list.append([data['code'][0],
                                             float(data['price'][0]),
                                             dang_qian_zhang_die_fu,
                                             turnover_rate,
                                             volume_ratio,
                                             data['date'][0],
                                             data['time'][0]])
                        else:
                            continue
                    else:
                        continue
                else:
                    continue
            else:
                continue
        out_list = pd.DataFrame(out_list)
    
        return out_list
    
    
    
    展开全文
  • 基于TuShare的A股自动选股程序
  • /user/bin/env pythonimport timeimport datetimeimport pandas as pdimport numpy as npimport tushare as tsimport warningswarnings.filterwarnings('ignore')ts.set_token("1184ddddddddddddddddddddddddddddd.....

    #!/user/bin/env python

    import time

    import datetime

    import pandas as pd

    import numpy as np

    import tushare as ts

    import warnings

    warnings.filterwarnings('ignore')

    ts.set_token("1184ddddddddddddddddddddddddddddddddddf79f1") #请自行填入自己的token

    pro = ts.pro_api()

    # !!!这里需要自己填写:当天的日期

    date_str = '20200120'

    # 十年前的日期

    start_date_str = '20100101'

    # 获取所有A股股票当天的股票代码、交易日期、最新价格、股息率、PE、PB、总市值

    df = pro.daily_basic(ts_code='', trade_date=date_str,

    fields='ts_code,trade_date,close,dv_ratio,pe,pb,total_mv')

    # 特殊处理:如果PE、PB、股息率是NAN值的话,删除该股票

    # 筛选条件:

    # 1、删除pb>1.5的股票

    # 2、删除过去10年pb从来不高于1的股票

    # 3、删除股息率为0的股票

    # 4、排序:按照pe、pb、股息率越小得分越低去排序,总得分越低排序越靠前,负数的得分为非负数的个数+1

    # 如果PE、PB、股息率是NAN值的话,删除该股票

    afternan_df = df.dropna(axis=0, how='any',subset=['pe','pb','dv_ratio'])

    afternan_df.reset_index(drop=True,inplace=True) # 重新写序号

    # 删除pb>1.5的股票

    afterpb_df = afternan_df[afternan_df.pb<=1.5]

    afterpb_df.reset_index(drop=True,inplace=True) # 重新写序号

    # 删除股息率为0的股票

    afterpb_df[afterpb_df[['dv_ratio']]==0]=np.nan

    afterdv_df = afterpb_df.dropna(axis=0, how='any',subset=['dv_ratio'])

    afterdv_df.reset_index(drop=True,inplace=True) # 重新写序号

    # 删除过去10年pb从来不高于1的股票(每个月的pb都取出来)

    monthdate_df = pro.index_monthly(ts_code='000001.SH', start_date=start_date_str, end_date=date_str, fields='trade_date')

    month_date_ls = monthdate_df.trade_date.tolist()

    month_pb_10years_df = pd.DataFrame()

    for month_date in month_date_ls:

    # month_pb_df = pro.daily_basic(ts_code=afterdv_df.ts_code.tolist(), trade_date=month_date,

    # fields='ts_code,trade_date,pb')

    month_pb_df = pro.daily_basic(ts_code='', trade_date=month_date,

    fields='ts_code,trade_date,pb')

    month_pb_10years_df = pd.concat([month_pb_10years_df,month_pb_df],axis=0)

    for stockcode in afterdv_df.ts_code.tolist():

    stock_pb_df = month_pb_10years_df[month_pb_10years_df.ts_code==stockcode]

    # 10年间最大的pb

    max_pb = max(stock_pb_df.pb.tolist())

    afterdv_df.loc[afterdv_df.ts_code==stockcode,'max_pb_10years'] = max_pb #记录过去10年间最大的pb

    mystocks_df = afterdv_df[afterdv_df.max_pb_10years>=1] # 筛选出过去10年最大pb>=1的股票,至此,所有筛选条件已经完毕

    mystocks_df.reset_index(drop=True,inplace=True) # 重新写序号

    # 取股票股票名字、所属行业和审计机构数据

    hy_df = pro.stock_basic(exchange='', list_status='L', fields='ts_code,name,industry')

    mystocks_df = pd.merge(mystocks_df,hy_df,how='inner',on='ts_code')

    for ind,stockcode in enumerate(mystocks_df.ts_code.tolist()):

    # 股票最近一年的审计意见,取最新一次的审计机构为审计机构

    # 因为接口限制,每分钟只能访问接口60次,所以每60次,休眠60s

    if not (ind+1)%60: # 避免一开始浪费时间,+1

    time.sleep(60)

    audit_beg_date = datetime.datetime.strftime(

    datetime.datetime.strptime(date_str,'%Y%m%d')-datetime.timedelta(365),'%Y%m%d')

    stock_audit_df = pro.fina_audit(ts_code=stockcode, start_date=audit_beg_date, end_date=date_str)

    mystocks_df.loc[mystocks_df.ts_code==stockcode,'audit_agency'] = stock_audit_df.loc[0,'audit_agency']

    # 排序:按照pe、pb、股息率越小得分越低去排序,总得分越低排序越靠前,负数的得分为非负数的个数+1

    # 先把为负数的记录为无穷大,即可解决

    mystocks_df[mystocks_df['pe']<=0]=np.inf

    mystocks_df[mystocks_df['pb']<=0]=np.inf

    mystocks_df.loc[:,'pe_score'] = mystocks_df.pe.rank(ascending=True, method='min')

    mystocks_df.loc[:,'pb_score'] = mystocks_df.pb.rank(ascending=True, method='min')

    mystocks_df.loc[:,'dv_ratio_score'] = mystocks_df.dv_ratio.rank(ascending=False, method='min')

    mystocks_df.loc[:,'score_sum'] = mystocks_df[['pe_score','pb_score','dv_ratio_score']].sum(axis=1)

    # 按照总得分从低到高排序

    mystocks_df.sort_values(['score_sum'],ascending=True,inplace=True)

    mystocks_df.reset_index(drop=True,inplace=True) # 重新写序号

    # 最后输出表stocks_score_df

    # 表的列名为:股票代码、股票名字、目前股价、总市值、pe、pb、股息率、pe得分、pb得分、股息率得分、总得分、所属行业、审计机构

    stocks_score_df = mystocks_df[['ts_code','name','close','total_mv','pe','pb','dv_ratio',

    'pe_score','pb_score','dv_ratio_score','score_sum','industry','audit_agency']] #列稍微排个序

    stocks_score_df.to_excel('stocks_score'+date_str+'.xlsx')

    print("The End!")

    展开全文
  • 量化投资比较重要的是策略,可是你得先选个好股,价值投资需要认同他的价值,值得投资的股票才有投资的机会,现在简单介绍一下基于基本面的选股,其实我现实生活中也有炒股,都是经验之说的选股原则。首先从tushare...

    量化投资比较重要的是策略,可是你得先选个好股,价值投资需要认同他的价值,值得投资的股票才有投资的机会,现在简单介绍一下基于基本面的选股,其实我现实生活中也有炒股,都是经验之说的选股原则。

    首先从tushare中获取每日指标 pro.daily_basic

    last_year = '20190101'
    start_date = '20200313'
    mytoken='your_token'
    ts.set_token(mytoken)
    pro = ts.pro_api()
    df = pro.daily_basic(ts_code='', trade_date=start_date, fields='ts_code,trade_date,turnover_rate,volume_ratio,pe,pb')

    P.S. 用户需要至少300积分才可以调取,我是学生进了官方群之后管理员帮我升级到了2000积分,所以大部分接口我都能使用。欢迎大家在我的链接下注册会送我积分

    https://tushare.pro/register?reg=355247

    首先我们筛选PE为15以下的,PB为7一下的股票:

    • PE是每股股价除以每股收益。如果股价是10元/股,每股收益是1元,PE就相当于10倍,你买这家公司的价钱相当于付出这家公司每年盈利的倍数。一般30以下才觉得可以接受。
    • PB是每股股价除以每股净资产的倍数。如果股价是10元/股,净资产是5元/股,PB就是2倍,也相当于付出的是这个公司净资产的2倍。一般8以下可以接受,我这里调整成小一些,因为最近跌幅挺大的,所以很多公司跌破净资产。
    PE_T = 15
    PB_T = 1
    df_choose = df[(df.pe<=PE_T)&(df.pb<=PB_T)]

    符合条件的有198只股票,接着我们筛选一下近期公布的收益

    收益可以通过pro.income接口查询:

    income = []
    for c in df_choose.ts_code:
        df_income = pro.income(ts_code=c,start_date=last_year,end_date=start_date,fields='ts_code,ann_date,f_ann_date,end_date,report_type,comp_type,basic_eps,diluted_eps')
        income.append(df_income['basic_eps'].iloc[0])
    df_choose['basic_eps']=income
    df_choose_good = df_choose[df_choose.basic_eps>1.0]
    print(len(df_choose_good))

    收益大于1.0的股票df_choose_good中含有23只股票

    接着我想得出这些这些股票代码的股票名字,可以查询这个接口pro.stock_basic ,并且我存下该表格。

    data_path = './data/'
    if not os.path.exists(data_path):
        os.makedirs(data_path)
    csv_name = f'allname_data.csv'
    csv_path = os.path.join(data_path,csv_name)
    data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
    data.to_csv(csv_path, index=False)
    data[data.ts_code.isin(df_choose_good.ts_code)]
    ts_codesymbolnameareaindustrylist_date
    33000042.SZ000042中洲控股深圳全国地产19940921
    97000501.SZ000501鄂武商A湖北百货19921120
    480002024.SZ002024苏宁易购江苏电器连锁20040721
    583002128.SZ002128露天煤业内蒙煤炭开采20070418
    600002146.SZ002146荣盛发展河北全国地产20070808
    2201600000.SH600000浦发银行上海银行19991110
    2211600016.SH600016民生银行北京银行20001219
    2247600064.SH600064南京高科江苏园区开发19970506
    2356600188.SH600188兖州煤业山东煤炭开采19980701
    2564600449.SH600449宁夏建材宁夏水泥20030829
    2770600694.SH600694大商股份辽宁百货19931122
    2773600697.SH600697欧亚集团吉林百货19931206
    2919600859.SH600859王府井北京百货19940506
    2964600919.SH600919江苏银行江苏银行20160802
    2965600926.SH600926杭州银行浙江银行20161027
    3034601088.SH601088中国神华北京煤炭开采20071009
    3062601186.SH601186中国铁建北京建筑工程20080310
    3076601229.SH601229上海银行上海银行20161116
    3111601577.SH601577长沙银行湖南银行20180926
    3134601677.SH601677明泰铝业河南20110919
    3157601828.SH601828美凯龙上海其他商业20180117
    3158601838.SH601838成都银行四川银行20180131
    3201601997.SH601997贵阳银行贵州银行20160816

    这个就是选出来的股,看来银行最近跌得挺厉害的,看好银行在后期反弹。

    326083e7682cf2078152ec50d322c93f.png
    a4732a0148097cdcf6060d1ae9f2dccb.png
    ts_codesymbolnameareaindustrylist_date
    0000001.SZ1平安银行深圳银行19910403
    140000553.SZ553安道麦A湖北农药化肥19931203
    272000732.SZ732泰禾集团福建区域地产19970704
    2201600000.SH600000浦发银行上海银行19991110
    2210600015.SH600015华夏银行北京银行20030912
    2356600188.SH600188兖州煤业山东煤炭开采19980701
    2522600383.SH600383金地集团深圳全国地产20010412
    2608600508.SH600508上海能源上海煤炭开采20010829
    2770600694.SH600694大商股份辽宁百货19931122
    2852600782.SH600782新钢股份江西普钢19961225
    2919600859.SH600859王府井北京百货19940506
    3016601009.SH601009南京银行江苏银行20070719
    3057601166.SH601166兴业银行福建银行20070205
    3076601229.SH601229上海银行上海银行20161116
    3157601828.SH601828美凯龙上海其他商业20180117
    3201601997.SH601997贵阳银行贵州银行20160816
    展开全文
  • 大家好,上次讲到了如何从tushare读取交易数据并写入到mysql数据库,今天讲解两个案例,简单的条件选股以及对交易数据可视化。第一个案例简单查询股价涨幅和跌幅并可视化。第二个案例结合选股策略(不要ST股、动态市...
  • tushare根据日k线选股

    2019-10-06 17:01:55
    积分不通,token权限不同,5000积分,所有权限全开 ...选股思路,根据当天收盘价格,10日内新高,并且收盘价格比10日内最高价回撤3%-13%,且在均线之上,筛选出满足上述条件的股票 import tushare as ts import datetime...
  • 1,遍历沪深股票选股,baostock用不了9分钟,tushare至少37分钟2,1主要是因为tushare需要赚积分,需要注册,而且还有严格要求,速度无法快,要wait0.3s,而baostock...)可以用来选股,但是tushare无法!因为lxml安...
  • 量化选股--tushare的利用

    千次阅读 2018-05-04 08:21:41
    量化选股的常用python模块,介绍tushare使用中,总结的一些短代码import tushare as tssymbols = ts.get_stock_basics()st = ts.get_st_classified()lv_price_1 = 50def isSt(stockID): for sti in st.code: if ...
  • 选股策略: 1、以中证500为股票池; 2、按照权重从大到小排列获取后三百只股票; 3、过滤掉创业板及科创板的股票 4、过滤掉当天停牌的股票 5、 基础科目及衍生类:获取每只股票的finaexp_of_gr(财务费用/营业总收入...
  • 选股策略 1)以中证500指数为股票池 2)用9个指标信号对所有股票进行评分 3)获取得分最高的前十名 import tushare as ts import pandas as pd import datetime from dateutil.relativedelta import relativedelta ...
  • 选股策略: 1、以中证1000为股票池; 2、删除上市时间不足两年的股票; 3、删除掉创业板股票 4、使用concurrent.futures import ThreadPoolExecutor 对每只股票的趋势进行直线拟合,删除掉角度小于3°的股票 5、获取...
  • Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 ...在股票数据获取方面为不二之。一、注册Tushare金融大数据社区​tushare.pro二、pip下载tusharepip insta...
  • import tushare as ts import pandas as pd import time ts.set_token('**************************') pro=ts.pro_api() # 获取股票池 hs300_all_stock = [] stocks = [] df = pro.index_weight(index_code='...
  • 概述TuShare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 ...最近准备用这个看能不能折腾出一个选股脚本~一、安装python3和pip1、下载官网:https://www.python.org/...
  • 烟蒂是对于实际价值高于市场估计价值的上市公司股票的一种代称。这种股票的最大特点就是由于特定环境下的市场作用,其市场股值表现较低,股价十分低廉,花很少钱就可以买到。 其中巴菲特的第一桶金就是在“烟蒂...
  • ① 以中小版指数的成分为股票池 ② 交易热度:通过均幅指标值从大到小降序排列选出前33只 ③ 整体趋势:使用SMA(5)是否大于SMA(10)删股票 ④ 通过MACD的快线大于慢线且快线低于0删股票 import tushare as ...
  • Tushare库之获取股票列表接口

    千次阅读 2019-07-31 23:15:53
    接口:stock_basic 描述:获取基础信息数据,包括股票代码、名称... 是否沪深港通标的,N否 H沪通 S深通 list_status str N 上市状态: L上市 D退市 P暂停上市 exchange str N 交易所 ...
  • Python分析股票之前,我们需要做几件准备工作:安装Python安装tushare包安装VSCode (可)以上步骤详细说明如下:第1步:安装Python首先你需要一个Python编译器才能运行.py文件,下载地址如下:Python官方下载地址​...
  • hqchartPy2指标选股 - KDJ选股准备工作py编写选股1. 初始化hqchartPy22. 配置运行的指标信息(runConfig)ScriptArgsPeriodRightStartDate, EndDateOutCountSymbol3. 创建tushare 数据类(TushareHQChartData)4. ...
  • python调用tushare获取沪通、深通成份数据发布时间:2020-07-20 17:30:07来源:51CTO阅读:195作者:tushare01接口:hs_const描述:获取沪通、深通成分数据注:tushare库下载和初始化教程,请查阅我之前的...
  • 在浩瀚如烟的股票中,如何将好选择出来?长线、中线、短线个股如何筛选?国内外政治、经济、地缘博弈基本面对股市的影响有多大,怎样将其纳入股票选择买卖的决策因子?公司财报、未来规划、公司所处行业发展前景...
  • tushare 模块参数

    千次阅读 2017-04-08 00:04:09
    tushare是国内开源、免费的python财经数据接口包。下面介绍的是tushare模块中获取数据的方法。...本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析。 参数说明: code:股票代码,即6位数字代
  • Tushare 官网Tushare -财经数据接口包​tushare.orgTushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 ...在股票数据获取方面为不二之。一、注册Tushare金融大数...
  • Tushare 官网Tushare -财经数据接口包​tushare.orgTushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 ...在股票数据获取方面为不二之。一、注册Tushare金融大数...
  • 我们使用tushare股票数据,做一个基本面选股的示例。 tushare的ts.get_today_all()方法能获取沪深上市公司的实时数据,以此获取股票名称,市盈率,市净率。 返回的数据内容如下: code:代码 name:名称 ch...
  • 本题目来自于第三届“中青杯”大学生...对于附件的成分股数据,请您通过建立模型,给出合理选股方案和投资组合方案。 问题二:尝试给出合理的评价指标来评估问题一中的模型,并给出您的分析结果。 还有第三问,不过和

空空如也

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

tushare选股