问财量化选股策略逻辑
选股逻辑为:振幅大于1,换手率>2%且<9%,竞价主力净买大于0。该选股策略主要以技术面指标为主,即振幅、换手率和竞价主力净买入,以筛选出符合标准的股票。
选股逻辑分析
该选股逻辑以技术面指标为主,通过振幅和换手率来判断股票的走势和市场认可度,同时加入竞价主力净买入的判断,以判断机构资金的买入情况,筛选出符合条件的标的。
有何风险?
该选股策略仍然以技术面指标为主,而且主要是中短期的技术面指标,同时竞价主力净买入可能存在误判。另外,在低流动性时期或市场横盘震荡时,筛选出来的标的可能会较少。
如何优化?
为减少筛选出来的标的中的误判,可以加入更多的技术面指标,如成交量、资金流向等指标,以充分判断股票的走势情况和资金动向。同时,对于竞价主力净买入,可以做进一步的细分,如主力净买入的次数或者主力净买入的比例等指标。此外,可以适当放宽一些筛选条件,如振幅和换手率的标准,以增加筛选出标的的数量。
最终的选股逻辑
选股条件为:振幅大于1,换手率>2%且<9%,竞价主力净买入大于0,并加入更多的技术面和基本面因素的综合判断以及风险管理策略。
同花顺指标公式代码参考
选股条件为:振幅大于1,换手率>2%且<9%,竞价主力净买入大于0。
C1: ABS((HIGH/LOW-1)*100)>=1;//振幅大于1
C2: TURNOVER>2 AND TURNOVER<9;//换手率大于2%小于9%
C3: A1>0;//竞价主力净买大于0
SYMBOL: C1 AND C2 AND C3;
其中,竞价主力净买入可以参考如下: A1=JBPARENTD-ZBparentD
Python代码参考
import pandas as pd
import tushare as ts
def select_stocks(length):
ts.set_token('your token')
pro = ts.pro_api()
# 获取股票数据
stock_data = pro.stock_basic(list_status='L', exchange='SSE', fields='ts_code,symbol,name,industry,list_date')
current_date = '20220308'
# 筛选符合条件的股票
selected_stocks = []
for index, row in stock_data.iterrows():
code = row['ts_code']
info = {}
info['code'] = code
info['name'] = row['name']
# 排除科创板股票
industry = row['industry']
if industry.startswith('688'):
continue
# 获取技术数据
tech_data = pro.daily(ts_code=code, start_date='20190101', end_date=current_date, fields='high,low,close,vol')
if tech_data.empty or tech_data['low'].shift(1).dropna().reset_index(drop=True).rename('last_low') > tech_data.iloc[1:, 3].reset_index(drop=True):
continue
# 获取竞价主力净买入
jbp_data = pro.moneyflow(ts_code=code, start_date='20190101', end_date=current_date, fields='buy_jb, sell_jb')
if jbp_data.empty or jbp_data['buy_jb'].iloc[-1] <= jbp_data['sell_jb'].iloc[-1]:
continue
# 获取其它技术指标
if tech_data.iloc[-1]['high'] - tech_data.iloc[-1]['low'] <= 0 or tech_data.iloc[-1]['vol'] / pro.stock_basic(ts_code=code).iloc[0]['total_share'] <= 0.02 or tech_data.iloc[-1]['vol'] / pro.stock_basic(ts_code=code).iloc[0]['total_share'] >= 0.09:
continue
# 判断30日均线向上
ma_30 = tech_data['close'].rolling(window=30).mean()
if ma_30.isnull().values.any():
continue
if ma_30.iloc[-1] < ma_30.iloc[-2]:
continue
selected_stocks.append(info)
if len(selected_stocks) >= length:
break
return selected_stocks
致辞
本次问答为问财量化选股策略逻辑的第七十篇,该选股策略主要以技术面指标为主,加入竞价主力净买入的判断条件,以筛选出符合标准的股票。在实际选股中,需要充分考虑市场环境、行情风险、基本面等多个因素,建立稳健的选股体系,以获得更稳定的投资收益。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
