自定义技术指标,动量轮动策略-创业板年化20%+(附源码)

投资理念刷新:

1、大类资产配置,适合大资金理财,年化4-10%+,省心省事,但这个杠杆是财富自由的关键。试想,你有500-5000万+,那么这个逻辑就可以生效。

2、在本金积累阶段,我之前是不建议走投资这条道的。因为更高的收益意味着风险。然而对比下来,何事无风险?创业风险更大,职场没风险?——时间成本也是隐性的风险。而投资的风险——你是可以掌握的,可以练习的。笑来投加密货币的过程,就“没有风险”。塔勒布的“杠铃策略”也告诉我们,要拿少部分(不超过20%)投资高风险高杠杆的东西,你才可能有“阶级跃迁”的机会。

当下阶级跃迁的机会并不多,互联网新贵的创业路、加密货币之前造就一批,还有就是顶级高管的超高薪酬。哪条路好走?似乎AI量化还算可以先走一走。

今天继续pybroker。

01 动态再平衡

动态再平衡是构建投资组合策略里一个常见的手法。就是在特定的时间,比如月初或者年初,把组合中各标的权重恢复到原来的权重,比如等权,或者一个固定的权重。

与backtrader使用Strategy是一个类的差别在于,pyb是使用传入函数的方式

set_before_exec和set_after_exec,就是在我们类似onbar函数之前及之后,调用的函数,这两个函数与exec的区别在于,exec是逐个标的的context,而这两个函数是所有的context,是一个dict(“symbol”:ExecContext}这样的格式。

了解了这个机制:

def rebalance(ctxs: dict[str, ExecContext]):
    dt = tuple(ctxs.values())[0].dt
    if start_of_month(dt):
        target = 1 / len(ctxs) #等权重
        set_target_shares(ctxs, {symbol: target for symbol in ctxs.keys()})

我们在执行之前:

strategy.set_after_exec(rebalance)

就可以了。

下面会用到一些context需要的功能,全局的参数:pyb.param,在每次循环里传递current_month这个变量。

——当然,我们之前“积木式”编程里有另外的做法,可以自己记录自己的日期。——后续出于开发策略效率的考虑,可以把积木式编程整合过来。

target是目标他们,需要使用ctx.calc_target_shares把target换成shares,说白就是市值/当前价格,需要买/卖多少份额。

然后根据当前持仓的pos来计算来执行买或卖。

图片

月初买卖对应的shares。

图片

02 动量策略

这里有两个使用框架的细节,一是如何添加指标;二是如何自定义指标;

其实框架本身没有实现指标,都是自定义,使用也比较简单。

我按官网的例子,写了一个N日动量的指标,使用了numba的njit。

其实就是实现一个函数,pyb函数就是执行单元。比如roc_N,第一个参数是bar_data,可近似理解就是一个dataframe,包括所有的数据列。后面是参数。

def roc_N(bar_data, lookback):
    print(type(bar_data))
    print(bar_data)

    @njit  # Enable Numba JIT.
    def vec_roc(values):
        # Initialize the result array.
        n = len(values)
        print(values)
        out = np.array([np.nan for _ in range(n)])

        for i in range(lookback, n):
            out[i] = values[i]/values[i-lookback] -1
        return out

    # Calculate with close prices.
    return vec_roc(bar_data.close)

roc_20 = pybroker.indicator('roc_20', roc_N, lookback=20)
roc_20(df)

把indicators在add_execution即可,可以传一个list——多个指标。

图片

图片

创业板的20日动量不错的,不过从2016年到1018年,策略属于横盘。

图片

03 动量轮动策略

多个标的,每天按指标进行排序:

图片

然后,根据排序结果,进行操作。

图片

小结:

1、使用技术指标

2、自定义技术指标

3、动量策略

4、动量轮动策略

代码与数据均上传至知识星球中。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/104128
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注