(同花顺量化)100亿市值以内的无亏损企业_、剔除昨日涨停、振幅大于1

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

问财量化选股策略逻辑

选股逻辑为:振幅大于1,剔除昨日涨停,100亿市值以内的无亏损企业。该选股策略旨在寻找市值较小但财务状况良好的企业,以进行短期投资。

选股逻辑分析

该选股策略结合了股票波动情况和企业基本面因素的考虑,既考虑了短期内的行情热点,又考虑了企业的健康发展状况。通过限定市值范围以及无亏损的条件,过滤出财务稳定且具有成长潜力的公司。

有何风险?

该选股逻辑可能存在以下风险:

  1. 由于只考虑了市值以及企业是否盈利等基本面因素,可能无法全面评估企业价值,遗漏其他可能影响企业发展的因素,如管理层能力、市场环境、政策因素等。

  2. 股市波动较大,可能导致选出的股票在短期内价格波动幅度较大。

如何优化?

以下是对该选股逻辑的优化建议:

  1. 在选股时可以增加对技术指标的考虑,如MA、KDJ等指标,更全面地评估股票行情状况。

  2. 同时应该结合前景分析,根据不同的行业和市场环境来综合评估企业的未来发展潜力。

最终的选股逻辑

选股策略为:振幅大于1,剔除昨日涨停,100亿市值以内的无亏损企业。同时加入了相对强弱指标(RSI)作为技术指标的一个参考,根据企业行业不同的特征,结合前景分析,以更全面的视角来综合研究股票的投资价值。

同花顺指标公式代码参考

通达信指标公式:

((HIGH-LOW)/REF(CLOSE,1) > 0.01) AND (CLOSE/REF(CLOSE,1)-1) < 0.1 AND (NOT LLV(LOW, 30) == LOW) AND (NOT LIMIT) AND MARKET_CAP < 100 AND (CLOSE-REF(CLOSE,200))/REF(CLOSE,200)*100 > 0 AND RSI(CLOSE,14) > 30

Python代码参考

from gm.api import *

set_token('your_token_here')

start_date = '2021-01-01'
end_date = '2022-01-01'

# 获取前一交易日的大盘PE值,并根据该值确定行情热点板块和行业
industry_pe = get_fundamentals(table='PE_INDICS', date=trade_days(-1)[-1], symbols='SHSE.000300')['pe'].mean()
hot_industry = ['银行', '交通运输', '建筑', '建材', '工业', '机械']
if industry_pe < 20:
    hot_industry = ['电子', '计算机', '通信']
elif industry_pe > 40:
    hot_industry = ['采掘', '钢铁', '煤炭']


symbols_selected = []
for symbol in symbols:
    # 获取每个股票的市值、总资产、净利润,计算出净利润率
    data = get_fundamentals(table='tq_sk_finindic', symbols=symbol, start_date=start_date, end_date=end_date,
                            fields='tot_assets,net_profit,tot_shrhldr_eqy_excl_min_int,market_cap',
                            filter='ann_date=2021-12-31;', adjust_mode='post')
    data = data[data['market_cap'].notna()]
    data['net_profit_margin'] = data['net_profit'] / data['tot_assets']

    # 选取市值在100亿以内,净利润率大于0的股票
    data_selected = data[(data['market_cap'] < 10000000000) & (data['net_profit_margin'] > 0)]
    if len(data_selected) > 0:
        # 获取股票历史K线数据
        df = history(symbol=symbol, frequency='1d', start_time=start_date, end_time=end_date, fields='open,close,high,low')
        # 计算RSI指标
        rsi = TA.RSI(df, timeperiod=14).iloc[-1]
        # 过滤出符合条件的股票,并缩短name字段
        if ((df['high'].iloc[-1] - df['low'].iloc[-1]) / df['close'].iloc[-1] > 0.01) and (
                df['limit'].iloc[-1] == False) and (symbol_info(symbol).industry_name in hot_industry) and (
                rsi > 30):
            symbol_name = symbol_info(symbol).symbol_name.split(' ')[0]
            symbols_selected.append((symbol, symbol_name))

# 根据选股结果进行交易
for symbol, name in symbols_selected[:10]:
    order_target_percent(symbol=symbol.replace('XSHE', 'SZSE'), percent=0.1, side=OrderSide_Buy,
                          order_type=OrderType_Market, position_effect=PositionEffect_Open)

以上代码为选股逻辑为振幅大于1,剔除昨日涨停,100亿市值以内的无亏损企业的完整代码。增加了技术指标RSI和前景因素的考虑,同时对选股结果进行了交易操作。

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

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

    模板如何使用?

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


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

评论