策略优化

 

了解优化

通过将交易概念,思想和对历史市场行为的观察实施到交易系统中来创建策略。交易系统的想法暗示着一定程度的市场行为优化。

策略优化过程进一步增强了该过程并使之自动化。策略优化是针对定义的标准搜索一组最佳参数。通过测试一系列信号输入值,优化可以根据历史数据选择与最佳策略绩效相对应的值。优化有助于更好地理解策略的特征,并为进场和出场创建新的标准。

不同的交易者使用不同的标准来定义策略绩效。一些交易者使用最高的净利润,而其他交易者使用最低的亏损。MultiCharts让交易者定义自己的标准。

如果用户仅基于一段时间的历史数据中的最佳绩效来搜索输入的组合,而过多地关注可能再也不会发生的市场条件,则优化可能会产生不利影响。这种方法称为优化曲线拟合。实际交易中的表现将有所不同,因为历史模式极不可能被重复。

优化方法

有两种优化方法:穷举优化和遗传算法。

2.1 了解穷举搜索优化

穷举(也称为Brute-Force)优化系统地遍历所有潜在组合,以寻求最佳解决方案。这种方法的优点是将检查每个单独的组合并确定绝对的最佳解决方案。

穷举优化所需的时间长度与所有可能的解决方案的总数成比例。这种方法的缺点是,除非涉及相对较少的参数,否则达到解决方案所需的时间可能会变得无法接受。因此,穷举优化可能仅在存在有限数量的可能解决方案时才适用。

2.2 了解遗传算法优化

遗传算法优化仅评估更有前途的组合,在穷举方法所需的一部分时间内即可找到接近最优的解决方案,从而使遗传算法优化功能强大到足以分析具有数百个参数的策略。遗传优化器设置为该技术增加了灵活性。

基于GA的搜索算法利用了模仿生物学进化的方法。该算法首先测试多个随机组合,选择最有潜力的组合,然后进一步组合和修改它们,以最终获得最佳输入组合。遗传算法无需机械地检查每个保守的组合,而是迅速缩小了潜在赢家的数量,找到并集中精力于最有利可图和最稳定的领域。因此,遗传算法避免了在最低潜在净利润区域中进行多余的计算。遗传算法方法在需要优化的许多领域中众所周知并被接受。

GA方法的缺点是找到的解决方案将是接近绝对最优解的解决方案,但不一定是绝对最优解本身。但是,在有大量可能的解决方案的情况下,此缺点可以通过处理能力和节省时间来弥补。

总的来说,遗传算法的工作主要是关于两个摘要:一个个体(或基因组)和一个算法(即遗传算法本身)。每个基因组实例代表一个唯一的输入组合,而GA本身定义了进化的方式。遗传算法使用给定的交易策略来确定基因组如何“适合”生存,例如,在选择净利润作为优化标准的情况下,输入组合会产生多少净利润。

2.2.1 关于 GA

以下是一些GA定义,可帮助您理解流程:

适应度 -个人的整体表现(例如,净利润)。

基因组(个体) -策略输入值的独特组合。

基因 -给定策略的输入变量之一。

染色体 -一组基因,通常在功能上相关。

交叉 -从两个“父”基因组生成“子”的过程。交叉涉及多个基因组。

突变 -一种过程,当一个基因被改变并且接收到一个既不是来自“母亲”也不是“父亲”的值时。

注:每次突变仅涉及一个基因组。

遗传代数(人口) -一组个体(基因组),全部在同一时间“出生”。

收敛- 连续两代之间的平均适应度提高的程度;随着改进程度的降低,一代又一代人正在融合。

 

简而言之,优化过程如下:

基于提供的众多输入组合,创建了一组基因组。

评估每个人的健康状况。

优胜劣汰的成员将被保留,最不适合的成员将逐渐被丢弃。

通过应用交叉和突变操作以及选择和/或替换策略(内置在GA中),可以从先前群体的其余成员中生成一个新的个体群体。

对这些新个体的适应性进行评估,保留最适合的成员,逐渐淘汰最不适合的成员

重复该过程,直到达到指定的收敛度或世代数(取决于所选的GA设置)。

2.2.2 GA流程的详细说明

详细地,优化过程如下:

在确定所有可能的组合数量之后,选择最佳数量的个体。

每个人都是随机选择的。这些人组成了第一代。最佳人数会自动放置在“ 设置族群大小”框旁边,并且可以手动更改。

提示:“族群大小”值过大会导致计算时间增加,而“族群大小”值过小会导致计算精度下降。

注意:MultiCharts的GA支持人为排斥人口。这意味着相同的个体不能存在于相同的总体中,因此总体规模不能超过输入组合的总数。每一代的人口规模都是恒定的。

评价每个个体的适合度,并丢弃最不适合的个体。

通过应用交叉和突变操作以及取决于GA亚型的选择和/或替换策略,可以从先前种群的其余成员中生成一个新的个体种群:

2.2.3 交叉和变异

 MultiCharts使用所谓的数组统一交叉。使用这种交叉类型,每个孩子的基因都可以以相等的概率来自每个父母。

在“ 交叉概率”字段中,指定每个人交叉的概率;通常的值范围是0.95-0.99,默认值为0.95。

MultiCharts使用所谓的随机翻转突变。使用此突变类型,每个基因都可以随机替换为任何其他可能的基因。

在“ 突变概率”字段中,指定了每个个体的突变概率;通常值范围是0.01-0.05,默认值是0.05。

提示:太大的“变异概率”值将使搜索成为原始随机搜索。

2.2.4 GA子类型和替换方案

GA子类型定义了GA创建新个体并在创建下一代时替换旧个体的方式。

可以在“ 遗传算法子类型”部分中设置GA子类型。

有两种GA子类型:基本和增量。

基本子类型是标准的所谓“简单遗传算法”。该算法使用非重叠遗传代数和Elitism模式(可选)。对于每一代,该算法都会创建一个全新的个体种群(如果选择了“精英法”选项,则最适合的个体会转移到下一代)。

精英模式仅适用于基本GA亚型,它允许优胜劣汰的个体在多代人的生命中存活并产生“子代”。

增量子类型不会为每一代创建一个全新的种群。每次创建下一代时,它仅将一个或两个孩子添加到人口中。这一个或两个孩子代替了上一代中的一个或两个人。根据要使用的替换方案来选择要由子代替换的个人。

2.2.5 替换方案

替换模式仅适用于增量子类型。模式定义了如何将新一代集成到总体中。有三种可用的方案:最坏,父代和随机。

 -最不适合的人被替换

 -父母个人被替换

随机 -随机替换个人

评价每个个体的适合度,并丢弃最不适合的个体。

重复该过程,直到达到指定的收敛度或世代数(取决于所选的GA设置)。

2.2.6 GA收敛类型

遗传算法优化过程没有毫无疑问的最终结果,因此可以永远进行下去。因此,必须指定一个“终点”,以指示优化过程何时必须结束。

两个GA优化“结束点”的标准类型可供选择:生成终止收敛终止

-  一旦达到指定的最大生成数量,生成终止将停止优化过程。

-  一旦达到定义的收敛速度,或者达到定义的最大遗传代数,收敛终止将停止优化过程。

在转化类型部分中选择了GA优化“终点”标准。

可以在相应的文本框中设置所需的最大遗传代数,最小遗传代数和转换率。

2.2.7 收敛速度

遗传代数的收敛率是最近两代的收敛值与当前遗传代数和N代前遗传代数的收敛值之比。

满足С[x – N] / C [x]> = P条件后,GA计算停止,其中:

x –当前代的序数;

С[x] –最近两代的收敛值;

N –定义的最小遗传代数;

注意:对于序数小于定义的最小遗传代数的世代,不计算收敛率。

© 2011-2023 MultiCharts All Rights Reserved.