问财量化选股策略逻辑
选股逻辑:选出RSI小于65,下午大单净流入,且最近10天内涨停天数大于2的股票。
选股逻辑分析
该选股逻辑以RSI指标和下午大单净流入为辅助指标,反映了该股票的投资价值。同时,引入了涨停天数指标,筛选出最近热度较高的股票,主要关注投机效应。通过综合运用多个指标,减少了选股的随意性,提高了筛选的可靠性。
有何风险?
由于选股逻辑中引入了较多的量化指标,可追踪性较强,可能会被过度利用,存在一定的风险。
如何优化?
可以考虑引入更多的基本面指标,比如净利润增长率、资产负债率等,结合行业和市场环境对选股逻辑进行修正和补充。尝试增加资金流入、市值等指标,提高选股逻辑的严谨性。
最终的选股逻辑
选出今日下午大单净流入,且RSI小于65,最近10天内涨停天数大于2的股票。
同花顺指标公式代码参考
C1: AFTERNOON(NETFLOW) > 0
C2: RSI(CLOSE, 14) < 65
C3: SUM(IF(HIGH==REF(HIGH, -1), 1, 0), 10) > 2
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
if sum((stock_k_data['最高价'] == stock_k_data['最高价'].shift(1))[1:11]) <= 2:
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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


