问财量化选股策略逻辑
选股逻辑:选择RSI小于65、500日内至少2次涨停、换手率在3%到12%之间的股票。
选股逻辑分析
该选股策略基于技术面指标,通过RSI的筛选确定股票的低位震荡,再通过换手率筛选确定股票市场的流动性,最后通过500日内至少2次涨停的条件来挖掘股票的潜在上涨趋势。
有何风险?
该选股逻辑存在以下风险:1)对换手率的筛选过于简单,无法全面反映股票的市场流动性。2)单一技术指标的筛选保守,无法全面反映股票的技术面状况。
如何优化?
可结合基本面指标和其他技术指标如KDJ、布林线等进一步筛选。
最终的选股逻辑
在RSI小于65的基础上,结合换手率在3%到12%之间和500日内至少2次涨停的条件,在深入挖掘股票的基本面和其他技术指标的基础上,找到潜力股。
同花顺指标公式代码参考
C1: RSI(C, 14) < 65 AND CYCCONT(C > REF(C, 1), 500) >=2 AND (VOL / (CAPITAL * 10000)) * 100 >= 3 AND (VOL / (CAPITAL * 10000)) * 100 <= 12 SELECT * FROM (SELECT CODE, NAME, GGCX, VOL, CAPITAL FROM STOCK_LIST) WHERE C1
Python代码参考
import pandas as pd
import akshare as ak
import talib
def get_stock_list():
stock_list = ak.stock_zh_a_spot_em()
stock_list['RSI'] = talib.RSI(stock_list['现价'], timeperiod=14)
stock_detail = ak.stock_zh_a_hist_sina()
stock_detail = stock_detail[stock_detail['涨停'] != 0]
stock_detail = stock_detail[stock_detail['日期'] < (pd.Timestamp.today() - pd.Timedelta(days=1))]
stock_detail = stock_detail[stock_detail['日期'] > (pd.Timestamp.today() - pd.Timedelta(days=500))]
stock_detail = stock_detail[['代码', '成交量']]
stock_list = pd.merge(stock_list, stock_detail, on='代码', how='left')
stock_list['换手率'] = (stock_list['成交量'] / (stock_list['总股本'] * 10000)) * 100
stock_list['涨停次数'] = stock_list['涨停'].rolling(window=2).sum()
cond1 = stock_list['RSI'] < 65
cond2 = stock_list['涨停次数'] >= 2
cond3 = (stock_list['换手率'] >= 3) & (stock_list['换手率'] <= 12)
stock_list = stock_list[cond1 & cond2 & cond3]
return stock_list[['代码', '名称', '现价', '成交量', 'RSI', '涨停次数', '换手率']]
get_stock_list()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


