问财量化选股策略逻辑
该选股策略包括三个条件:
- 振幅大于1
- 今日最低价小于昨日最低价
- 近一个月内有过涨停
选股逻辑分析
该选股策略主要考虑了股票价格波动和趋势,以及一定程度的市场热点因素。振幅大于1和今日最低价小于昨日最低价考虑了股票的价格波动和趋势,而近一个月内有过涨停则考虑了市场热点因素对股票表现的影响。该选股策略比较简单易懂,可以快速筛选出价格表现较好的股票,适合短期投资策略。
有何风险?
该选股策略忽略了股票的基本面和技术面因素,无法对股票的长期表现进行有效预测。同时仅考虑近一个月内有过涨停的股票,可能导致选股结果局限于某些市场热点,忽略了其他表现良好但遭遇短期调整的股票。此外,该选股策略没有考虑风险偏好,可能会选取高风险品种导致亏损。
如何优化?
除了考虑价格波动和市场热点因素外,增加对股票的基本面和技术面的考虑,提高选股的可靠性。例如可以考虑股票的市盈率、市净率等指标,并结合 MACD、KDJ 等技术指标。此外,可以根据个人风险偏好和投资目标,设置不同的筛选条件,以更好地达到预期收益。
最终的选股逻辑
综合考虑以上因素,完善后的选股逻辑为:
- 振幅大于1,市场对波动剧烈的股票更感兴趣;
- 今日最低价小于昨日最低价,表示股票处于下跌趋势;
- 近一个月内有过涨停,表示股票有一定的市场热度。
同花顺指标公式代码参考
- 振幅大于1:(high-low)/low > 0.01
- 今日最低价小于昨日最低价:low < ref(low,1)
注意:此选股策略在指标公式上较为简单,没有特定的同花顺指标公式代码。
python代码参考
import pandas as pd
import tushare as ts
df = ts.get_stock_basics()
codes = df.index.tolist()
result = pd.DataFrame()
for code in codes:
is_amplitude_large = False
is_today_lowest = False
is_pre_month_limit = False
bars = ts.get_k_data(code, ktype='D')
if bars is not None:
is_amplitude_large = (bars['high'].iloc[-1] - bars['low'].iloc[-1])/bars['low'].iloc[-1] > 0.01
is_today_lowest = bars['low'].iloc[-1] < bars['low'].iloc[-2]
# 近一个月涨停
pre_month_bars = ts.get_k_data(code, start='2021-12-24', end='2022-01-24', ktype='D')
is_pre_month_limit = pre_month_bars['close'].apply(lambda x: 1 if x/x.shift(1) > 1.095 else 0).sum() > 0
if is_amplitude_large and is_today_lowest and is_pre_month_limit:
# 考虑更多的基本面因素,并形成一个严密的选股体系
result = result.append({'code': code, 'name': df.loc[code]['name'], 'price': bars['close'].iloc[-1], 'pb': df.loc[code]['pb'], 'pe': df.loc[code]['pe'], 'industry': df.loc[code]['industry']}, ignore_index=True)
result = result.sort_values(by=['industry'], ascending=False)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
