问财量化选股策略逻辑
选股逻辑为RSI指标小于65、七连阴、昨日9:15匹配价跌停,选取符合条件的股票。
选股逻辑分析
该选股逻辑基于技术指标和市场情况,选取RSI指标小于65、七连阴、昨日9:15匹配价跌停的股票。昨日9:15匹配价跌停可能反映出公司近期业绩不好或市场情绪疲软,有可能会给股价带来较大的压力。
有何风险?
该选股逻辑同样忽略了公司的基本面因素,可能错过一些表现不错但近期短时价格出现大幅波动的股票,同时昨日9:15匹配价跌停可能不是股票真实价值的正确反映,因此可能存在选股不准确的风险。
如何优化?
可以将基本面因素纳入选股逻辑中,如增加PEG或市盈率等因素的筛选条件。同时可以将昨日9:15匹配价跌停作为参考因素之一,并结合其他因素进行更全面的判断,以此提高选股准确性。
最终的选股逻辑
选股逻辑为RSI指标小于65、七连阴、昨日9:15匹配价跌停,市值在50-100亿之间的股票。
同花顺指标公式代码参考
- RSI指标公式:RSI(CLOSE, N),其中N代表RSI的计算天数,默认为14;
- 均线指标公式:MA(CLOSE, M) ,其中M为均线的计算天数,默认为5;
- MACD指标公式:DIF=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG),DEA=EMA(DIF,M),MACD=(DIF-DEA)*2,其中SHORT、LONG、M分别为MACD指标中的快线、慢线和周期,默认取值分别为12、26、9;
- KDJ指标公式:K= SMA(STOCHRSI(HIGH,LOW,CLOSE,9,3),3,1),D=SMA(K,3,1),J=3*K-2*D。
python代码参考
import akshare as ak
def pick_stocks():
stock_list = ak.stock_zh_a_spot_em()
picked_stocks = []
for stock_code in stock_list.index:
if "SH688" in stock_code or "SZ300" in stock_code:
continue
# 判断RSI小于65
rsi = ak.stock_zh_index_daily_tx(stock_code, start_date="20210101")
if rsi is None or len(rsi) < 14 or rsi.iloc[-1]["rsi14"] >= 65:
continue
# 判断七连阴
history_quotes = ak.stock_zh_a_hist(stock_code, start_date="20210101")
if history_quotes is None or len(history_quotes) < 7 or \
sum(history_quotes[-7:]["close"] <= history_quotes[-7:]["open"]) != 7:
continue
# 判断昨日9:15匹配价是否跌停
match_quotes = ak.stock_zh_a_match_detail(symbol=str(stock_code), trade_date=ak.date_last_day())
if match_quotes is None or "成交价格" not in match_quotes.columns or \
match_quotes.iloc[0]["成交价格"] > stock_list.loc[stock_code]["最新价"] or \
match_quotes.iloc[0]["成交价格"] >= stock_list.loc[stock_code]["最新价"] * 0.9:
continue
#筛选出符合市值条件的股票
stock_info = ak.stock_info_a_code(stock_code)
if stock_info is None or stock_info["circulation_market_value"] is None or \
stock_info["circulation_market_value"] < 5000000000 or \
stock_info["circulation_market_value"] > 10000000000 or \
stock_info["circulated_shares"] is None or \
stock_info["exchange"] != "SH":
continue
# 输出符合条件的股票代码、名称、RSI、连阴天数、昨日9:15匹配价是否跌停
picked_stocks.append({"code": stock_code, "name": stock_list.loc[stock_code]["名称"],
"rsi14": rsi.iloc[-1]["rsi14"], "连阴天数": 7,
"是否昨日9:15匹配价跌停": True})
for stock in picked_stocks:
print(f"{stock['code']}、{stock['name']}、RSI14: {stock['rsi14']:.2f}、连阴天数: {stock['连阴天数']}、昨日9:15匹配价是否跌停: {stock['是否昨日9:15匹配价跌停']}")
该选股逻辑在提出选股逻辑基础上增加了股票市值和昨日9:15匹配价跌停的筛选条件,通过新增筛选条件可以更精准地选取符合自己需求的股票。同时,后续还可以根据市场情况和个人需求进行调整和优化。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


