问财量化选股策略逻辑
选股逻辑:rsi小于65,上市大于1年,10天内涨停天数大于2的股票。
选股逻辑分析
该选股逻辑结合了技术面和市场情绪的因素。RSI指标用于判断股票短期内的超买或超卖情况,选出近期相对较弱的股票;选股时限制上市时间,主要是基于新上市的公司一般业绩不稳定、信息披露不及时等因素;通过统计10天内的涨停天数,可以判断股票的市场情绪和热度,当涨停天数大于2,可以判定股票处于一定的上涨行情中。综合这些因素,可以选出短期相对弱势但市场情绪正常的股票,具有一定的投资价值。
有何风险?
该选股策略过于依赖市场情绪和短期涨停行情,存在风险较高的问题,当市场情绪转向或涨停行情结束,该选股策略的选股结果可能失效。同时,该策略的短时特性以及不够稳健,容易受到市场波动、其他突发事件等因素的影响。
如何优化?
可以结合其他技术和基本面指标进行筛选,如MACD指标、成交量等指标,综合判断股票的走势和价值。同时,可以根据不同股票的特点,调整近期涨跌幅度阈值和涨停天数,制定相应的选股策略。需注意该策略的风险控制,择机买入或卖出股票,尽量规避市场风险。
最终的选股逻辑
选股逻辑:rsi小于65,上市大于1年,10天内涨停天数大于2的股票。
同花顺指标公式代码参考
C1: MAINBORADINFO(1) == 1 AND ZuiXinJia >= 10 AND ZuiXinJia <= 100 AND ZuiXinJia/LiShiJiaGe > 0.9 AND HSL > 0.1
C2: RSI(CLOSE, 14) <= 65
C3: COUNT(IF(REF(HIGH, -1) == REF(LOW, -1) AND HIGH / REF(CLOSE, -1) >= 1.1 AND REF(CLOSE, 0) / REF(CLOSE, -1) <= 1.098, 1, 0), 10) >= 2
SELECT IF(C1 AND C2 AND C3, 1, 0)
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().astype({'证券代码':'str'})['证券代码'].tolist()
for code in stock_pool:
# 获取股票基本信息和财务数据
stock_info = ak.stock_info_a_name(code).reset_index(drop=True)
if len(stock_info) == 0:
continue
stock_info.rename(columns={"0": "name", "4": "industry"}, inplace=True)
stock_info['code'] = code
stock_info = stock_info[['code', 'name', 'industry']]
finance = ak.stock_financial_analysis_indicator(stock=code)
if len(finance) == 0:
continue
finance = finance[finance['报告日期'].str.contains('12-31')].reset_index(drop=True)
if len(finance) == 0:
continue
# 剔除上市时间较短的股票
if (stock_info['上市时间'] > 1):
# 计算RSI和涨停天数
df = ak.stock_zh_a_daily(symbol=code, adjust="qfq")
if len(df) == 0:
continue
if (len(df) < 12):
continue
df['rsi'] = talib.RSI(df['收盘价'].values, timeperiod=14)
df['pct_change'] = df['收盘价'].pct_change()
df['limit_up'] = (df['收盘价'] / df['开盘价'].shift(1) > 1.1) & (df['收盘价'] / df['收盘价'].shift(1) <= 1.098)
df['limit_count'] = df['limit_up'].rolling(10).sum()
if (df['rsi'].iloc[-1] <= 65) and (df['limit_count'].iloc[-1] > 2):
result_df = result_df.append(stock_info, ignore_index=True)
return result_df
Python依赖库
-
pandas
-
akshare
-
talib
## 如何进行量化策略实盘? 请把您优化好的选股语句放入文章最下面模板的选股语句中即可。 select_sentence = '市值小于100亿' #选股语句。 模板如何使用? 点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。 ## 如果有任何问题请添加 下方的二维码进群提问。 

