懒人量化投资攻略,挖掘红利价值,策略一网打尽

懒人量化投资攻略,挖掘红利价值,策略一网打尽"/

量化策略中的“红利价值”是指通过量化模型来评估股票的分红潜力,并据此构建投资组合的策略。这种策略适合懒人,因为一旦模型建立,投资者就可以自动化地执行策略,无需每天花费大量时间监控市场。以下是红利价值量化策略的一些关键点:
1. "选择高分红股票":这种策略侧重于寻找那些分红稳定且增长潜力大的公司。高分红意味着公司财务状况良好,有足够的现金流用于支付分红。
2. "构建模型":建立一个量化模型来评估股票的分红潜力。模型可能包括以下因素: - "历史分红记录":公司过去的分红情况可以反映其分红稳定性。 - "财务指标":如每股收益(EPS)、市盈率(PE)、股息收益率等。 - "宏观经济因素":如利率、通货膨胀率等。 - "行业趋势":分析所在行业的增长趋势和分红政策。
3. "筛选股票":使用模型筛选出高分红潜力的股票,构建投资组合。
4. "自动化交易":一旦确定投资组合,可以使用自动化交易系统执行买卖操作。这减少了人为干预,使策略更加稳定。
5. "定期调整":虽然量化策略旨在减少人为干预,但定期调整模型参数以适应市场变化是很重要的。
以下是几个适合懒人的红利价值量化策略特点:
- "低交易频率":这种策略通常涉及低交易频率,因为投资

相关内容:

这个量化策略的核心在于选取过去三年平均股息率最高的股票,在每年的5月进行调仓,买入卖出,一年只调仓一次,年化收益比沪深300强,适合稳健的价值投资者。

回测数据如下:

*回测数据只作测试用,不代表未来实际收益

1、策略初始化配置

定义了运行周期、基础股票池、持股数

# 设置策略
run_monthly(handle_trader, 1, '9:45')
# 设置参数
g.index = '000300.XSHG' #投资指数
g.num = 1 #选股数
g.stocks =  #股票池

2、选股逻辑

(1)基本面筛选

主要指标有:市净率大于0, 市盈率大于0,市现率大于0,市净率需大于市盈率的15%

sdf = get_fundamentals(query(
            valuation.code,
            valuation.market_cap, #单位,亿元
        ).filter(
            valuation.code.in_(stocks),
            # 市净率大于0(排除净资产为负的公司)
            valuation.pb_ratio > 0,
            # 市盈率大于0(排除亏损企业)
            valuation.pe_ratio > 0,
            # 市现率大于0(现金流为正)
            valuation.pcf_ratio > 0,
            # 市净率需大于市盈率的15%
            valuation.pb_ratio > 0.15*valuation.pe_ratio,
        )).dropna().set_index('code')

(2)计算最近三年平均股息率

最重要的指标:最近三年平均股息率

dt_3y = context.current_dt.date() - dt.timedelta(days=3*365)
    dt_now = context.current_dt.date()
    ddf = finance.run_query(query(
            finance.STK_XR_XD.code,
            finance.STK_XR_XD.company_name,
            finance.STK_XR_XD.board_plan_pub_date,
            finance.STK_XR_XD.bonus_amount_rmb, #单位,万元
        ).filter(
            finance.STK_XR_XD.code.in_(stocks),
            finance.STK_XR_XD.board_plan_pub_date > dt_3y,
            finance.STK_XR_XD.board_plan_pub_date < dt_now,
            finance.STK_XR_XD.bonus_amount_rmb > 0
        )).dropna()
    stocks = list(set(ddf.code))
    # 累计分红
    py = pd.Series(data=zeros(len(stocks)), index=stocks)
    for k in ddf.index:
        s = ddf.code
        py += ddf.bonus_amount_rmb
    # 建立数据表
    sdf = sdf.reindex(stocks)
    sdf = py
    # 计算股息率
    sdf = 1e-2 * sdf.p_3y / sdf.market_cap


3、调仓逻辑

选取最近三年平均股息率最高的股票,每年5月进行调仓,卖出不在目标股票池的股票,买入新进目标股票池的股票

# 按年更新
    if context.current_dt.month in :
        g.stocks = choice_stocks(context, g.index, g.num)
    # 卖出
    cdata = get_current_data()
    for s in context.portfolio.positions:
        if s not in g.stocks and not cdata.paused:
            log.info('sell', s, cdata.name)
            order_target(s, 0)
    # 买进
    position = 0.99*context.portfolio.total_value / max(1, len(g.stocks))
    for s in g.stocks:
        if s not in context.portfolio.positions and not cdata.paused and
            context.portfolio.available_cash > position:
            log.info('buy', s, cdata.name)
            order_value(s, position)


这篇文章主要分享红利价值策略,逻辑比较简单,低频策略,比较适合稳健的价值投资者,不想太操心股市,安心睡觉的人

如果有不懂的,欢迎找我一起交流,加入量化交易大家庭

发布于 2025-06-22 19:04
收藏
1
上一篇:揭秘佣金差异之谜,为何我的佣金与朋友不同?调低佣金可行吗? 下一篇:业绩承压下广发证券首获价格战罚单,行业监管趋严