(supermind量化策略)task17/a/换手率3%-12%、三连阴、2021年营收

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

问财量化选股策略逻辑

选股逻辑为:在换手率在3%-12%之间、三连阴、2021年营收/2018年营收大于1.1的情况下,选取有涨幅潜力的股票。

选股逻辑分析

该选股策略在前面的选股条件基础上,加入了2021年营收/2018年营收大于1.1的限制条件,帮助投资者更好地了解公司的成长性和稳定性,从而选择有潜力的股票。

有何风险?

市场变化复杂,算法无法完全准确预测未来走势,存在操作的不确定性和市场波动风险。

如何优化?

可以加入其他技术指标以及基本面数据等综合分析,还可以调整选股逻辑中的条件阈值,进一步提高选股策略的准确度。

最终的选股逻辑

在换手率在3%~12%之间、三连阴、2021年营收/2018年营收大于1.1的情况下,选取有涨幅潜力的股票。

同花顺指标公式代码参考

以通达信公式为例:

营收2018:=GET_FINANCE_FACTOR('营业总收入',2018);
营收2021:=GET_FINANCE_FACTOR('营业总收入',2021);
条件筛选:(营收2021/营收2018>1.1) AND N连阴(三天) AND 换手率<=12% AND 换手率>=3%;

python代码参考

import baostock as bs
import pandas as pd

#### 登陆系统 ####
lg = bs.login()

#### 获取满足条件的股票 ####
rs = bs.query_stock_basic()
stock_list = []
while (rs.error_code == '0') & rs.next():
    stock_code = rs.get_row_data()[0]
    # 查询年度利润表数据
    rs_profit = bs.query_profit_data(code=stock_code, year=2018)
    if rs_profit.error_code == '0':
        profit_2018 = float(rs_profit.get_row_data()[10])   # 取出营业总收入数据
        rs_profit = bs.query_profit_data(code=stock_code, year=2021)
        if rs_profit.error_code == '0':
            profit_2021 = float(rs_profit.get_row_data()[10])
            if profit_2021/profit_2018 > 1.1:
                # 查询月K线数据
                rs_k = bs.query_history_k_data_plus(stock_code, 'date,open,high,low,close,volume', start_date='2022-06-01', end_date='2022-07-01', frequency='d', adjustflag='3')
                if rs_k.error_code == '0':
                    # 判断三连阴
                    close = list(map(float, rs_k.get_column("close")))
                    if len(close) >= 3 and close[-3] > close[-2] and close[-2] > close[-1]:
                        # 判断换手率
                        volume = list(map(float, rs_k.get_column("volume")))
                        turnover_rate = [volume[i] / volume[i-1] for i in range(1, len(volume))]
                        turnover_rate.insert(0, 0)
                        if max(turnover_rate) <= 12 and min(turnover_rate) >= 3:
                            stock_list.append(stock_code)

# 转换成DataFrame格式并输出结果
df = pd.DataFrame(stock_list, columns=['stock_code'])
print(df)

#### 登出系统 ####
bs.logout()
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

    select_sentence = '市值小于100亿' #选股语句。

    模板如何使用?

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


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

评论