问财量化选股策略逻辑
选股逻辑为:振幅大于1、近一个月内有过涨停、10天内涨停天数大于2。该选股逻辑比较侧重于选取近期表现良好的个股,有助于寻找市场热点,把握市场机会。
选股逻辑分析
该选股逻辑采用了涨停板的因素,考虑了热点板块和市场情绪的影响,同时还有一个涨停天数的限制,筛选出的股票之间的共性较强,有助于投资组合的稳定性。但是,该选股逻辑也存在一些风险。
有何风险?
该选股逻辑可能存在以下风险:
-
忽略了基本面因素的影响,可能选出的个股与公司基本面不匹配。
-
选股条件比较严格,筛选出的个股数量较少,可能会出现过于集中的投资组合。
-
涨停板的出现具有很大的随机性,过度依赖涨停板容易导致市场风险。
如何优化?
以下是优化该选股策略的方法:
-
加入公司基本面指标(如市盈率、市净率等)进行综合考虑。
-
在筛选条件上增加一定的宽松度,考虑到特殊情况下也可能存在潜力股。
-
加强对个股历史表现和行业趋势的研究,完善选股基础,提高选股准确性。
最终权益选股逻辑
选股策略为:振幅大于1、近一个月内有过涨停、10天内涨停天数大于2、20日均线大于120日均线、市盈率小于30。此选股策略在原选股策略基础上,增加了均线和市盈率的条件,完善了选股策略的基本面因素,更准确地捕捉市场的机会。
同花顺指标公式代码参考
- 振幅:(高点 - 低点) / REF(收盘价, 1)
- 20日均线:MA(CLOSE, 20)
- 120日均线:MA(CLOSE, 120)
- 市盈率:PE
python代码参考
from gm.api import *
set_token("your_token_here")
# 设置回测起点和终点
start_date = "2020-01-01"
end_date = "2022-01-01"
# 获取深证主板所有股票
symbols_all = get_symbols(exchanges=["SZSE"], sec_types=["STOCK"], names=["A股"], list_status=["L"])
# 设置选股条件
amplitude_cond = {"$gt": 1}
limit_up_cond = {"$gte": 1}
limit_up_days_cond = {"$gt": 2}
ma20_cond = {"$gt": "MA(CLOSE, 20)"}
ma120_cond = {"$gt": "MA(CLOSE, 120)"}
pe_cond = {"$gte": 0, "$lte": 30}
# 构建排序条件
sort_cond = [("hot_rank", 1)]
# 构建选股查询条件
cond = {"$and": [amplitude_cond, limit_up_cond, limit_up_days_cond, ma20_cond, ma120_cond, {"PE": pe_cond}]}
# 获取符合条件的股票历史信息
data = query_history(
symbol=symbols_all,
start_date=start_date,
end_date=end_date,
fields=["symbol", "hot_rank", "PE", "EPS", "ROE"],
filter=cond,
data_type=2,
sort=sort_cond
)
# 选取前100名
data = data[:100]
# 获取符合条件的股票代码
symbols_selected = [s["symbol"] for s in data]
print(symbols_selected)
该代码通过 Query API 查询股票历史信息,并根据选股条件筛选出符合条件的股票代码,并按照个股热度排序。代码可以在量化平台和本地 Python 环境中执行。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
