iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何利用遗传算法库DEAP优化交易策略
  • 911
分享到

如何利用遗传算法库DEAP优化交易策略

2023-06-02 07:06:51 911人浏览 八月长安
摘要

这篇文章给大家分享的是有关如何利用遗传算法库DEAP优化交易策略的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。优化的对象就是这样一个list数组 [16, 8, 24, 1, 13, 8, 1],其实就

这篇文章给大家分享的是有关如何利用遗传算法库DEAP优化交易策略的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

  1. 优化的对象就是这样一个list数组 [16, 8, 24, 1, 13, 8, 1],其实就是交易策略的参数,比如cciwindows,BollDev。类似于DNA。

  2. 首先要生成这样一个数组,这里keke做了一个方法,具体就是随机生成一个数组,同时确保每个数在一个范围内。

    这里我加了一个数组,针对K线的时间,这样就不会出现7分钟k线这个比较奇怪的情况。

    1. timerange = [2,3,5,10,15,20]bartime = random.choice(timerange
  3. 就是设定进化选择,这里就是调用vnpy回测方法,用回测的指标,比如年化收益,sharpe ratio,收益亏损比等。这里建议加入一个清理的,避免多线程问题。我是使用按此统计,而不是按日统计;感觉比较准确   engine.clearBacktestingResult()

  4. 然后就是对于这一大堆不同策略数组群体进行遗传进化,包括按照概率任意两个list数组交叉包含的数,生成新的list,类似于繁殖。同时也有一定概率

    一个list数字改变;还有就是有一个名人堂(HallofFame)机制,选择几个最好的数组,一直保持在群体里面,其实这些名人堂存在价值变成了后面的参照组。

    这里原文是用DEAP原生方法mutUnifORMInt,在(6,40)直接随机生成一个数字替代原来的。但是考虑之前创建时候,每个是有个范围,可能适合抵押给数字的范围并不适合最后一个,比如k线时间。这里我做了个自己突变方法替代原来的。

    • tools.mutUniformInt,low = 4,up = 40,indpb=0.6)
    • def mutArrayGroup(individual,parameterlist, indpb):    size = len(individual)    parameterlist  = parameterlist()    for i in xrange(size):        if random.random() < indpb:            individual[i] = parameterlist[i]    return individual, toolbox.reGISter("mutate", mutArrayGroup, parameterlist = parameter_generate, indpb=0.6

    这样跑下来就差不多了,如果想要多线程请在toolbox初始化后加入下面代码

    import multiprocessingpool = multiprocessing.Pool(processes=(multiprocessing.cpu_count()-2))toolbox.register("map", pool.map)

感谢各位的阅读!关于“如何利用遗传算法库DEAP优化交易策略”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何利用遗传算法库DEAP优化交易策略

本文链接: https://www.lsjlt.com/news/229383.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用遗传算法库DEAP优化交易策略
    这篇文章给大家分享的是有关如何利用遗传算法库DEAP优化交易策略的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。优化的对象就是这样一个list数组 [16, 8, 24, 1, 13, 8, 1],其实就...
    99+
    2023-06-02
  • 针对VNPY策略遗传算法优化怎样写了一个类GeneticOptimizeStrategy
    这篇文章将为大家详细讲解有关针对VNPY策略遗传算法优化怎样写了一个类GeneticOptimizeStrategy,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。写了一个类,GeneticO...
    99+
    2023-06-02
  • 如何在Python中用遗传算法优化垃圾收集
    这篇文章主要讲解了“如何在Python中用遗传算法优化垃圾收集”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Python中用遗传算法优化垃圾收集”吧!背景在其中一个章节中,Mitche...
    99+
    2023-06-16
  • Java如何利用遗传算法求解最短路径
    这篇“Java如何利用遗传算法求解最短路径”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何利用遗传算法求解最短路径...
    99+
    2023-07-01
  • 如何优化PHP开发中的缓存策略和算法
    缓存是提高Web应用性能的重要手段之一,而在PHP开发中,优化缓存策略和算法则是提高Web应用性能的关键。本文将介绍一些优化PHP开发中的缓存策略和算法的方法,并给出具体的代码示例。一、选择适当的缓存算法在PHP开发中,常见的缓存算法包括最...
    99+
    2023-10-21
    例如使用哈希表
  • GO 编程中的算法优化策略,容器技术如何助力 Windows 平台?
    在 GO 编程中,算法优化策略是一项非常重要的工作。随着计算机的不断发展,算法优化已经成为了程序员必备的技能之一。在本文中,我们将探讨 GO 编程中的算法优化策略,以及如何借助容器技术助力 Windows 平台。 算法优化策略 在 GO 编...
    99+
    2023-09-13
    编程算法 容器 windows
  • 如何利用 Unix 容器优化 Python 编程算法?
    在当今数字化时代,Python编程已经成为了一种非常流行的编程语言。尽管Python拥有许多优点,但是在处理大规模数据时,Python的执行速度却相对较慢。为了解决这个问题,我们可以使用Unix容器,以提高Python编程算法的效率。 Un...
    99+
    2023-06-15
    编程算法 unix 容器
  • 如何利用 Python 的 load 函数优化编程算法?
    Python 是一门广泛使用的编程语言,由于其简单易学和功能强大的特点,已经成为了许多开发者的首选语言。在 Python 中,load 函数是一个非常有用的函数,可以帮助我们优化编程算法,提高程序的性能。本文将介绍如何利用 Python 的...
    99+
    2023-06-21
    load 编程算法 函数
  • 如何利用 ASP 编程算法优化响应性能?
    ASP(Active Server Pages)是一种服务器端脚本语言,用于开发动态Web页面。ASP编程算法是指开发人员在ASP上应用的算法,用于优化响应性能。在本文中,我们将探讨如何利用ASP编程算法优化响应性能。 ASP编程算法的优化...
    99+
    2023-07-10
    编程算法 响应 框架
  • LeetCode算法如何优化容器的资源利用率?
    随着云计算的普及,容器技术成为了应用部署的重要手段。但是,容器的资源利用率一直是个难题。LeetCode算法提供了一些优化方法,可以帮助我们更好地利用容器资源。 一、使用滑动窗口算法 滑动窗口算法是一种常用的优化方法,可以在很短的时间内处...
    99+
    2023-06-13
    分布式 leetcode 容器
  • 如何利用PHP编程算法优化框架缓存性能?
    在现代Web应用程序中,缓存是提高性能和响应速度的关键因素之一。缓存技术可以减少对数据库等资源的访问,从而加快应用程序的响应速度。在PHP中,我们可以使用各种缓存技术来提高应用程序的性能。本文将介绍如何利用PHP编程算法优化框架缓存性能。...
    99+
    2023-08-07
    编程算法 缓存 框架
  • Python 学习笔记:如何利用编程算法优化容器?
    在日常的编程中,我们经常需要使用容器来存储和管理数据。然而,随着数据量的增加,容器的效率会逐渐降低,这时候就需要利用编程算法来优化容器,提高程序的效率。 下面,我们将介绍几种常用的编程算法,帮助您优化容器。 利用哈希表优化查找 哈希表...
    99+
    2023-09-09
    学习笔记 编程算法 容器
  • ASP 缓存优化秘籍:如何利用 NumPy 编程算法实现?
    在 ASP 开发中,缓存是一种非常重要的技术,能够显著提高网站的性能和用户体验。但是,缓存的实现并不是一件简单的事情,需要我们针对不同的场景选择不同的缓存策略和优化方法。本文将介绍如何利用 NumPy 编程算法实现 ASP 缓存优化,帮助...
    99+
    2023-10-04
    numy 缓存 编程算法
  • LeetCode算法题:如何利用异步编程优化数组操作?
    在处理大型数据集时,数组操作是一种非常常见的操作。但是,当数据集非常大时,数组操作可能会变得非常缓慢。为了处理这种情况,我们可以使用异步编程来优化数组操作。 本文将介绍如何使用异步编程来优化数组操作,并给出一个LeetCode算法题的实际...
    99+
    2023-11-12
    数组 异步编程 leetcode
  • ASP对象缓存:如何利用编程算法优化缓存使用?
    在ASP.NET中,对象缓存是一种非常有用的技术,它可以在服务器端缓存已经计算出的数据或对象,以便在后续请求中快速访问。这样可以显著提高应用程序的性能和响应速度。但是,如果不正确使用对象缓存,会导致应用程序的性能下降甚至崩溃。因此,我们需...
    99+
    2023-06-24
    对象 编程算法 缓存
  • PHP编程中,如何通过算法优化NumPy库的使用?
    NumPy是Python中广泛使用的科学计算库,它提供了高效的多维数组对象和各种计算功能。在PHP编程中,我们也可以使用NumPy库来进行科学计算,但是如何通过算法来优化NumPy库的使用呢?本文将介绍一些优化方法,并演示一些代码示例。 ...
    99+
    2023-07-26
    编程算法 unix numy
  • LeetCode算法题解:如何用NumPy库优化你的Java代码?
    LeetCode是一个非常著名的算法练习平台,每天都会有大量的程序员在上面练习算法题目。在LeetCode上,你可以学习到各种各样的算法和数据结构,提高自己的编程能力。然而,有些LeetCode题目需要对数据进行高效的处理,这时候,Num...
    99+
    2023-09-30
    numy linux leetcode
  • Spring框架中如何利用索引优化Java编程中的算法?
    Spring框架是一个非常流行的Java框架,它提供了一系列的工具和组件,可以让Java编程变得更加简单和高效。在Java编程中,算法是一个非常重要的领域,它涉及到数据结构、算法设计、算法分析等多个方面。在本文中,我们将介绍如何利用索引优化...
    99+
    2023-06-30
    索引 spring 编程算法
  • PHP编程中的算法优化:如何利用缓存提升性能?
    PHP是一门非常流行的服务器端脚本语言,它在网络应用程序开发中广泛应用。在PHP编程中,算法优化是提升性能的关键。本文将介绍如何利用缓存来优化PHP算法,提高程序性能。 一、什么是缓存? 缓存是指在计算机内存中存储数据的一种技术。当程序需...
    99+
    2023-07-04
    编程算法 缓存 ide
  • 如何利用PHP编程算法优化HTTP请求路径的处理?
    在Web开发中,处理HTTP请求路径是常见的任务。不幸的是,如果没有正确地处理请求路径,Web应用程序的性能和可靠性可能会受到影响。本文将介绍如何利用PHP编程算法优化HTTP请求路径的处理,从而提高Web应用程序的性能和可靠性。 一、什...
    99+
    2023-08-18
    编程算法 http path
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作