问财量化选股策略逻辑
选股逻辑为振幅大于1、规模2亿以上、北京A股除外。将选股逻辑作为第一个段落放入标题为 ## 问财量化选股策略逻辑 的段落中。
选股逻辑分析
该选股逻辑主要考虑了股票价格波动、公司规模和地域因素。通过振幅大于1以及规模2亿以上的筛选条件,可以初步筛选出一些较为优质的个股,同时北京A股除外可以对地域因素进行限制。
有何风险?
该选股策略主要风险如下:
- 没有考虑到公司盈利情况,可能会选择一些盈利能力较差的股票;
- 选股策略存在地域限制,可能会造成筛选结果过于局限。
如何优化?
为了缓解以上风险,可以考虑以下优化措施:
- 在振幅、规模和地域外加入股票盈利能力等因素,进行综合筛选;
- 可以考虑调整地域限制,综合考虑其他因素。
最终的选股逻辑
在综合考虑风险和优化措施后,我们得出了如下完善版的选股逻辑:
- 振幅大于1;
- 规模2亿以上;
- 不包括北京A股;
- 主营业务盈利能力好;
- 近5年净利润连续为正;
- 资产负债率低于行业平均水平。
基于该选股逻辑的股票筛选,应结合实际需求和风险承受能力进行具体操作。
同花顺指标公式代码参考
以下是同花顺的相关代码:
/* 将具体选股条件填充至筛选公式中 */
select (
/* 振幅大于1 */
high/low-1>=0.01,
/* 规模2亿以上 */
mkt_cap > 2e8,
/* 不包括北京A股 */
not(area='北京'),
/* 主营业务盈利能力好 */
roe > industry.ROE,
/* 近5年净利润连续为正 */
npr.min() >= 0 and nprr.min() >= 0,
/* 资产负债率低于行业平均水平 */
ar < industry.AR
) order by code asc
Python代码参考
以下是选股策略示例代码:
import tushare as ts
def is_selected(code):
'''
判断股票是否符合选股策略
'''
# 获取股票基本信息和财务数据
stock_info = ts.get_stock_basics().loc[code]
npr = ts.get_profit_data(code).iloc[-5:]['net_profits'] # 最近5年净利润数据
nprr = ts.get_profit_data(code).iloc[-5:]['roe'] # 最近5年净资产收益率数据
ar = stock_info['total_assets'] / stock_info['total_liabilities'] # 资产负债率
industry = ts.get_stock_industry(code) # 股票所属行业
# 判断选股条件
if (1 <= (ts.pro_bar(ts_code=code, start_date='20220101', end_date='20211231', adj=None).iloc[-1]['high'] /
ts.pro_bar(ts_code=code, start_date='20220101', end_date='20211231', adj=None).iloc[-1]['low'] - 1) * 100 <= 100) \
and (stock_info['totalAssets'] > 2e8) \
and (stock_info['area'] != '北京') \
and (npr.min() >= 0 and nprr.min() >= 0) \
and (ar < industry['AR'][0]):
some_other_conditions = True
# 判断股票是否符合要求
return some_other_conditions
return False
# 获取符合策略要求的股票列表
selected_stocks = [code for code in ts.get_stock_basics().index if is_selected(code)]
# 根据选股结果进行后续交易操作
for code in selected_stocks:
pass # 参考其他交易策略
示例代码通过 Tushare 库获取相应的股票数据,结合选股逻辑进行筛选,最终得到符合要求的股票列表。在实际交易中,可根据筛选和排序结果进行后续的操作。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
