问财量化选股策略逻辑
在问财量化选股策略中,我们采用至少5根均线重合的股票作为筛选条件。具体来说,我们需要找到收盘价在布林带上轨(upper值)和布林带中轨(mid值)之间的股票,并且要求股票在10天内至少出现2次涨停。以下是具体的筛选条件:
- 收盘价在布林带上轨和中轨之间
- 收盘价在布林带上轨上方
- 收盘价在布林带中轨下方
- 近10天内至少出现2次涨停
选股逻辑分析
这个策略的逻辑是基于布林带和股票的涨停次数来筛选股票。布林带是一种常用的技术分析工具,它可以帮助我们识别股票的价格波动范围。当股票的价格在布林带上轨和中轨之间波动时,通常表示股票处于强势状态。而当股票在布林带上轨上方波动时,说明股票的价格正在上涨,而当股票在布林带中轨下方波动时,说明股票的价格正在下跌。
此外,我们还考虑了股票的涨停次数。因为股票在短期内出现多次涨停通常意味着股票价格短期内有较大的上涨潜力。因此,我们要求股票在近10天内至少出现2次涨停。
有何风险?
这个策略的风险主要来自于布林带和股票的涨停次数的准确性。如果布林带的计算方法不准确或者股票的涨停次数被误判,那么这个策略的准确性就会受到影响。此外,如果股票的价格波动较大或者短期内出现大幅上涨或下跌,那么这个策略也可能无法准确筛选出符合条件的股票。
如何优化?
为了优化这个策略,我们可以考虑以下几点:
- 选择更加准确的布林带计算方法。目前常用的布林带计算方法有简单移动平均线法和指数移动平均线法。我们可以尝试使用其他计算方法来获得更加准确的布林带。
- 考虑更多的筛选条件。除了布林带和股票的涨停次数之外,我们还可以考虑其他因素,例如股票的市值、市盈率、市净率等。这些因素可以帮助我们更加准确地筛选出符合条件的股票。
最终的选股逻辑
最终的选股逻辑如下:
- 收盘价在布林带上轨和中轨之间
- 收盘价在布林带上轨上方
- 收盘价在布林带中轨下方
- 近10天内至少出现2次涨停
- 股票市值大于10亿
- 股票市盈率小于30
- 股票市净率小于2
以下是这个策略的python代码参考:
import talib
def bollinger Bands(df):
upper = talib.BBANDS(df['close'], timeperiod=20, nbdevup=2, nbdevdn=2)
lower = talib.BBANDS(df['close'], timeperiod=20, nbdevup=-2, nbdevdn=-2)
return upper, lower
def check_stock(df):
upper, lower = bollinger Bands(df)
if df['close'].between(lower[0], upper[0]):
if df['close'].between(upper[1], df['close'].max()):
if df['close'].rolling(window=10).sum() >= 2:
return True
else:
return False
else:
return False
def get筛选条件(df):
return df[(df['close'].between(upper[0], upper[0])) &
(df['close'].between(upper[1], df['close'].max())) &
(df['close'].rolling(window=10).sum() >= 2)]
def get筛选结果(df):
return df[df['close'].isin(get筛选条件(df))]
def main():
df = get_data()
filtered_df = get筛选结果(df)
print(filtered_df)
需要注意的是,这个策略只是提供了一个参考,具体实现还需要根据实际情况进行调整。
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


