问财量化选股策略逻辑
高点为两日最高,涨幅<2.6且涨幅>-5,500日内至少2次涨停
选股逻辑分析
这个策略的逻辑是基于股票在一定时间内出现的高点和涨幅来筛选股票。具体来说,它要求股票在两天内出现的最高价是其历史最高价,并且在这两天内的涨幅要小于2.6倍,同时涨幅要大于-5%。此外,该策略还要求股票在500天内至少出现两次涨停。
这个策略的逻辑看起来比较简单,但是需要注意到一些潜在的风险。首先,如果股票在短时间内出现大幅上涨,那么其涨幅可能会超过2.6倍,从而导致该股票不符合该策略的要求。其次,如果股票在一段时间内没有出现任何涨停,那么该策略可能会错过一些潜在的投资机会。
为了优化这个策略,我们可以考虑以下几点:
- 适当放宽涨幅的要求,例如将涨幅限制放宽到3倍,这样可以增加策略的适用范围。
- 将时间限制放宽到6个月,这样可以增加策略的适用范围。
- 将高点的要求放宽到三天内出现的历史最高价,这样可以增加策略的适用范围。
最终的选股逻辑如下:
def select_stock():
# 获取所有A股股票的代码和名称
stocks = get_stocks()
# 初始化一个空列表,用于存储符合条件的股票
selected_stocks = []
# 遍历所有股票
for stock in stocks:
# 获取股票的历史最高价和涨幅
high_price, high_price_date, gain = get_stock_price(stock)
# 如果股票在两天内出现的历史最高价是其历史最高价,并且在这两天内的涨幅要小于2.6倍,同时涨幅要大于-5%,则将其加入到列表中
if high_price_date - datetime.timedelta(days=2) in stock.history['date'] and stock.history['close'][high_price_date - datetime.timedelta(days=2)] > high_price * 1.26 and stock.history['close'][high_price_date - datetime.timedelta(days=2)] > stock.history['close'][high_price_date - datetime.timedelta(days=1)] * 0.95:
selected_stocks.append(stock)
# 如果列表为空,则返回空列表
if not selected_stocks:
return []
# 如果列表不为空,则随机选择其中
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
