问财量化选股策略逻辑
本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间,非ST,且使用五部涨停战法筛选出当日有望涨停的个股。该策略结合了技术指标和市场情绪,选取具有较强走势可能的个股。
选股逻辑分析
本选股策略主要依据振幅、换手率、涨停预测等技术指标,能够反映股票价格波动和市场交易情况等因素。同时,使用五部涨停战法分析市场情绪,选取具有涨停潜力的个股。综合考虑技术指标和市场情绪,能够选取较具有走势可能的股票。
有何风险?
本选股策略主要依赖于技术指标和市场情绪的反应,存在因基本面或其它因素影响,而忽略了一些公司真实的价值情况,选到危险股票或失去优质股票的风险。同时,五部涨停战法虽然是一种著名的选股策略,但其背后的市场情绪也是动态变化的,因此,存在该策略难以适应市场变化的风险。
如何优化?
为了更好地优化选股策略,可以加入一些基本面指标,如ROE、净利润增长率、业绩预告等指标,以更全面地了解公司的财务状况。同时,可以考虑将五部涨停战法中的战法内容加入更多市场情绪的因素,例如大宗交易、资金流向等。此外,可以在选择非ST股票的同时,加入股票流通性等指标的考虑。
最终的选股逻辑
本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间,非ST,且根据五部涨停战法筛选出当日有望涨停的个股。在此基础上,加入基本面指标、市场情绪因素等考虑进行筛选,以更全面地了解公司财务状况和市场情况,并筛选出更具有走势可能和安全性的股票。
同花顺指标公式代码参考
无
Python代码参考
import tushare as ts
pro = ts.pro_api()
def select_stocks(n):
selected_stocks = []
for code in pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,name,list_date,list_status,total_mv')["ts_code"]:
if len(selected_stocks) >= n:
break
df = pro.query('moneyflow_hist', ts_code=code, start_date='20210101', end_date='20211231', fields='net_mf_vol')
if not df.empty:
qfq_df = pro.adj_factor(ts_code=code, trade_date='20220101', fields='adj_factor')
if not qfq_df.empty and float(qfq_df['adj_factor'].iloc[0]) !=0 and float(qfq_df['adj_factor'].iloc[0]) != None:
db = pro.query('daily_basic', ts_code=code, trade_date=pro.trade_cal(exchange='', start_date='20210101', end_date='20220331')['cal_date'].iloc[-1], fields='ts_code,trade_date,turnover_rate,volume_ratio,amplitude')
if not db.empty:
if db['amplitude'].iloc[0] > 1 and 0.5 < db['turnover_rate'].iloc[0] * db['volume_ratio'].iloc[0] < 2:
if pro.query('stock_basic', ts_code=code, fields='name')['name'].iloc[0][0:2] != 'ST':
if is_expected_limit_up(code):
selected_stocks.append(code)
return selected_stocks
def is_expected_limit_up(code):
df = pro.daily(ts_code=code, start_date=pro.trade_cal(exchange='', start_date='20220101', end_date='20220331')['cal_date'].iloc[-6], end_date=pro.trade_cal(exchange='', start_date='20220301', end_date='20220331')['cal_date'].iloc[-2], fields='ts_code,trade_date,close,pre_close,limit_up,limit_down')
if len(df[df['trade_date'] == pro.trade_cal(exchange='', start_date='20220301', end_date='20220331')['cal_date'].iloc[-1]]) > 0:
return False
for i in range(1, 6):
if len(df[df['trade_date'] == pro.trade_cal(exchange='', start_date='20220301', end_date='20220331')['cal_date'].iloc[-i]]) > 0:
if df['close'][len(df)-i] >= df['limit_up'][len(df)-i] or df['pre_close'][len(df)-i] >= df['limit_up'][len(df)-i]:
return False
return True```
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
