创业板动量策略年化20%如何优化来的?|多策略并行回测以及策略的超参数优化(代码+数据)

发布时间:2024年01月24日

原创文章第449篇,专注“AI量化投资、个人成长与财富自由"。

今天的代码工作,是多策略运行,及策略的超参数优化。

最近思考意义比较多。

包括AI量化的意义——从自动化,数字化到智能化。

赚钱是意义吗?赚钱是好事,但可以赚钱的事情很多,为何是量化。这个意义的思考,更多是为他人,为社会。

从为他人的角度,为星球的用户赚到钱,减少大家的工作量,减少大家研究资本市场的时间,这倒是个价值点。

engine添加优化器:可以对超参数进行优化:

def optimize(self,
             maximize: Union[str, Callable[[pd.Series], float]] = 'SQN',
             method: str = 'grid',
             max_tries: Optional[Union[int, float]] = None,
             constraint: Optional[Callable[[dict], bool]] = None,
             return_heatmap: bool = False,
             return_optimization: bool = False,
             random_state: Optional[int] = None,
             **kwargs):
    from numpy.random import default_rng
    have_constraint = bool(constraint)
    class AttrDict(dict):
        def __getattr__(self, item):
            return self[item]

    def _tuple(x):
        return x if isinstance(x, Sequence) and not isinstance(x, str) else (x,)

    def _grid_size():
        size = int(np.prod([len(_tuple(v)) for v in kwargs.values()]))
        if size < 10_000 and have_constraint:
            size = sum(1 for p in product(*(zip(repeat(k), _tuple(v))
                                            for k, v in kwargs.items()))
                       if constraint(AttrDict(p)))
        return size

    rand = default_rng(random_state).random
    grid_frac = (1 if max_tries is None else
                 max_tries if 0 < max_tries <= 1 else
                 max_tries / _grid_size())
    param_combos = [dict(params)  # back to dict so it pickles
                    for params in (AttrDict(params)
                                   for params in product(*(zip(repeat(k), _tuple(v))
                                                           for k, v in kwargs.items())))
                    if constraint(params)  # type: ignore
                    and rand() <= grid_frac]
    if not param_combos:
        raise ValueError('No admissible parameter combinations to test')
    print(param_combos)

生成参数组合:

from engine.engine import Engine
from examples.strategies.tasks_config import TaskRolling

def test_opt():
    e = Engine(TaskRolling())
    e.optimize(n1=range(10, 110, 10),
    n2=range(20, 210, 20),
    n_enter=range(15, 35, 5),
    n_exit=range(10, 25, 5),
    constraint=lambda p: p.n_exit < p.n_enter < p.n1 < p.n2,
    maximize='Equity Final [$]',
    max_tries=200,
    random_state=0,
    return_heatmap=True)

?{'n1': 50, 'n2': 120, 'n_enter': 30, 'n_exit': 20}, {'n1': 50, 'n2': 140, 'n_enter': 20, 'n_exit': 10},

比如星球的同学说,咱们参数里那些 roc(20)>0.08,这个20和0.08怎么来的?——通过网格搜索优化来

明天继续——还是周五交付整体代码。AI量化实验室——2024量化投资的星辰大海

吾日三省吾身

人生有三大命题:健康(平安)、财富(适度名与利)、幸福(意义,活着为了什么)?

健康是1,没有健康,后面均无意义。

最近重读蔡磊的《相信》和于娟的《此生未完成》。无论你是谁,王侯将相,还是贩夫走卒,在健康平面,众生平等。

没有尊严,卑微的“乞求”活着,无论你有多少财富,抑或学识。

我在商界达到了成功的顶峰。在别人眼里,我的生活是成功的缩影。

然而,除了工作,我没有什么快乐。

最后,财富只是我习惯的生活事实。?

此时此刻,躺在病床上,回想起我的一生,我意识到,面对即将来临的死亡,我如此自豪的所有认可和财富,都已黯然失色,变得毫无意义。

在黑暗中,我看着救生机器发出的绿灯,听到机械嗡嗡作响的声音,我能感觉到死神的气息在靠近…。现在我知道了,当我们积累了足够的财富来维持我们的一生时,我们应该去追求其他与财富…无关的事情。?

应该是更重要的事情:也许是关系,也许是艺术,也许是年轻时代的梦想 不间断地追求财富只会把一个人变成一个扭曲的存在,就像我一样。。。

Steve Jobs

“中庸”之道是有道理的。

人不能既要又要还要。平衡一点,没有健康,啥也不是。好的生活习惯,好的心态,在于长期养成。越早觉醒,越容易获得。

财富,不能没有。

追求财富需要适度,不必钻牛角尖,知足常乐。——郭宇(28岁财务自由的程序员,我想起那些年错过的1个亿,悲伤的故事),张朝阳的状态就挺好的。

人生需要意义,人生的意义是什么呢?——纳瓦尔说,幸福是一种不需要作为的状态,是消除了缺憾感之后的感受。

斯多葛学派看人生:

过去的,用“宿命论”的观点,一切发生的事情,都是它应该的样子。所以——不要悔。

当下的——你做一下“悲剧假设”。你换位思考一下蔡磊和于娟的境遇,无论谁,都会发现自己拥有很多,佛教说"无畏施",读别人的故事,感受自己的人生。——对于当下,要珍惜,不要心安理得。你在抱怨同事勾心斗角,你应该想想,很多人想工作却求而不得。当你抱怨自己没有一双好鞋时,想想,有些人没有脚。。。

未来的——“二分控制论”。能掌控的,不能掌控的。只关心能掌控的东西。孩子学习成绩,未来什么中考分流,这是你无法掌控的。你能掌控的,多陪伴和引导,养成好的阅读习惯。

未来事情,不必着急,日子一天天过。明天和意外,并不知道哪个会先来。坏事会过去,好事也会过去,人生在世,体验而已。

斯多葛学派,不是躺平,也不是阿Q精神。而是教我们这个“千年一遇之大变局”,高度不确定下,如何寻求内心真正的安宁。

不确定是解决不完的,解决一个,还会再来一个。内心不受其扰,一切都会过去。

当下,才是真实。

过往不恋,未来不迎,当下不杂。

但行好事,莫问前程。

持续给大家写代码的,交付最前沿AI量化技术和策略的星球

历史文章:

lightGBM合成因子|对Alpha158因子集进行筛选,并做单因子分析(代码+数据)

Quantlab3.3代码发布:全新引擎 | 静待花开:年化13.9%,回撤小于15% | lightGBM实现排序学习

创业板指布林带突破策略:年化12.8%,回撤20%+| Alphalens+streamlit单因子分析框架(代码+数据)

轮动策略模板重写,先来一个年化21%的策略(代码+数据)

去掉底层回测引擎,完全自研,增加超参数优化,因子自动挖掘,机器模型交易。

飞狐量化——AI驱动的量化。(持续给大家写代码的,交付最前沿AI量化技术和策略的星球AI量化实验室——2024量化投资的星辰大海

关于我:CFA,北大光华金融硕士,十年量化投资实战。?/?CTO,全栈技术,AI大模型?。——应该是金融圈最懂技术的男人

文章来源:https://blog.csdn.net/weixin_38175458/article/details/135824814
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。