问财量化选股策略逻辑
选股逻辑为:振幅大于1、现量大于1万手、高开、圆弧形的股票。该策略主要关注于市场交易活跃程度和当日股票走势。
选股逻辑分析
选股逻辑基于振幅、现量、高开、圆弧形等指标综合判断股票行情。振幅大于1和现量大于1万手代表着市场交易活跃;高开也意味着可能存在上涨机会,而圆弧形则代表着短期走势相对稳定。该选股逻辑忽略了较长期的走势趋势和一些基本面因素。
有何风险?
该选股策略过于依赖短期的股票走势,可能会出现选错股票或者短线操作失误而造成亏损的风险。
如何优化?
为了更好地把握股票的走势趋势和基本面因素,需要加入更多指标进行筛选。比如,可以引入技术指标例如MACD、RSI等,也可以加入基本面指标例如市盈率、股息率等,综合判断选股价值。
最终的选股逻辑
选股逻辑为:振幅大于1、现量大于1万手、高开、圆弧形的股票;加入其他因素,如市场情绪指标、公司基本面指标等进行判断和筛选。
同花顺指标公式代码参考
SZ122:IF(ABS((HIGH-LOW)/REF(CLOSE,1)) > 0.01 AND DRAWLINE,1,0);
以上指标公式中的DRAWLINE表示圆弧形的判断。
Python代码参考
import tushare as ts
def get_selected_stocks():
selected_stocks = []
pro = ts.pro_api()
all_stocks = [ts_code for ts_code, name in pro.stock_basic(exchange='', list_status='L', fields='ts_code,name,industry,market_cap').values.tolist() if name[0]!='S' and name[:3]!='ST']
for ts_code in all_stocks:
daily_data = pro.daily(ts_code=ts_code, start_date=pro.stock_basic(ts_code=ts_code, fields='start_date').iloc[0], end_date='today')
if len(daily_data) < 2 or daily_data['vol'].max() < 10000 or daily_data.iloc[-1]['open'] > daily_data.iloc[-2]['close'] or not is_draw_line(daily_data):
continue
# 处理选股指标筛选条件
sz_data = pro.query('SZ122', ts_code=ts_code, start_date=daily_data.iloc[-2]['trade_date'], end_date=daily_data.iloc[-1]['trade_date'], fields='sz122, high, low, close').iloc[-1]
if sz_data['sz122'] == 1:
selected_stocks.append((pro.stock_basic(exchange='', list_status='L', ts_code=ts_code, fields='name').iloc[0]['name'], ts_code))
selected_stocks.sort()
return selected_stocks
def is_draw_line(daily_data):
# 判断是否符合圆弧形的条件
# 拟合直线,并计算拟合曲线和实际数据之间的偏差
# 使用最小二乘法拟合直线,满足 y = a * x + b 的形式
n = len(daily_data)
x = daily_data.index.values
y = daily_data['close'].values
x_mean, y_mean = x.mean(), y.mean()
sum_xy = (x * y).sum()
sum_xx = (x * x).sum()
a = (n * sum_xy - x.sum() * y.mean()) / (n * sum_xx - x.sum() ** 2)
b = y_mean - a * x_mean
# 计算拟合曲线和实际数据之间的偏差
deviations = []
for i in range(n):
deviations.append(abs(y[i] - (a * x[i] + b)))
# 计算平均偏差
mean = sum(deviations) / n
# 成功判断圆弧形的条件:平均偏差不超过价差的1/3
return mean < (daily_data['high'] - daily_data['low']).mean() / 3
以上为Python代码实现,选股逻辑为振幅大于1、现量大于1万手、高开、圆弧形的股票。在判断圆弧形时,使用最小二乘法拟合直线,并计算拟合曲线和实际数据之间的偏差,成功判断圆弧形的条件为平均偏差不超过价差的1/3。在整个选股过程中,可加入其他因素进行补充判断,如技术指标、基本面数据等。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
