问财量化选股策略逻辑
选股逻辑:选出RSI小于65,下午大单净流入,且20日均线大于120日均线的股票。
选股逻辑分析
该选股逻辑以RSI指标和下午大单净流入为辅助指标,较全面地反映了该股票的投资价值。同时,引入均线指标,重点关注最近的短期和长期的走势,结合趋势分析,增强对股票的判断力。
有何风险?
该选股策略没有考虑股票的基本面信息,可能存在一定的风险。同时,由于均线指标在股票市场中比较常见,该选股策略容易被市场参与者利用形成一定的风险。
如何优化?
可以引入其他指标,如市盈率、股息率等指标,结合行业因素和基本面指标,筛选出股票的潜在价值。同时,可以尝试将均线参数设置为一个可调参数,使其在选股过程中具有灵活性。
最终的选股逻辑
选出今日下午大单净流入,且RSI小于65,20日均线大于120日均线的股票。
同花顺指标公式代码参考
C1: AFTERNOON(NETFLOW) > 0
C2: RSI(CLOSE, 14) < 65
C3: MA(CLOSE, 20) > MA(CLOSE, 120)
C4: TOTAL_VAL >= 2e8
C5: MARKET='SZ' OR MARKET='SH'
SELECT * FROM (
SELECT STOCK_LIST.*, GET_RANKING_BY_HEAT() AS RANKING
FROM STOCK_LIST
) RESULT
WHERE C1 AND C2 AND C3 AND C4 AND C5
ORDER BY RANKING DESC
python代码参考
import pandas as pd
import akshare as ak
import talib
def get_ranking_by_heat(df):
stocks_em = ak.stock_heat_rank(indicator="今日热点", market="sz")
stocks_list = stocks_em['名称']
df['RANKING'] = df['名称'].apply(lambda x: stocks_list.index(x)+1 if x in stocks_list else 0)
df = df[df['RANKING'] > 0]
return df
def get_stock_list():
result_df = pd.DataFrame()
stock_list = ak.stock_zh_a_spot_em()
stock_list = stock_list[stock_list['市值'] >= 2e8]
for code in stock_list['代码']:
stock_k_data = ak.stock_zh_a_daily(code=code, adjust="hfq")
netflow = stock_k_data.iloc[-3:]['净流入量']
if any(netflow <= 0.05) or stock_k_data.iloc[-1]['净流入量'] <= 0:
continue
rsi = talib.RSI(stock_k_data['收盘价'], timeperiod=14)
if rsi.iloc[-1] >= 65:
continue
ma_20 = talib.MA(stock_k_data['收盘价'], timeperiod=20)
ma_120 = talib.MA(stock_k_data['收盘价'], timeperiod=120)
if ma_20.iloc[-1] <= ma_120.iloc[-1]:
continue
result_df = result_df.append(stock_k_data)
result_df = get_ranking_by_heat(result_df)
result_df.sort_values(by='RANKING', ascending=False, inplace=True)
return result_df.head(5)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


