年化18.9%的创业板趋势策略,使用模块化策略模板重构(代码+数据)

发布于:2024-07-21 ⋅ 阅读:(141) ⋅ 点赞:(0)

原创文章第590篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。

昨天咱们分享的文章:”以交易为生“,基础设施很重要。

传统backtrader写策略的步骤是如下:

1、定义因子,比如动量roc:

self.roc = bt.indicators.ROC(self.data, period=self.p.period)

2、写策略逻辑,主要是next:

class roc_trend(bt.Strategy):
    # 参数定义
    params = dict(
        period=20,  # 动量周期
    )

    def __init__(self):
        self.roc = bt.indicators.ROC(self.data, period=self.p.period)
        # self.roc = bt.talib.ROC(self.data, period=self.p.period)

    def next(self):
        if not self.position:  # not in the market
            if self.roc[0] > 0.08:  # if fast crosses slow to the upside
                self.order_target_percent(self.data, 0.99)  # enter long
                # self.buy()  # enter long

        elif self.roc[0] < 0:  # in the market & cross to the downside
            self.close()  # close long position

我们看下在算子化的模式下,如何写策略:

数据通过calc_expr直接计算,无论多少个因子:

df = CSVDataloader.get_df(['159915.SZ'], set_index=True, start_date='20120101')
df = CSVDataloader.calc_expr(df, ['roc(close,20)'], ['roc_20'])
df

图片

然后通过SelectBySignal即可,输入买入信号规则,卖出信号规则即可:

engine = BacktraderEngine(df, start=datetime(2005, 1, 1))
engine.run_algo_strategy(algo_list=[
    SelectBySignal(rules_buy=['roc_20>0.08'], rules_sell=['roc_20<0']),
    WeightEqually(),
    ReBalance()
])

打印出交易记录:

图片

然后看下回测结果:

图片

图片

大家拿到代码,直接运行对比这两个策略的写法,能够直观地感受到模块化的效率:

图片

代码下载:AI量化实验室——2024量化投资的星辰大海

交易为生之美

应该没有人天生就是坏的。

多数我们认为的坏人,都是相对自己的标准。

这个标准是什么?更多是利益,披着道德外衣的利益。

哪里存在最多利益冲突?

职场,邻里—尤其是农村,类似地缘冲突。城市里关系冲突,以职场为主。

出去参加活动,大家都温文尔雅,表现的风度翩翩。

职场里尤其公司下行时,刷锅,扣帽子,争底盘,抢功劳,事情就多了。

人生苦短,有意义吗?——其实很没意思。我们应该花心思在创造性的研究上

你有足够的价值,有就有交换的选择权。

进一步讲,如果你够强,你的周遭的环境就会变好。——盖茨说,在你强大之前,不要太在意你的自尊,没有人在意你的自尊。

你要做的事情,专注让自己变强大,然后周围的人都会变友善。

而不是讨好,讨好获得的只有怜悯——而且不是所有人都会共情。

交易的江湖

有没有没有人际江湖的地方——交易。

除了交易很难外—只要你具备稳定获利的能力,交易几乎应有一切优点。

完全线上,没有交付环节,没有客户要服务,不需要销售或营销技巧。

更没有同事要讨好,没有上司要伺候。

策略在精不在多,有一两项武艺在身,足以行走江湖,忘情山水。

教学相长,通过输出倒逼学习与成长。

吾日三省吾身

突发的时间,打算原本既定的生活与工作节奏。

顺其自然,让自己偶尔停一会,发现也挺好。

这世界离了谁都一样转,不要认为自己多重要。

停下来想想,看看。

想起《世界尽头的咖啡馆》——

图片

你为什么来到这里?——你的PFE(Perpose For Existing)是什么?

你害怕死亡吗?

你满足吗?

我们大多数人活在别人定义的规则里。

好好学习,找份好工作,结婚,生娃,孩子教育…

在别人眼里,也许你是成功的,你应该是幸福的。

但,你满足吗?

你想过什么样的生活?

很多人如此害怕失业,不敢有一点点的,GAP时间?

在一些故事里,比如生病的蔡磊,如果再给他几年,他应该不会像之前那帮卖命工作和无趣生活。

想清楚自己要什么,想过什么样的生活,然后尽全力去追求。

历史文章:

想”以交易为生“,基础设施很重要。

quantlab5.1代码发布,含10+个策略以及期货实盘对接(代码+数据)

AI量化实验室——2024量化投资的星辰大海


网站公告

今日签到

点亮在社区的每一天
去签到