社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

年化450%,夏普比5.23,回撤7% | deap因子挖掘系统python代码发布

七年实现财富自由 • 9 月前 • 200 次点击  
原创内容第1012篇,专注AGI+,AI量化投资、个人成长与财富自由。
今日策略:年化450%,夏普比5.23,回撤7%。

http://www.ailabx.com/strategy/68c7c731fd408079e03bcc10

开始因子挖掘:

from deap import base, creator, gp

creator.create("FitnessMax", base.Fitness, weights=(1.0,))def init_tool_box():
        # creator.create("Individual", gp.PrimitiveTree, fitness=creator.FitnessMax)
        from deap import base, creator, tools
        creator.create("Individual", gp.PrimitiveTree, fitness=creator.FitnessMax)
        toolbox = base.Toolbox()        from deap_factor.init_pset import get_pset
        pset = get_pset()        toolbox.register("expr", gp.genHalfAndHalf, pset=pset, min_=1, max_=5)        toolbox.register("individual", tools.initIterate, creator.Individual, toolbox.expr)        # print(toolbox.individual())        toolbox.register("population", tools.initRepeat, list, toolbox.individual)
        toolbox.register("evaluate"print)  # 在map中一并做了
        toolbox.register("select", tools.selTournament, tournsize=3)  # 目标优化        # toolbox.register("select", tools.selNSGA2)  # 多目标优化 FITNESS_WEIGHTS = (1.0, 1.0)        toolbox.register("mate", gp.cxOnePoint)        toolbox.register("expr_mut", gp.genFull, min_=0, max_=2)        toolbox.register("mutate", gp.mutUniform, expr=toolbox.expr_mut, pset=pset)
        from deap_factor.backtest import backtester        toolbox.register('map', backtester)
        import operator
        toolbox.decorate("mate", gp.staticLimit(key=operator.attrgetter("height"), max_value=17))        toolbox.decorate("mutate", gp.staticLimit(key=operator.attrgetter("height"), max_value=17))        return toolbox
if __name__ == '__main__':    from deap_factor import utils    from deap import tools    import numpy as np    my_tool_box = init_tool_box()    # 这里定义初始化的因子数,可以得行修改    print('开始生成因子...')    pop = my_tool_box.population(10)    for p in pop:            print(utils.stringify_for_sympy(p))
    hof = tools.HallOfFame(10)    # 只统计一个指标更清晰    stats = tools.Statistics(lambda ind: ind.fitness.values)    # 打补丁后,名人堂可以用nan了,如果全nan会报警    stats.register("avg", np.nanmean, axis=0)    stats.register("std", np.nanstd, axis=0)    stats.register("min", np.nanmin, axis=0)    stats.register("max", np.nanmax, axis=0)    #print(stats)    from deap_factor.deap_patch import *  # noqa    population, logbook = eaMuPlusLambda(pop, my_tool_box,                                         # 选多少个做为下一代,每次生成多少新个体                                         mu=150, lambda_=100,                                         # 交叉率、变异率,代数                                         cxpb=0.5, mutpb=0.1, ngen=3,                                         # 名人堂参数                                         # alpha=0.05, beta=10, gamma=0.25, rho=0.9,                                          stats=stats, halloffame=hof, verbose=True,                                         # 早停                                         early_stopping_rounds=5)


代码所在位置(还有一些细节在持续优化中):

代码已经提交至星球:AI量化实验室——量化投资的星辰大海

好好努力,积累本金,构建一人企业。 
每天“不管”一点点,每天就变强一天天。
代码和数据下载:AI量化实验室——2025量化投资的星辰大海

AI量化实验室 星球,已经运行三年多,1800+会员。

aitrader代码,因子表达式引擎、遗传算法(Deap)因子挖掘引等,支持vnpy,qlib,backtrader和bt引擎,内置多个年化30%+的策略,每周五迭代一次,代码和数据在星球全部开源。


点击 “查看原文”,直接访问策略集合

扩展  •  历史文章   


年化390%,回撤7%,夏普6.32 | A股量化策略配置

年化30.24%,最大回撤19%,综合动量多因子评分策略再升级(python代码+数据)

年化429%,夏普5.51 | 全A股市场回测引擎构建

年化443%,回撤才7%,夏普5.53,3积分可查看策略参数

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/187378