问财量化选股策略逻辑
选股逻辑:振幅大于1,今日控盘>21,上市大于。
选股逻辑分析
该选股策略主要选股标准为振幅、控盘及上市时间,其中振幅和控盘受到市场资金的影响,上市时间则反映公司的发展历程。由此策略为投资者筛选出了更加稳健成长的公司。
有何风险?
该选股策略可能面临以下风险:
- 选股标准不够充分:该策略仅考虑了市场资金以及公司历史的发展情况,没有包含更多的公司基本面和技术面的指标;
- 时效性:该选股策略可能对市场的及时变化反应不够及时,具有时效性;
- 样本容易受市场噪音的影响:样本容易受到市场噪音的影响,导致策略的低准确度。
如何优化?
为了降低风险和提高策略的精度,我们可以通过以下措施进行优化:
- 扩大选股指标:引入更多的基本面和技术面的指标,如市盈率、市净率、ROE等指标;
- 数据筛选更加全面:在样本筛选中增加更多指标,针对筛选出的样本,进一步分析数据,从而减少市场噪音的干扰;
- 注意选股时间:策略优化后,需要根据市场实际情况选股时间进行调整。
最终的选股逻辑
基于以上分析和优化需求,我们最终选择以下选股逻辑:
- 振幅大于1;
- 今日控盘大于21;
- 上市时间大于5年;
- 市盈率小于20,市净率小于3,ROE大于10%。
同花顺指标公式代码参考
SET dib='a';
SET t=10;
C1 = AMP()>1;
C2 = CONTROLLING_SHARES_DAY_CHG()>21 AND dib>=(-0.15);
C3 = (DATE-FUNDAMENTAL_LISTDAY())/TIMESCALE_OF_DAY()>5*365;
C4 = PE()<20 AND PB()<3 AND ROE()>10;
SELECTOR = C1 AND C2 AND C3 AND C4;
RESULT = SORT(RANK(SELECTOR), 1)==1;
python代码参考
def select_stocks():
selected_stocks = []
all_trading_days = get_all_trade_days()
all_trading_days = sorted(all_trading_days, reverse=True)
for stock in get_all_stocks():
c1 = get_price(stock, end_date=datetime.now(), frequency='1d', fields='amplitude')[-1] > 0.01
c2 = abs(get_controlling_shareholders(stock, end_date=datetime.now(), frequency='1d')['controlling_shareholders_day_pct_change'][-1]) > 0.21
days = (datetime.now() - get_security_info(stock).start_date).days
if days >= 5 * 365:
c3 = True
else:
c3 = False
data = get_fundamentals(query(valuation, indicator).filter(valuation.code == stock), date=datetime.now())
if not data.empty:
c4 = data['valuation_pe'][0] < 20 and data['valuation_pb'][0] < 3 and data['indicator_roe'][0] > 0.1
if c1 and c2 and c3 and c4:
selected_stocks.append(stock)
selected_stocks = sorted(selected_stocks, key=lambda x: get_price_change(x, 1, datetime.now(), frequency='1d'), reverse=True)
return selected_stocks[:5]
result = select_stocks()
print(result)
以上Python代码仅供参考,具体实现还需要根据自己的需求进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
