supermind选股策略-军工板块日线16元以下上月换手率在100%以上赢利个股、顺博合

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

问财量化选股策略逻辑

本次选股策略的逻辑分为以下几个部分:

  1. 日线16元以下上月换手率在100%以上赢利个股:这是我们的第一筛选条件。我们关注的是日线在16元以下的股票,要求它们在上个月的开盘价和收盘价之间的换手率必须达到100%以上。筛选出符合条件的股票后,我们会进一步查看这些股票在过去一年的布林带是否呈现缩口趋势,这是我们的第二个筛选条件。

  2. 顺博合金下跌会合线:这是我们对股票进行优化的一个策略。我们观察到顺博合金的股票价格在下跌时会形成一条下跌会合线,这是股票价格下跌趋势的一个反转信号。

  3. 一年内布林缩口:这是我们对股票进行优化的另一个策略。我们观察到在过去一年内,布林带的宽度会逐渐缩小,这是股票价格下跌趋势的一个反转信号。

选股逻辑分析

以上所述的选股策略,其风险主要在于股票价格的波动性。由于我们关注的是日线在16元以下的股票,且要求它们在过去一个月内的换手率必须达到100%以上,这可能会导致我们错过一些价格波动较大的股票,从而影响我们的投资收益。

如何优化?

为了优化这个选股策略,我们可以考虑对以下几个方面进行调整:

  1. 扩大筛选条件的范围:我们可以考虑将筛选条件扩大,例如将日线在32元以下的股票纳入筛选范围,这样可能会提高我们的收益。

  2. 增加额外的筛选条件:我们可以增加一些额外的筛选条件,例如要求股票的市盈率必须低于10,或者要求股票的市净率必须高于1,这样可能会提高我们的收益。

  3. 调整优化策略:我们可以考虑调整我们的优化策略,例如将顺博合金的下跌会合线改为上涨会合线,或者将过去一年的布林缩口改为过去六个月的布林缩口,这样可能会提高我们的收益。

最终的选股逻辑

最终的选股逻辑是:

  1. 日线在16元以下,且在上个月的开盘价和收盘价之间的换手率必须达到100%以上。
  2. 顺博合金的股票价格在下跌时会形成一条下跌会合线,或者过去一年的布林带的宽度会逐渐缩小。

常见问题

  1. 筛选条件是否过于严格,可能会错过一些优秀的投资机会。
  2. 如何确定股票价格的下跌趋势和会合线?
  3. 如何确定股票价格的下跌趋势和布林带宽度?
  4. 股票价格的波动性是否会导致投资收益的波动?
  5. 优化策略是否会导致错过一些投资机会?

指标公式代码参考

在实际操作中,我们可以使用以下指标公式代码进行选股:

# 导入所需库
import tushare as ts
import pandas as pd

# 设置股票代码和日期范围
stock_code = '600000'
start_date = '20210101'
end_date = '20211231'

# 获取股票数据
df = ts.get_k_data(stock_code, start_date, end_date)

# 计算月换手率
df['turnover_ratio'] = df['turnover'].div(df['close'].abs()) * 100

# 筛选出符合条件的股票
df_screen = df[(df['turnover_ratio'] > 100) & (df['close'].shift(1) > df['close'])]

# 计算顺博合金的下跌会合线和上涨会合线
df['daily_line'] = df['close'].rolling(window=3).min().shift(1)
df['reverse_line'] = df['close'].rolling(window=3).max().shift(1)
df['break_line'] = np.where(df['daily_line'] > df['reverse_line'], 1, 0)
df['break_line'] = df['break_line'].where(df['break_line'] == 0, df.index)
df['break_line'] = df['break_line'].shift(1)

# 计算布林带宽度
df['bollinger_upper'], df['bollinger_middle'], df['bollinger_lower'] = ts.bollinger_band(df['close'], window=20)
df['bollinger_ratio'] = (df['bollinger_upper'] - df['bollinger_middle']) / df['bollinger_lower']

# 筛选出符合条件的股票
df_screen2 = df[(df['bollinger_ratio'] > 0.1) & (df['break_line'] == 1)]

如何进行量化策略实盘?

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

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

模板如何使用?

点击页面下方的复制按钮,复制到自己的账户即可使用模板进行回测。
收益&风险
源码

评论