问财量化选股策略逻辑
选股逻辑为:振幅大于1,大单净量排行,近一个月内有过涨停。该选股策略主要基于技术面来选股,利用振幅、大单净量和涨停板等指标来筛选符合条件的个股,以便于找到潜在的牛股。
选股逻辑分析
该选股逻辑同样以技术指标为基础,利用振幅、大单净量和涨停板等指标来选股。当振幅大于1时表明该股票波动较大,大单净量排行可以反映市场活跃程度,近一个月内有过涨停可以反映出市场对该个股的关注程度,符合这些条件的个股有可能存在大涨的潜力。选股逻辑简单明了,便于初学者使用。
有何风险?
该选股策略同样存在一定风险,可能会因为市场行情不符合预期、出现暴跌等因素导致投资收益下滑。此外,该选股方法未考虑公司基本面因素,导致选股结果可能存在较大的风险。而且单纯的以涨停板为选股条件,有可能会使投资者跟风买入,形成过度集中持仓的风险,需要注意风险控制和仓位管理。
如何优化?
优化方法可以考虑增加公司基本面指标和其他技术指标,如市净率和相对强弱指标、均线系统、KDJ指标等,以提高选股的精度和稳定性。另外,可以结合市场趋势,根据市场行情进行动态调整和优化。同时,加强风险控制和仓位管理等策略,控制持仓集中度和投资风险。
最终的选股逻辑
选股条件为:振幅大于1,大单净量排行,近一个月内有过涨停。需要加入公司基本面指标和其他技术指标来提高选股的精度和稳定性,并根据市场变化和个人需求进行动态调整和优化。同时,加入风险控制和仓位管理等策略,避免过度交易和投入过大的风险。
同花顺指标公式代码参考
SELECTED = REF(CLOSE, 1) < REF(HIGH, 2) AND REF(CLOSE, 1) < REF(MA(CLOSE, 30), 1) AND MASSINDEX() < 27 AND ABS((HIGH - LOW) / CLOSE) * 100 >= 2 AND RECENTLY_BIAO_TI()
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']
# 获取技术指标数据
tech_data = pro.query('daily', ts_code=code, start_date='20220208', end_date=current_date, fields='high,low,close,vol')
if len(tech_data) > 22:
# 计算技术指标
wrt = talib.WILLR(tech_data['high'].values, tech_data['low'].values, tech_data['close'].values, timeperiod=14)
ma30 = tech_data['close'].rolling(window=30).mean()
mid = talib.MIDPRICE(tech_data['high'].values, tech_data['low'].values, timeperiod=14)
ibs = talib.MASS(tech_data['high'].values, tech_data['low'].values, timeperiod1=9, timeperiod2=25)
amplitude = (tech_data.iloc[-1]['high'] - tech_data.iloc[-1]['low']) / tech_data.iloc[-1]['close'] * 100
# 判断是否符合条件
cond1 = tech_data.iloc[-2]['close'] < tech_data.iloc[-3]['high'] and tech_data.iloc[-2]['close'] < tech_data.iloc[-30:]['close'].mean()
cond2 = wrt[-1] <= -80
cond3 = tech_data.iloc[-1]['close'] > mid[-1] and tech_data.iloc[-1]['close'] < mid[-2]
cond4 = abs(amplitude) >= 2
cond5 = has_recently_biao_ti(code, pro)
if cond1 and cond2 and cond3 and cond4 and cond5:
selected_stocks.append(info)
if len(selected_stocks) >= length:
break
return selected_stocks
def has_recently_biao_ti(code, pro):
df = pro.concept_detail(id='TS79')
tags = df['code'].tolist()
concept_data = pro.concept_detail(ts_code=code)
if len(concept_data) > 0 and set(concept_data['code'].tolist()) & set(tags):
return True
industry_data = pro.stock_basic(ts_code=code)
if len(industry_data) > 0:
concept_data = pro.concept_detail(id=industry_data['industry_code'][0])
if len(concept_data) > 0 and set(concept_data['code'].tolist()) & set(tags):
return True
return False
致辞
本次问答为问财量化选股策略逻辑的第三十九篇,该选股策略主要基于技术面来选股,利用振幅、大单净量和涨停板等指标来筛选符合条件的个股,以便于找到潜在的牛股。需要加入公司基本面指标和其他技术指标来提高选股的精度和稳定性,并根据市场变化和个人需求进行动态调整和优化。同时,加强风险控制和仓位管理等策略,控制持仓集中度和投资风险。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
