问财量化选股策略逻辑
选股逻辑:选取RSI小于65、PE大于0,并且市值在100亿以内的无亏损企业。
选股逻辑分析
本选股策略针对股票的技术面和基本面进行筛选,选择RSI小于65和PE大于0,在此基础上要求市值在100亿以内,同时要求公司过去几年没有出现过亏损,以确保股票有较好的成长性和稳定性,同时选股的范围相对较小,更加侧重大盘股票。
有何风险?
该选股策略可能会被市场波动和负面影响因素干扰,同时剔除了亏损公司,可能会忽略掉一些处于转型期或是处于业绩周期性波动的优质股票。
如何优化?
可以引入更多其他技术指标如MACD、KDJ等技术指标,同时可以适当增加PE、市值等基本面筛选条件来增加选股的可靠性和稳定性,同时考虑引入其他财务指标如ROE、净利润增长率等条件,以更全面综合判断一只股票的成长性、盈利性和投资价值。
最终的选股逻辑
选取RSI小于65、PE大于0,并且市值在100亿以内的无亏损企业。
同花顺指标公式代码参考
-
RSI公式:RSI(n)=100×(RS/(1+RS))其中,RS=N日内收盘价涨数和的平均值除以跌数和的平均值,N取6或12或24等周期。
-
PE公式:市价/每股收益
-
市值公式:流通市值或总市值
Python代码参考
import pandas as pd
import tushare as ts
def get_stock_list(rsi_threshold=65, pe_threshold=0, size_threshold=100, profitable=True):
stock_list = pd.DataFrame(columns=['股票代码', '名称'])
stock_data = ts.get_today_all()
for _, row in stock_data.iterrows():
symbol = row['code']
name = row['name']
market_cap = row['mktcap']
if not symbol.startswith('60'):
continue
if market_cap * size_threshold > 1e8:
continue
hist_data = ts.get_hist_data(symbol)
if hist_data is None:
continue
if hist_data['p_change'].iloc[-1] > rsi_threshold:
continue
pe = hist_data['turnover'].iloc[-1]/hist_data['volume'].iloc[-1]/ts.get_stock_basics().loc[symbol]['totals']
if pe < pe_threshold:
continue
if profitable:
if ts.get_profit_data(4, symbol)['roe'].iloc[-1] < 0:
continue
stock_list = stock_list.append({'股票代码':symbol, '名称':name}, ignore_index=True)
return stock_list
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


