(i问财选股策略)机器人概念且流通市值小于100亿_、换手率3%-12%、rsi小于65

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

问财量化选股策略逻辑

选股逻辑:选取RSI小于65、换手率在3%-12%之间、机器人概念且流通市值小于100亿的企业作为投资标的。

选股逻辑分析

该选股逻辑综合考虑了技术面、市场调节和行业趋势等因素,通过筛选出RSI较低、波动较小的机器人概念股票,结合流通市值进行规模控制,追踪目前热门行业,投资风险相对可控。

有何风险?

该选股策略可能存在的风险:

  • 机器人概念行业受政策影响较大,政策风险较高;
  • 机器人概念行业处于快速发展阶段,市场未来的表现难以预测;
  • 数据库中的机器人概念股票可能存在信息不及时、不准确的情况。

如何优化?

  • 合理控制规模:
    • 可以根据市场风险、资产规模等因素动态调整流通市值的阈值,减小单只股票对投资组合的影响;
    • 可完善资产配置策略,对不同行业进行分散配置,降低特定股票或行业对整个投资组合的影响。
  • 加强基本面分析:
    • 应注重分析机器人概念股票的行业背景、市场需求、技术创新等基本面数据,分析上市公司的财务表现,规避市场风险;
    • 按照不同时间维度,对财务指标的变化进行监测,及时发现财务风险信号,确保投资效益。
  • 引入机器学习算法:
    • 可以通过对机器人概念股票的历史数据进行分析,结合市场数据、新闻舆情等因素,使用机器学习算法构建股票预测模型,提高股票选取的精度和效果。

最终的选股逻辑

选取RSI小于65、换手率在3%-12%之间、机器人概念且流通市值小于100亿的企业作为投资标的。

同花顺指标公式代码参考

选股策略中使用的通达信公式代码如下:

/* 自定义板块机器人 */
INCONCEPT('机器人')
/* 整体市值小于100亿 */
AND(MV<C)
/* RSI小于65 */
AND(RSI(C,14)<65)
/* 换手率3%-12% */
AND(VOL/L>=0.03,VOL/L<=0.12)

python代码参考

以下是Python代码示例,仅供参考。

import tushare as ts
import pandas as pd
import numpy as np
import talib

def select_stocks():
    res = []

    # 机器人板块
    stk_concepts = ts.get_concept_classified()
    stk_concepts = stk_concepts[stk_concepts['concept_name'] == '机器人']
    concept_stocks = list(stk_concepts['code'])

    # 除去停牌、ST、科创板、次新股
    stk_basics = ts.get_stock_basics()
    stk_basics = stk_basics[stk_basics['name'].str.contains('ST') == False]
    stk_basics = stk_basics[stk_basics['name'].str.contains('ST') == False]
    stk_basics = stk_basics[stk_basics['name'].str.contains('ST') == False]
    stk_basics = stk_basics[~stk_basics.index.isin(concept_stocks)]
    stk_basics = stk_basics[stk_basics['launch_date'] <= '2019-09-01']
    stk_basics = stk_basics[~stk_basics.index.str.match('^688')]
    stk_basics = stk_basics[~stk_basics.index.str.match('^00224')]
    stk_basics = stk_basics[~stk_basics.index.str.match('^0025[678]')]
    stk_basics = stk_basics[~stk_basics.index.str.match('^30[01]')]

    bjest = ['SH', 'SZ']
    for idx, row in stk_basics.iterrows():
        if row['outstanding'] <= 0 or row['totals'] <= 0:
            continue
        if row['esp'] < 0:
            continue

        # 市值
        market_value_threshold = 100  # 100亿
        market_value = row['totals'] * row['price']
        if market_value > market_value_threshold:
            continue

        try:
            # 行情数据
            hist_data = ts.get_hist_data(idx)
            if hist_data is None:
                continue

            close_data = hist_data['close'].values
            high_data = hist_data['high'].values
            low_data = hist_data['low'].values
            if len(close_data) < 10:
                continue

            # RSI
            rsi_threshold = 65
            rsi = talib.RSI(close_data)[-1]
            if rsi >= rsi_threshold:
                continue

            # 量比
            vol_threshold = (0.03, 0.12)
            turnover_rate = hist_data['volume'][-1] / hist_data['volume'][0]
            if turnover_rate < vol_threshold[0] or turnover_rate > vol_threshold[1]:
                continue

            res.append(idx)

        except Exception as e:
            continue

    return res

# 选取符合要求的股票
res = select_stocks()
print(res)

注:在使用该代码时,请遵守国家法律法规和相关规定,严禁私自开展证券投资活动,自行承担相应风险。

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

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

    模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧