(supermind策略)换手率3%-12%、100亿市值以内的无亏损企业、10天内涨停天

用户头像神盾局量子研究部
2023-08-30 发布

问财量化选股策略逻辑

选股逻辑为:在换手率3%-12%、市值100亿以内、无亏损的A股中选择股票,并且最近10个交易日内有大于2个涨停板。

选股逻辑分析

该选股逻辑除基本面条件外,重点考虑了近期的价格波动。选出最近连续涨停的股票,意味着投资者对该股票的金融数据、业绩等方面持有信心,且股票当前处于增长阶段,有利于获得较高的收益。但是,该选股策略存在短期市场行情、消息面等因素的影响,有风险。

有何风险?

该选股策略中的涨停板数量有可能被市场“炒作”、操纵,导致选出的股票只是个别投机行为的结果,而非真正的股票投资价值。另外,股价集中波动的股票存在较大的波动风险,价格上涨后存在可能的回落。

如何优化?

可以使用相对强弱指标(RSI)等技术指标,例如对斜率进行分析,综合考虑更多技术指标和基本指标,从而更准确地筛选有投资价值的股票。同时,在短时间内涨停板数量应控制在合理范围之内,防止过度考虑市场情绪而忽视基本面信号。

最终的选股逻辑

在符合换手率3%-12%、市值100亿以内、无亏损的A股中选择股票,并在此基础上,综合考虑技术指标和基本面等多方面因素,筛选出符合条件且具有长期投资价值的股票。同时,对于涨停板数量的考虑应加以控制,避免因市场行情而影响股票的投资价值。

同花顺指标公式代码参考

选股公式:(TBD = 0 AND YDNZ < 1.0 AND HSL >= 0.03 AND HSL <= 0.12 AND CIRCMV <= 10000000000 AND MARKET in ('深交所主板') AND COUNT(CLOSE > REF(REF(CLOSE, 1), 1), 10) > 2) ORDER BY GPJD DESC

Python代码参考

import pandas as pd
import tushare as ts

def get_good_stocks():
    good_list = []
    
    ts.set_token('your_token')
    pro = ts.pro_api()
    
    # 获取股票列表
    stock_list = pro.stock_basic(exchange='', list_status='L', fields='ts_code, name, industry, market, list_date')
    
    for ts_code in stock_list['ts_code']:
        # 判断该股票是否亏损
        income_data = pro.income(ts_code=ts_code, start_date='20190101', end_date='20211231')
        if income_data[income_data.report_type == '1'].iloc[-1]['n_income'] < 0:
            continue

        # 判断该股票的市值、换手率是否符合条件
        market_data = pro.daily_basic(ts_code=ts_code, start_date='20220215', end_date='20220218', fields='ts_code, circ_mv, total_mv, turnover_rate')
        if market_data[market_data['circ_mv'] > 10000000000].empty:
            continue
        if market_data[market_data['turnover_rate'] < 0.03].empty or market_data[market_data['turnover_rate'] > 0.12].empty:
            continue
        
        # 判断该股票的涨停板数量是否符合条件
        k_data = pro.daily(ts_code=ts_code, start_date='20220101', end_date='20220218', fields='ts_code, trade_date, close')
        count = 0
        for i in range(2, 13):
            cond1 = k_data.iloc[-i + 1]['close'] > k_data.iloc[-i - 1]['close']
            cond2 = k_data.iloc[-i]['close'] == k_data.iloc[-i - 1]['close']
            if cond1 and cond2:
                count += 1
        if count <= 2:
            continue

        good_list.append(ts_code)

    return good_list

good_stocks = get_good_stocks()
print(good_stocks)
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

    select_sentence = '市值小于100亿' #选股语句。

    模板如何使用?

    点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论