问财量化选股策略逻辑
本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选取主板股票,今日最大跌幅在-4%到-5%之间的股票进行投资,期望获得超额收益。
选股逻辑分析
该选股策略综合考虑了技术面和市场风险等因素。RSI指标小于65代表股票处于超卖状态,有望迎来反弹;今日上涨幅度大于1%则代表该股票在短期内有上涨动能;选择今日最大跌幅在-4%到-5%之间的股票,为根据市场风险而制定的规则,旨在控制风险,在市场回调时寻找价值回归潜力。
有何风险?
该选股策略存在一定的风险,因为它忽视了一系列其他因素如财务数据和行业风险等。此外,采用固定的规则来选股,可能存在数据过度拟合的风险。
如何优化?
应该综合考虑更多的技术分析指标和基本面数据,并且结合市场环境和趋势,以寻找更具有长期投资价值的个股。建立更加完善和科学的选股模型,采用机器学习等算法来筛选股票。此外,还应该通过风控措施,如止损和分散投资组合,降低投资风险。
最终的选股逻辑
本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选取主板股票,今日最大跌幅在-4%到-5%之间的股票进行投资,注重长期投资价值和风险控制。
同花顺指标公式代码参考
// 建立选股语句
SELECT
a.*
FROM
(
stock_market_data a
JOIN stock_basic_data b ON a.stock_code = b.stock_code
)
JOIN (
SELECT
stock_code
FROM
stock_basic_data
WHERE
rsi < 65
AND today_increase_rate > 1
AND is_main = 1
AND today_min_rate < -4
AND today_min_rate > -5
) c ON a.stock_code = c.stock_code;
注意:is_main代表是否为主板股票。
python代码参考
# 导入需要使用的库
import pandas as pd
import tushare as ts
import talib as ta
# 选股函数
def stock_picking():
# 获取今日最大跌幅在-4%到-5%之间的主板股票信息
all_data = ts.get_stock_basics()
all_data = all_data[all_data['totalAssets'] > 0.1 * 10**10]
all_data = all_data[all_data['pb'] < 3]
all_data = all_data[all_data['pe'] > 0]
all_data = all_data[all_data['pe'] < 100]
all_data = all_data[~all_data.index.str.contains('ST', regex=False)]
yesterday_data = ts.get_day_all(date='2022-01-10')
daily_rate = yesterday_data['trade'] / yesterday_data['open'] - 1
max_daily_rate = daily_rate.max()
filter_data = all_data[(daily_rate > -5) & (daily_rate < -4) & (daily_rate == max_daily_rate)]
# 计算RSI指标,并筛选RSI指标小于65的、非ST股票
rsi_data = pd.DataFrame(columns=['rsi'])
for code in filter_data.index.tolist():
history_data = ts.pro_bar(ts_code=code, adj='qfq', freq='D', start_date='20180101', end_date='20220110')
rsi = ta.RSI(history_data['close'], timeperiod=14)
rsi_data.loc[code] = rsi.values[-1]
filter_data = filter_data[rsi_data['rsi'] < 65]
# 计算涨跌幅度和选股依据,并返回选股结果
yesterday_data = ts.get_day_all(date='2022-01-10')
daily_return = yesterday_data['trade'] / yesterday_data['open'] - 1
yesterday_data['daily_return'] = daily_return
filter_data = filter_data.join(yesterday_data.set_index('code'), on='code')
stock_list = filter_data.index.tolist()
return stock_list
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


