量化交易研究———高级篇(1)实现代码(重要部分。)

选股策略
1、 设置所有深港通股票为股票池
2、 获取深港通股票的流通市值0—70亿
3、 获取深港通股票的净资产收益率(ROE)从小到大排列,取排名前100只股票
4、 获取深港通股票的每股收益(EPS)从小到大排列,取排名前100只股票

5、 选取满足以上条件的前30只股票

def tradestocklist(stock,date):
    #流通市值、净资产收益率、每股收益数据获取
    q = query(valuation.symbol, 
            valuation.current_market_cap, 
            profit.roe_ths, 
            growth.basic_eps_year_growth_ratio
            ).filter(valuation.symbol.in_(stock)) 
    df = get_fundamentals(q, date = date)
    #确定市值小于90亿
    df0 = df[df['valuation_current_market_cap'] < 9000000000]
    df0 = list(df0['valuation_symbol'])
    #净资产收益率前200
    df1 = pd.DataFrame(df).sort_values(by = 'profit_roe_ths', ascending = False)
    df1 = df1.iloc[:200]
    df1 = list(df1['valuation_symbol'])
    #每股收益前200
    df2 = pd.DataFrame(df).sort_values(by = 'growth_basic_eps_year_growth_ratio', ascending = False)
    df2 = df2.iloc[:200]
    df2 = list(df2['valuation_symbol'])
    #同时满足条件123的个股
    stock1 = list(set(df1)&set(df2)&set(df0))
    log.info('今日选股数量:{},具体:{}'.format(len(stock1),stock1))
    return stock1 

猜你喜欢

转载自blog.csdn.net/qq_36142114/article/details/80300392