问财量化选股策略逻辑
选股逻辑:选取RSI小于65、按个股热度从大到小排序、2021年营收/2018年营收大于1.1的个股。
选股逻辑分析
该选股策略在考虑较短期的技术指标条件下,加入了企业的基本面因素。选股方式多元化,考虑了市场情绪(RSI)和公司业绩增长情况(营收)。同时优先选取热度较高的股票,筛选结果更加稳健。
有何风险?
该选股策略仍然存在短期趋势偏好的风险,过度关注单一技术指标和单一财务指标,可能导致忽略其他重要因素。此外,考虑企业营收增长只考虑了单一时间点的数据,未考虑增长趋势或其他可能影响企业长期增长的因素。
如何优化?
增加其他技术指标,如成交量、大盘趋势、波动率等,综合评估个股的短期和长期趋势。同时结合其他财务指标,如盈利能力和成长性,以及行业整体情况考虑筛选结果。最终选股方案应该能够综合考虑企业的多个因素,偏长期而不是超短期。
最终的选股逻辑
选取RSI小于65、按个股热度从大到小排序、2021年营收/2018年营收大于1.1的个股,同时结合其他技术指标和基本面因素综合考虑,找到稳健优质的个股。
同花顺指标公式代码参考
通达信指标公式:HHV(HIGH,2)=REF(HHV(HIGH,2),1),HHV(HIGH,2)=IF(HIGH>REF(HHV(HIGH,2),1),HIGH,REF(HHV(HIGH,2),1)),2021营收/2018营收>1.1 AND COUNT>0 AND RSI(C,14)<65 AND INDUSTRYTYPE!="28" AND INDUSTRYTYPE!="104" AND INDUSTRYTYPE!="105" ORDER BY COUNT DESC
python代码参考
import baostock as bs
import pandas as pd
# 登陆系统
lg = bs.login()
# 获取所有股票列表
rs = bs.query_all_stock(day="2020-12-30")
data = rs.get_data()
stock_list = data["code"].tolist()
# 初始化结果列表
result_list = []
# 循环遍历股票列表
for stock in stock_list:
# 获取股票历史K线
rs = bs.query_history_k_data_plus(stock,
"date,code,close,high",
start_date="2021-01-01",
end_date="2021-12-31",
frequency="d",
adjustflag="2")
data = rs.get_data()
# 判断是否符合选股条件
if data["high"].iloc[-1] >= data["high"].rolling(window=2).max().iloc[-1] \
and data["rsi_14"].iloc[-1] < 65:
# 获取2018年及2021年营收
rs = bs.query_profit_data(stock, "year,roe_yoy")
profit_data = rs.get_data()
if len(profit_data) == 2:
revenue_ratio = profit_data["roe_yoy"].iloc[1] / profit_data["roe_yoy"].iloc[0]
if revenue_ratio > 1.1:
# 获取热度指标并加入筛选条件
rs = bs.query_history_quotes(stock, "date,code,turn")
hot_data = rs.get_data()
if len(hot_data) > 0:
hot = hot_data["turn"].iloc[-1]
result_list.append([hot, stock])
# 按热度从大到小排序
result_list.sort(reverse=True)
# 提取个股代码
result_list = [i[1] for i in result_list]
# 打印符合选股条件的股票列表
print(result_list)
# 登出系统
bs.logout()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


