问财量化选股策略逻辑
该选股策略包括三个条件:
- 振幅大于1
- 今日最低价小于昨日最低价
- 集中度70<20%
选股逻辑分析
该选股策略中的振幅大于1和今日最低价小于昨日最低价两个条件是技术面的考虑,表明股票处于一定的下跌周期中,有短期回调的潜力;集中度小于20%则是基本面的考虑,表明该公司分散持股比例,风险更小。
有何风险?
该选股策略忽略了公司的基本面和行业因素的重要性,如公司营收、净利润、毛利率、净利率、ROA、PE、PEG、市净率等指标,以及行业发展趋势、政策环境、经济形势等方面的分析,容易导致漏网之鱼。同时,过于简单化的选股逻辑容易被大型机构和内部人员利用,形成一定的市场风险。
如何优化?
该选股策略应充分考虑到基本面和行业因素的重要性,如加入毛利率、净利率、ROA、PE、PEG、市净率等指标的考虑,同时还应该从行业发展趋势、政策环境、经济形势等多方面进行分析,以获取更全面的信息。此外,集中度的考虑也应该根据行业特点进行调整。
最终的选股逻辑
基于以上分析,完善后的选股逻辑为:
- 振幅大于1,市场对波动剧烈的股票更感兴趣;
- 今日最低价小于昨日最低价,表明股票下跌趋势已经明显;
- 集中度小于20%,公司分散持股比例,风险更小。
同花顺指标公式代码参考
- 振幅大于1:amplitude > 1
- 今日最低价小于昨日最低价:low < ref(low, 1)
- 集中度小于20%:float(btop10) / float(totalshare) < 0.2
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:
bars = ts.get_today_ticks(code, 1)
if len(bars) > 0:
is_not_limit_up = not ts.is_n_day_limit_up(code, 2, 1)
hist_data = ts.get_hist_data(code)
if hist_data is not None:
market_cap = hist_data.iloc[-1]['close'] * df.loc[code]['totals'] / 1e8
is_right_industry = None # 自定义判断行业的条件
if is_right_industry:
concentration = df.loc[code]['btop10'] / df.loc[code]['totals']
else:
concentration = None
else:
market_cap = None
concentration = None
# 其他基本面指标
if is_not_limit_up and float(bars.iloc[0]['low']) < float(bars.iloc[0]['pre_close']) and market_cap is not None and market_cap >= 2 and concentration is not None and concentration < 0.2:
result = result.append({'code': code, 'name': df.loc[code]['name'], 'price': float(bars.iloc[0]['price']), 'market_cap': market_cap, 'concentration': concentration}, ignore_index=True)
result = result.sort_values(by='market_cap', ascending=False)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
