问财量化选股策略逻辑
选股逻辑:选出RSI指标小于65,昨日非涨停板,且年初到昨日涨幅超过0的股票。
选股逻辑分析
该选股逻辑通过增加年初到昨日涨幅超过0的条件,来选择具有较好的涨幅表现的股票。同时,选出RSI指标小于65和前一日非涨停板的条件也能够基本预测一些股票的上涨趋势,有助于投资人筛选出优质的股票。
有何风险?
该选股逻辑在去除一部分风险的同时,仍然存在市场风险和单一板块偏好的风险,导致选股策略的优劣可能会受到市场整体行情和板块轮动的影响,不能够完全预测股票价格的变动,需要对股票市场风险和个股基本面进行综合考虑。
如何优化?
可以在选股逻辑中增加股票的市盈率、市净率等基本面因素,以更加全面地判断股票的价值。同时,应当更加关注信息面的变化和市场走势,适时调整选股逻辑以达到更好的投资效果。
最终的选股逻辑
选股逻辑:选出RSI指标小于65、昨日非涨停板、且年初到昨日涨幅超过0的股票,综合考虑股票的基本面、市场情况等多种因素。
同花顺指标公式代码参考
C1: RSI(CLOSE,14) < 65
C2: NOT(REF(涨跌幅, 1) >= 9.9)
C3: YEAR(日期) == YEAR(GET_TRADE_DATE_PREV(TRADING_DATE))
C4: 涨跌幅 >= 0
SELECT * FROM STOCK_LIST
WHERE C1 AND C2 AND C3 AND C4
ORDER BY DESCENDING(个股热度)
python代码参考
import pandas as pd
import akshare as ak
import talib
def get_stock_list():
result_df = pd.DataFrame()
# 获取个股热度排行榜
stock_pool = ak.stock_zh_a_spot_em()
stock_pool = stock_pool[['代码','名称','流通市值','换手率','涨跌幅','流通股本','日期']]
stock_pool.sort_values(by='流通市值', ascending=False, inplace=True)
for code in stock_pool['代码'][:500]:
# 判断是否为涨停股、昨日收益率等条件
stock_k_data = ak.stock_zh_a_minute(symbol=code, period='5', adjust="hfq")
if stock_k_data['涨跌幅'].shift(1).iloc[-1] >= 9.9:
continue
if stock_k_data['收益率'].shift(1).iloc[-1] <= 0:
continue
# 判断RSI指标
rsi = talib.RSI(stock_k_data['收盘价'], timeperiod=14)
if rsi.iloc[-1] >= 65:
continue
# 判断是否年初到昨日涨幅超过0
year_start = pd.to_datetime(f'{pd.to_datetime(stock_pool["日期"].iloc[0]).year}-01-01')
year_change = (stock_k_data['收益率']+1).cumprod().iloc[-1] / (stock_k_data['收益率']+1).cumprod()[year_start:].iloc[0] - 1
if year_change <= 0:
continue
# 筛选出符合条件的股票
result_df = result_df.append(stock_k_data, ignore_index=True)
result_df.sort_values(by='个股热度', ascending=False, inplace=True)
return result_df
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


