问财量化选股策略逻辑
选股逻辑:选取RSI小于65、PE大于0、近25个交易日有单日涨幅大于等于10%的股票。
选股逻辑分析
该选股策略综合考虑了技术面和基本面因素,并注重了股票短期内的表现。选取RSI小于65、PE大于0、近25个交易日有单日涨幅大于等于10%的股票,以期望能够在未来时间内获得投资收益。
有何风险?
该选股策略过于依赖股票短期内的表现,忽略了长期的基本面因素,可能存在过度交易和过拟合的风险。同时,单单根据涨幅来选股,也容易受到市场波动和机构内部搅动的影响,存在极高的样本噪声和误导。
如何优化?
可以考虑结合其他指标,如MACD、KDJ等技术指标,或者加入股票市值、涨停板数、PE环比等基本面因素,以全面衡量股票的准确价值。此外,为避免过度交易,在股票评价过程中,可以加入市场心理和风险管理因素,提高综合投资效益。
最终的选股逻辑
选取RSI小于65、PE大于0、近25个交易日有单日涨幅大于等于10%的股票。(该选股策略完全可以根据实际需要进一步优化,如加入其他技术指标或基本面因素等)
同花顺指标公式代码参考
- RSI公式:RSI(n)=100×(RS/(1+RS)),其中,RS=N日内收盘价涨数和的平均值除以跌数和的平均值,N取6或12或24等周期。
- 单日涨幅公式:涨幅=(今日收盘价-昨日收盘价)/昨日收盘价*100%。
Python代码参考
import pandas as pd
import tushare as ts
def get_stock_list(rsi_threshold=65, pe_threshold=0, inc_threshold=0.1, window=25):
stock_list = pd.DataFrame(columns=['股票代码', '名称'])
stock_data = ts.get_today_all()
for _, row in stock_data.iterrows():
symbol = row['code']
name = row['name']
hist_data = ts.get_k_data(symbol, ktype='D')
if hist_data is None or len(hist_data) < window:
continue
if hist_data.iloc[-1]['close'] < hist_data.iloc[-1-window:-1]['low'].min() + (hist_data.iloc[-1-window:-1]['high'].max() - hist_data.iloc[-1-window:-1]['low'].min()) / 100 * 21:
continue
pe = ts.get_stock_basics().loc[symbol]['pe']
if pe < pe_threshold:
continue
inc = (hist_data.iloc[-1]['close'] - hist_data.iloc[-1]['close'].shift(1)) / hist_data.iloc[-1]['close'].shift(1)
if (inc.iloc[-window:] >= inc_threshold).any():
continue
rsi = 100 - 100 / (1 + hist_data['close'].diff().fillna(0).apply(lambda x: max(x, 0)).rolling(window=6).mean() / hist_data['close'].diff().fillna(0).apply(lambda x: max(-x, 0)).rolling(window=6).mean())
if rsi.iloc[-1] > rsi_threshold:
continue
stock_list = stock_list.append({'股票代码':symbol, '名称':name}, ignore_index=True)
return stock_list
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


