(同花顺量化)10日涨幅大于0小于35_、10天内涨停天数大于2、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 10天内涨停天数大于2
  • 10日涨幅大于0小于35

选股逻辑分析

这个策略基于三个指标来筛选股票。首先,要求至少5根均线重合,这表明股票价格在不同时间段内的趋势比较稳定,有可能出现较大的上涨空间。其次,要求10天内涨停天数大于2,这表明股票在短期内有较强的上涨动力。最后,要求10日涨幅大于0小于35,这表明股票价格在最近10天内有明显的上涨趋势,但尚未达到过高的水平。

有何风险?

这个策略的局限性在于它只考虑了股票价格的短期趋势,而没有考虑公司的基本面情况。因此,如果股票的基本面较差,即使短期价格有较大的上涨空间,也可能在长期内出现较大的下跌风险。此外,如果市场整体环境较差,也可能导致股票价格的短期波动较大,从而使得该策略的收益率不稳定。

如何优化?

为了优化这个策略,可以考虑加入一些基本面指标,例如市盈率、市净率等,来评估股票的基本面情况。此外,可以考虑加入一些技术指标,例如布林线、移动平均线等,来更准确地判断股票价格的趋势。最后,可以考虑加入一些市场指标,例如成交量、换手率等,来评估股票市场的活跃程度。

最终的选股逻辑

  • 股票价格至少5根均线重合
  • 股票在10天内有2次及以上涨停记录
  • 股票价格在10天内涨幅大于0小于35
  • 股票的基本面评估得分高于一定阈值
  • 股票的技术指标评估得分高于一定阈值
  • 股票的市场指标评估得分高于一定阈值

python代码参考

以下是基于问财数据回测平台的Python代码参考:

import tushare as ts
import talib
import numpy as np

# 设置pro接口key
ts.set_token('your_token')

# 初始化pro接口
pro = ts.pro_api()

# 获取所有A股股票的代码和名称
stock_codes = pro.stock_basics().index.tolist()

# 设置策略参数
n均线 = 5
streak = 2
gain_threshold = 0.35
basic_score_threshold = 0.5
tech_score_threshold = 0.5
market_score_threshold = 0.5

# 获取股票价格、成交量、换手率等数据
df = pro.daily(ts_code=stock_codes, start_date='2021-01-01', end_date='2021-12-31')

# 计算均线
df['ma5'] = talib.MA(df['close'], timeperiod=n均线)
df['ma10'] = talib.MA(df['close'], timeperiod=2*n均线)
df['ma20'] = talib.MA(df['close'], timeperiod=3*n均线)
df['ma30'] = talib.MA(df['close'], timeperiod=4*n均线)
df['ma60'] = talib.MA(df['close'], timeperiod=5*n均线)

# 计算成交量
df['vol'] = df['vol']

# 计算换手率
df['turnover'] = df['vol'] / df['close'] * 100

# 计算基本面上的得分
df['basic_score'] = np.where((df['pb'] < basic_score_threshold) | (df['pe'] > basic_score_threshold), 0, df['pb'] * df['pe'])

# 计算技术面上的得分
df['tech_score'] = np.where((df['rsi'] > tech_score_threshold) | (df['macd'] > tech_score_threshold), 0, df['rsi'] * df['macd'])

# 计算市场面上的得分
df['market_score'] = np.where((df['vol'] > market_score_threshold) | (df['turnover'] > market_score_threshold), 0, df['vol'] * df['turnover'])

# 计算综合得分
df['score'] = df['basic_score'] + df['tech_score'] + df['market_score']

# 筛选出符合条件的股票
stock_list = df[df['score'] > 0]['ts_code'].tolist()

# 输出结果
print('筛选出符合条件的股票:', stock_list)

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

模板如何使用?

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

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论