问财量化选股策略逻辑
选股逻辑:振幅大于1,今日控盘>21,30日平均线向上。
选股逻辑分析
该选股策略是从技术指标方面进行选股,通过考虑振幅、控盘和均线等指标,筛选出具有较高上涨可能的股票。其中均线指标是中长期的,能够较好地反映股票的走势和趋势方向,可以帮助股票大盘的综合评估。
有何风险?
该选股策略的主要风险来自于市场变动和行情变化等模糊因素,另外,由于该选股策略主要依赖于技术性指标,因此对于周期性因素容易被低估和误判,这可能在策略应用中导致选股精度下降。而且该策略没有考虑其他基本面因素,不能全面细致地评估股票资产。
如何优化?
为了降低风险并提高策略精度,应该从多个方面进行优化:
- 加入更多更稳定的基本面指标,如 PE、PB、ROE 等,对股票进行综合评估;
- 加入其他的技术指标如 MACD、RSI 等,增加策略的维度和覆盖面;
- 通过数据挖掘分析大量历史数据,调整技术指标参数,并合理确定阈值和权重;
- 增加选股市值和流通市值等因素,更全面地衡量股票的价值和长期发展潜力等。
最终的选股逻辑
考虑到风险和优化需求,完善后的选股逻辑应该包括:
- 振幅大于1;
- 今日控盘大于21;
- 当前价格位于30日均线之上;
- 财务数据及行业发展良好。
同花顺指标公式代码参考
以下是同花顺实现此策略的部分指标公式代码:
C1 = AMP() > 1;
C2 = ABS(CONTROLLING_SHARES_DAY_CHG()) > 21;
C3 = CLOSE() > MA(CLOSE(), 30);
SELECTOR = C1 AND C2 AND C3;
RESULT = REF(SORT(RANK(SELECTOR), 1), 0) == 0;
python代码参考
以下是Python实现此策略的部分代码:
def select_stocks():
selected_stocks = []
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
c3 = get_price(stock, end_date=datetime.now(), frequency='1d', fields='close')[-1] > get_ma(stock, end_date=datetime.now(), frequency='1d', timeperiod=30)['ma'][-1]
if c1 and c2 and c3:
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
result = select_stocks()
print(result)
以上Python代码仅供参考,具体实现还需要结合自身需求进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
