问财量化选股策略逻辑
选股逻辑为:选择换手率在3%-12%、买一量大于卖一量并且RSI小于65的股票。
选股逻辑分析
该选股逻辑在考虑了股票交易情况、买卖盘情况等多方面因素的基础上,加入了RSI因素。选择换手率在3%-12%的股票有一定的稳健性,买一量大于卖一量说明市场看涨情况较好,而RSI小于65代表股票的超买程度不高,有一定的上涨空间。
有何风险?
该选股逻辑存在可能被市场短期噪音所影响的风险。同时,RSI指标也可能带来误判,如果股票进入超买状态,可能无法及时把握卖出机会,容易造成投资损失。
如何优化?
可以加入其他技术指标如MACD、KDJ等来提高选股的准确性,同时也可以结合基本面因素如PE、PB等容量因素来进行选股。另外,可以采用人工智能等方法进行股票筛选,以更全面的方式考虑股票的投资价值。
最终的选股逻辑
选择换手率在3%-12%、买一量大于卖一量并且RSI小于65的股票。
同花顺指标公式代码参考
买一量大于卖一量:SELECT(BIDV1>ASKV1)
换手率在3%-12%:SELECT(TURN<N>AVG(TURN,N) AND TURN<N>3 AND TURN<N<12)
RSI小于65:SELECT(RSI(6)<65)
选股:SELECT(CODE AND 买一量大于卖一量 AND 换手率3%-12% AND RSI小于65)
python代码参考
import pandas as pd
import tushare as ts
def select_stocks():
pro = ts.pro_api()
# 查询饮料、酒类上市公司
df1 = pro.stock_basic(exchange='', list_status='L', fields='ts_code,name,industry')
df1 = df1[(df1['industry'].str.contains('饮料') & df1['industry'].str.contains('酒'))]
# 查询300和688开头的股票
df1 = df1[(df1['ts_code'].str.startswith('300')) | (df1['ts_code'].str.startswith('688'))]
# 查询股票挂买一量大于卖一量并且成交额占流通市值比例大于1%
df2 = pro.market_detail(symbol='', trade_date='20220322')
df2 = df2[(df2['bid_vol'] > df2['ask_vol']) & (df2['amt'] / df2['pre_close'] > 0.01)]
df2 = pd.merge(df2, df1[['ts_code']], on='ts_code')
# 查询振幅大于1%
df3 = pro.daily(ts_code='', start_date='20220322', end_date='20220322', fields='ts_code,open,high,low')
df3['amplitude'] = abs((df3['high'] - df3['low']) / df3['open'])
df3 = df3[(df3['amplitude'] > 0.01)]
df3 = pd.merge(df3, df2[['ts_code']], on='ts_code')
# 查询RSI指标
df4 = pro.index_daily(ts_code='000300.SH', trade_date='20220322', fields='rsi6')
df4 = df4[(df4['rsi6'] < 65)]
df4 = pd.merge(df4, df3[['ts_code']], on='ts_code')
# 查询换手率在3%~12%
df5 = pro.daily_basic(ts_code='', trade_date='20220322', fields='ts_code,turnover_rate_f')
df5 = df5[(df5['turnover_rate_f'] >= 3) & (df5['turnover_rate_f'] <= 12)]
df5 = pd.merge(df5, df4[['ts_code']], on='ts_code')
return df5['ts_code']
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


