问财量化选股策略逻辑
本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间,K线小于20的股票。振幅能够反映股票价格波动的程度,流通性越好的股票其换手率越高,竞价成交量越大;K线指标可以反映股票在短期内的价格波动情况。同时,这些指标的综合运用能够筛选出价格波动较大,流通性较好,可短期投资的适宜标的。
选股逻辑分析
本选股策略主要结合了价格波动、流通性和技术指标的综合考虑,筛选出适宜短期投资的标的,力求减少投资风险,提高收益率。在这种投资理念下,对于那些在短期内价格波动不大或者整体波动较大的个股,进行筛选从而实现更加科学、有益的投资行为。
有何风险?
本选股策略也存在一些风险,主要表现在以下几方面:1.强调短期波动性,长期价值可能无法保证;2.过分强调技术指标,忽略基本面;3.只使用少量指标,选股结果可能不够精准。
如何优化?
本选股策略可以加入更多的基本面因素和衍生性指标,综合考虑股票在短期和长期的表现,以及市场的整体趋势。另外,可以通过引入过滤条件等手段,提高选股的稳定性和可持续性。
最终的选股逻辑
本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间,K线小于20的股票,并引入更多的基本面、财务数据以及衍生性指标等因素,构建综合考虑多种因素的选股策略。
同花顺指标公式代码参考
- 振幅=100*(最高价-最低价)/收盘价
- K线的计算公式:K=2/3前一日K+1/3当日RSV,D=2/3*前一日D+1/3*当日K,J=3D-2K
- 竞价成交量比率 = 今日竞价成交量 / 昨日成交量
Python代码参考
import tushare as ts
from datetime import datetime, timedelta
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,circ_mv,npr')["ts_code"]:
if len(selected_stocks) >= n:
break
if code.startswith("60") and code[:6] != "600" and code[:6] != "601":
continue
if pro.query('daily_basic', ts_code=code, trade_date=datetime.today().strftime('%Y%m%d'), fields='turnover_rate,amplitude,k')[0][0] * (pro.query('market_detail', trade_date=datetime.today().strftime('%Y%m%d'), fields='total_turnover')["total_turnover"][0] / pro.query('market_detail', trade_date=(datetime.today()-timedelta(1)).strftime('%Y%m%d'), fields='total_turnover')["total_turnover"][0]) <= 0.5 or pro.query('daily_basic', ts_code=code, trade_date=datetime.today().strftime('%Y%m%d'), fields='turnover_rate,amplitude,k')[0][0] * (pro.query('market_detail', trade_date=datetime.today().strftime('%Y%m%d'), fields='total_turnover')["total_turnover"][0] / pro.query('market_detail', trade_date=(datetime.today()-timedelta(1)).strftime('%Y%m%d'), fields='total_turnover')["total_turnover"][0]) >= 2 or pro.query('daily_basic', ts_code=code, trade_date=datetime.today().strftime('%Y%m%d'), fields='turnover_rate,amplitude,k')[0][2] >= 20:
continue
if code[0] == '6':
if not pro.concept_detail(id='804', ts_code=code).empty:
continue
else:
if not pro.concept_detail(id='2052', ts_code=code).empty:
continue
selected_stocks.append(code)
return selected_stocks[:n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
