繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

【共享函数】| 过滤ST,停牌,涨停等

作者/lcb173364 2019-08-10 22:00 0 来源: FX168财经网人物频道

借助pandas的筛选方法可以快速地筛选出各种数据 , << pandas使用指南>>。


以下数据可在交易日盘前09:00之后获取(建议09:10之后再获取)
停牌信息可以通过行情数据中的paused字段获取;
ST信息可以通过get_extras的is_st字段获取;
涨跌停可以用行情数据中的high_limit及low_limit字段和当前价格进行对比获取;


  1. 过滤停牌
    def filter_paused(stocks,end_date,day=1,x=1):
     '''stocks:股票池     end_date:查询日期
        day : 过滤最近多少天(包括今天)停牌过的股票,默认只过滤今天
        x : 过滤最近day日停牌数>=x日的股票,默认1次
        返回 :过滤后的股票池 '''
     s = get_price(stocks,end_date=end_date,count =day,fields='paused').paused.sum()
     return s[s< x].index.tolist()
    

  1. 过滤ST
    def filter_st(stocks,day):
       datas = get_extras('is_st',stocks,end_date = day ,count=1).T
       return  datas[~datas.iloc[:,0]].index.tolist()
    

  1. 过滤跌涨停等(同时也可以过滤掉停牌)
    由于涨停的定义比较复杂(一字板,触板等) , 使用条件也各有不同(判断当期是否涨停还是判断昨天有无涨停等) , 所以此处仅做示例,具体判断大家可以在使用时再考虑。
s = get_index_stocks('000300.XSHG')
df = get_price(s,end_date='2019-05-07',count=1,fields=['close','low','low','high_limit','low_limit']).iloc[:,0]

s = df[df.close!=df.high_limit].index.tolist()  #剔除掉收盘价等于涨停价的
s = df[df.low!=df.high_limit].index.tolist()  #剔除掉最低价等于涨停价的(涨停一字板)
s = df[df.high!=df.low_limit].index.tolist()  #剔除掉最高价等于涨停价的(跌停一字板)
  1. 示例函数 : 统计某一天停牌,当日新上市,上涨,下跌,涨停,跌停户

    def Market_statistics(check_date,filter_st=True):
         '''check_date: 统计日期,
           filter_st: 是否过滤st'''
         info_data = get_all_securities(date=check_date)
         all_list = info_data.index.tolist()
         st_df  =  get_extras('is_st', all_list,end_date=check_date, df=True, count=1).T
         st_list = st_df[st_df.iloc[:,0]].index.tolist()
         print ('st股票有%s只'%len(st_list))
         print ('未退市的有%s只'%len(all_list))
    
         all_data = get_price(all_list,end_date=check_date,count=2,fields=['paused','close','high_limit','low_limit'])
         paused_data = all_data.paused.iloc[-1]
         paused_list = paused_data[paused_data==1].index.tolist()
         print ('停牌%s只'%len(paused_list))
    
         new_data = all_data.drop(paused_list,axis=2)
         if filter_st ==True:
             filter_list = list(set(st_list)-set(paused_list))
             new_data = new_data.drop(filter_list,axis=2)
         pct_data = new_data.close.pct_change().iloc[1]
         print ('当日新上市股票:%s'%pct_data[np.isnan(pct_data)].index.tolist())
         print ('上涨%s只(不含当日上市)'%len(pct_data[pct_data>=0]))
         print ('下跌%s只'%len(pct_data[pct_data<0]))
    
         limit_up_data = new_data.iloc[:,-1,:][new_data.iloc[:,-1,:].close==new_data.iloc[:,-1,:].high_limit]
         print ('涨停%s只'%len(limit_up_data))
         limit_down_data = new_data.iloc[:,-1,:][new_data.iloc[:,-1,:].close==new_data.iloc[:,-1,:].low_limit]
         print ('跌停%s只'%len(limit_down_data))
    
分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2144文章4145粉丝45

    暂无个人简介信息

  • 梁孟梵

    人气2152文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 指导老师

    人气1856文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2296文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 刘钥钥1

    人气2016文章3119粉丝34

    专业从事现货黄金、现货白银模似实盘操作分析指导

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2320文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4728文章8329粉丝118

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...