问财量化选股策略逻辑
- 至少5根均线重合的股票
- 换手率>2%且<9%
- 近一个月内有过涨停
选股逻辑分析
这个策略基于以下三个条件来筛选股票:
- 股票至少有5根均线重合,这表明股票的价格趋势相对稳定,同时也表明该股票的买卖力量相对均衡。
- 股票的换手率需要大于2%,这意味着该股票的流动性相对较高,同时也表明该股票的交易活跃度较高。
- 股票在近一个月内有过涨停,这表明该股票的市场关注度相对较高,同时也表明该股票的上涨动力相对较强。
有何风险?
这个策略的局限性在于,它只考虑了股票的价格趋势、流动性、市场关注度等因素,而没有考虑其他因素,例如公司的财务状况、行业背景、竞争环境等。因此,这个策略可能会忽略一些重要的风险因素,从而导致投资者在实际操作中出现失误。
如何优化?
为了优化这个策略,我们可以考虑加入一些其他因素,例如公司的财务状况、行业背景、竞争环境等。此外,我们还可以考虑使用不同的技术指标来筛选股票,例如移动平均线、布林线、MACD等。这些技术指标可以帮助我们更好地理解股票的价格趋势、买卖力量、市场关注度等。
最终的选股逻辑
以下是最终的选股逻辑:
- 股票至少有5根均线重合
- 换手率>2%且<9%
- 股票的收盘价在布林线中轨以上
- 股票的MACD柱状线为正值,且柱状线的长度大于0
python代码参考
以下是一个简单的Python代码示例,用于实现上述的选股策略:
import talib
def get_5_ma_and_bollinger Bands(data):
# 计算5日移动平均线
ma5 = talib.MA(data, timeperiod=5)
# 计算布林线的上下轨
upper, middle, lower = talib.BBANDS(data, timeperiod=20, nbdevup=2, nbdevdn=2)
return ma5, upper, middle, lower
def get_stocks_with_strong_volume(data):
# 获取换手率大于2%且小于9%的股票
volume_threshold = 2
turnover_threshold = 9
stocks = []
for index, row in data.iterrows():
volume = row['volume']
turnover = row['turnover']
if volume > volume_threshold and turnover < turnover_threshold:
stocks.append(row['code'])
return stocks
def get_stocks_with涨停历史(data):
# 获取近一个月内有过涨停的股票
stocks = []
for index, row in data.iterrows():
date = row['date']
if date.month - 1 in [x.month for x in data.iloc[:index].index]:
if row['close'] > row['open'] + 2:
stocks.append(row['code'])
return stocks
def get_stocks_with_all_conditions(data):
# 获取符合条件的股票
ma5, upper, middle, lower = get_5_ma_and_bollinger Bands(data)
stocks = get_stocks_with_strong_volume(data)
stocks = get_stocks_with涨停历史(data)
return stocks
# 示例数据
data = pd.read_csv('data.csv')
# 通过以上函数筛选符合条件的股票
stocks = get_stocks_with_all_conditions(data)
print(stocks)
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


