(同花顺量化)2021年营收除2018年营收大于1

用户头像神盾局量子研究部
2023-08-31 发布

问财量化选股策略逻辑

选股逻辑:选取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亿' #选股语句。

    模板如何使用?

    点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论