问财量化选股策略逻辑
选股逻辑:振幅大于1,深证主板市盈率在0-29.01,市净率在0-3.11的股票以及竞价涨幅在-2%到5%之间的股票。
选股逻辑分析
相比之前的选股逻辑,我们增加了竞价涨幅这一指标。竞价涨幅反映了股票在开盘前的市场预期,通过观察竞价涨幅可以抓住股票的短期投机机会。
有何风险?
该选股策略存在以下风险:
- 竞价涨幅反映的仅仅是偏好,由于偏好并没有实际操作行为,可能无法令价格真正反映市场的情况。
- 过于依赖技术指标,可能忽略了公司基本面的影响,存在选错侧重点的风险。
如何优化?
针对以上风险,可以考虑以下优化措施:
- 引入基本面分析作为辅助判断,为技术指标的判断提供补充条件;
- 考虑纳入高频数据,如分钟数据、百分比振幅等,从而更精准地判断竞价涨幅的真实情况;
- 加入风险控制策略,如分散投资、合理设置止盈止损等,从而在利用选股结果进行交易时,更安全地控制风险。
最终的选股逻辑
综合以上分析和优化的措施,我们提出如下完善后的选股逻辑:
- 振幅大于1;
- 深证主板市盈率在0-29.01,市净率在0-3.11的股票;
- 竞价涨幅在-2%到5%之间。
同花顺指标公式代码参考
该选股逻辑对应的同花顺指标公式如下:
VOL()>0 AND AMOUNT()>0 AND PEL().HIGH>=0 AND PEL().LOW<=29.01 AND PBV().HIGH>=0 AND PBV().LOW<=3.11
AND PCTCHG()>-2 AND PCTCHG()<5 AND STOCKINFO('市场类型')=4
Python代码参考
利用 Tushare 库的 Python 代码如下:
import tushare as ts
def is_selected(code, eps=0):
'''
判断股票是否满足选股逻辑
'''
if ts.get_stock_basics()[code]['name'].startswith('*ST'):
return False
# 判断竞价涨幅
df_today = ts.get_today_ticks(code).iloc[:3,:]
rise_pct = (df_today.iloc[2]['price'] - df_today.iloc[0]['price']) / df_today.iloc[0]['price'] * 100
if rise_pct < -2 or rise_pct > 5:
return False
base = ts.get_stock_basics()[code]
if base['pe'] < 0 or base['pe'] > 29.01 or base['pb'] < 0 or base['pb'] > 3.11 or base['area'] != '深圳':
return False
df = ts.get_hist_data(code)
if df.iloc[-1]['volume'] <= 0 or df.iloc[-1]['amount'] <= 0:
return False
return True
# 获取热度排名前N的股票列表,遍历股票进行选股
stocks = ts.top_list()
selected_stocks = []
for i in range(N):
code = stocks['code'].iloc[i]
if is_selected(code, eps=1e-4):
selected_stocks.append(code)
# 利用选股结果进行股票交易
for code in selected_stocks:
pass # 参考其他策略
代码中同样利用 Tushare 库获取了选股所需的信息,不过在对选股逻辑进行判断时,增加了竞价涨幅这一指标。利用 Tushare 库可以轻松获取当天开盘前的竞价数据,通过计算当天的竞价涨幅,从而判断股票是否符合选股条件。最后,可以利用选股结果进行股票交易。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


