问财量化选股策略逻辑
该选股策略包含三个条件:
- 振幅大于1;
- 至少5根均线重合;
- 今日最低价小于昨日最低价。
选股逻辑分析
该选股策略主要关注股票的技术面因素,通过振幅和均线等指标进行筛选,并加入了今日最低价小于昨日最低价的条件,可以较好的判断出股票价格的下跌趋势。但该选股策略没有考虑基本面因素等其他因素,存在潜在风险。
有何风险?
该选股策略没有考虑其他基本面因素以及行业板块等要素,可能会忽略整体股市行情和对应行业板块的影响,存在一定风险。同时,仅仅考虑今日最低价小于昨日最低价可能会漏选部分股票,比如股价长期处于下跌趋势但近期存在反弹,或股价刚开始下跌但还没有创出新低的情况也可能会被筛选掉。
如何优化?
为提高选股策略的准确性和稳定性,建议该选股策略的进一步优化方向为:
- 加强基本面因素和行业板块因素的考虑,尽可能立足于全局股市行情;
- 按照实际需要进行灵活筛选、细分,如对不同类型的股票分别进行筛选等;
- 考虑特定情况下对选股策略的调整,如针对不同市场环境进行因素权重的调整,建立灵活的选股模型。
最终的选股逻辑
综合以上分析,建议优化后的选股逻辑为:
- 振幅大于1;
- 至少5根均线重合;
- 今日最低价小于昨日最低价;
- 结合基本面和行业板块等要素进行优选,以达到较好的整体选股效果;
- 考虑对不同类型的股票进行不同筛选,进一步提高准确性和稳定性。
同花顺指标公式代码参考
无
python代码参考
import pandas as pd
import tushare as ts
import talib
def get_stock_pool(start_date, end_date):
# 获取所有股票代码
df = ts.get_stock_basics()
codes = df.index.tolist()
result = pd.DataFrame()
for code in codes:
# 振幅大于1
bars_all = ts.get_hist_data(code, start='2021-01-01')
close = bars_all['close'].values
high = bars_all['high'].values
low = bars_all['low'].values
amplitude = (high - low) / close
if amplitude[-1] < 0.01:
continue
# 均线
ma_5 = talib.MA(close, timeperiod=5)
ma_10 = talib.MA(close, timeperiod=10)
ma_20 = talib.MA(close, timeperiod=20)
ma_count = len(set([ma[-1] for ma in [ma_5, ma_10, ma_20]]))
if ma_count < 5:
continue
# 今日最低价小于昨日最低价
bars_all_last_two = ts.get_hist_data(code, start=(pd.to_datetime(end_date) - pd.Timedelta(days=1)).strftime('%Y-%m-%d'), end=end_date)
if bars_all_last_two['low'].tolist()[1] <= bars_all_last_two['low'].tolist()[0]:
continue
# 结合其他基本面指标进行筛选
# 加强对行业板块因素的考虑
# 选出的股票加入结果中
result = result.append({'code': code, 'name': df.loc[code]['name'], 'price': close[-1], 'industry': df.loc[code]['industry']}, ignore_index=True)
result = result.sort_values(by=['price'], ascending=False)
return result
注:代码仅供参考,具体选股逻辑和细节可根据实际需求进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
