问财量化选股策略逻辑
选股逻辑:选出RSI指标小于65,昨日非涨停板,近25个交易日有单日涨幅大于等于百分之10的股票。
选股逻辑分析
该选股逻辑同样以技术指标为条件,选出RSI指标小于65的股票,表示股票当前处于相对低位,具有较高的反弹潜力。同时,通过过滤昨日涨停板股票,避免低买高卖的情况。在此基础上,加入了近25个交易日内单日涨幅大于等于10%的条件,选出股价波动较大的股票,有更大的投资机会。
有何风险?
该选股策略同样忽略了股票的基本面因素,可能会导致选出的股票存在一定风险。同时,过于注重股价波动较大的股票也会带来更高的投资风险。
如何优化?
可以结合其他技术指标的综合判断,如KD指标、MACD指标等,并加入股票的基本面因素,如业绩、市盈率、市净率等,综合评估选中标的的投资潜力。此外,可以考虑增加投资风险控制机制,如设立止盈或止损位,避免过度风险。
最终的选股逻辑
选股逻辑:选出RSI指标小于65,昨日非涨停板,近25个交易日内有单日涨幅大于等于百分之10,市盈率小于60的股票。
同花顺指标公式代码参考
C1: RSI(CLOSE,14) < 65
C2: NOT(REF(涨跌幅,1) >= 9.9)
C3: COUNT((CLOSE - OPEN) / OPEN >= 0.1, 25) >= 1
C4: (市盈率<60)
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]:
if stock_k_data['涨跌幅'].shift(1).iloc[-1] >= 9.9:
continue
if '机器人' not in stock_pool[stock_pool['代码'] == code]['板块'].iloc[0]:
continue
rsi = talib.RSI(stock_k_data['收盘价'], timeperiod=14)
if rsi.iloc[-1] >= 65:
continue
price_diff = (stock_k_data['收盘价'] - stock_k_data['开盘价']) / stock_k_data['开盘价']
count = (price_diff >= 0.1).rolling(25).sum().iloc[-1]
if count < 1:
continue
if stock_pool[stock_pool['代码'] == code]['市盈率'].iloc[0] >= 60:
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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
