文章 "MQL5 酷宝典 - 创建的环形缓存用于快速计算滑动窗口中的指标" - 页 2 1234 新评论 Реter Konow 2017.04.11 12:59 #11 Vasiliy Sokolov:我第一次完全理解了你的意思。什么是 "数值变化特征"?它是一些在动态中发生变化的值。因此,它是一个指标。我们没有必要为此开发一个环形缓冲器,只需创建一种算法,在几个环形指标的基础上计算您所说的 "变化特征 "即可。签名不是一个值。签名是数值的变化特征。 将其显示在图表上或制成指标并不重要。重要的是,程序可以看到当期价值变化的特征。重要的是要建立一种机制,从数据数组(即环形缓冲区) 中提取这一特征。 这种机制是最复杂的。如果您尝试创建它,您就会明白。 如果只是在图表上绘制一条曲线,我们的大脑就能看到数值变化本身的特征。它已经适应了这样做。 但如果要让程序看到它,那就难了。 Реter Konow 2017.04.11 13:35 #12 补充一点:目前,交易算法 只能 在市场环境参数的特定值下工作。它们看不到观察到的参数在不同时间尺度上的 "行为"。 Expert Advisors 无法从数据阵列(例如环形缓冲区)中记录的数值变化历史中提取有意义的信息。 环形缓冲区允许 "观察 "当前时间段内数值的变化,但如果不能提取变化的特征,则无法有效使用环形缓冲区。合成签名机制的出现将把智能交易系统提升到一个新的水平。用户将能在其程序的交易条件内设定市场参数变化的性质。 这种程序的水平和质量将远远超过我们现在所做的。 forexman77 2017.04.11 14:26 #13 有趣的文章。例如,当我在 MT4 中按最后 50 个条形图计算指标时,在测试器中,该指标的运行速度比按所有条形图计算要快得多。我的印象是,在 MT5 中,这种方法( 按最后 n 个条形图计算指标)并没有快很多。谁知道是这样还是我做错了什么? Vasiliy Sokolov 2017.04.11 14:37 #14 forexman77:有趣的文章。例如,当我在 MT4 中按最后 50 个条形图计算指标时,在测试器中,该指标的运行速度比按所有条形图计算要快得多。我的印象是,在 MT5 中,这种方法( 按最后 n 个条形图计算指标)并没有快很多。谁知道是这样还是我做错了什么? 我不太明白计算方法。任何指标的计算都需要 n 个周期。如果 n=50,那么就按最后 50 个条形图计算。那么对所有柱状图的计算又是怎样的呢? forexman77 2017.04.11 14:45 #15 Vasiliy Sokolov: 我不太明白计算方法。任何指标的计算都需要 n 个周期。如果 n=50,那么就按最后 50 个条形图计算。那么对所有柱状图的计算又是什么呢? 对最后 n 个条形图的计算是对 50 个条形图的计算,而对所有条形图的计算是对终端中所有可用历史记录(Bars-Period_)的计算。在 MT4 中,我使用了这种结构:P=Period_+10; limit=Bars-counted_bars-1; if (limit > P)limit=P;//也就是说,如果限值大于 P,那么我们就从数字 P 的条形图开始计算。 for(int i=limit;i>=0;i--)在 Expert Advisor 中调用指标,不是在每个柱状图上调用,而是在多个条件触发时调用(指标调用 位于多个条件运算符的主体中)。在 MT5 中,这种方法的优化速度并没有降低多少。 Andrey Khatimlianskii 2017.04.11 19:08 #16 forexman77:有趣的文章。例如,当我在 MT4 中按最后 50 个条形图计算指标时,在测试器中,该指标的运行速度比按所有条形图计算要快得多。我的印象是,在 MT5 中,这种方法( 按最后 n 个条形图计算指标)并没有快很多。谁知道是这样还是我做错了什么?唯一的区别是由测试人员准备的 1000 条的初始计算速度。这样,任何经济实惠的指标在 MT4 和 MT5 中的运行速度都一样快。 Vasiliy Sokolov 2017.04.12 16:18 #17 Andrey Khatimlianskii:不同的只是测试人员对 1000 个条形图进行初始计算的速度。然后,任何经济上编写的指标在 MT4 和 MT5 中的运行速度都一样快。 说到速度,MQL 不是用手指做出来的,它的计算速度非常快。快到不容易超越标准解决方案。以 ArrayMaximum/ArayMinimum 为例。这两个函数都是通过完全搜索传递的数组来查找最大值和最小值。由于传入数组的元素总是未知的,因此不可能减少这种计算。本文介绍了极值搜索的优化变体。由于其中的值是按顺序到达的,因此可以通过编写优化算法来减少搜索量。不过,这种优化算法的优势只有在序列足够大时才会显现。如果数列不大,只有 5-10-20 个元素,那么两种算法的效果都一样好。我的意思是,默认情况下,开发人员会提供非常快的解决方案,而且通常不可能对其进行改进,这就是为什么我强烈建议初学者 不要使用他们认为可以加快代码速度的编程结构技巧。 forexman77 2017.04.12 17:06 #18 Vasiliy Sokolov: 使用他们认为可以加快代码速度的编程结构。在 MT4 中,在这种扭曲的帮助下,优化速度快了很多倍,但我似乎看不到。很可能我在 MT5 中做错了什么。也许根本不是指标的问题,而是 EA 的问题。 Andrey Khatimlianskii 2017.04.13 00:57 #19 forexman77:在 MT4 中,有了这个转折的帮助,优化速度快了很多倍,我不这么认为,我看得出来。很有可能我在 MT5 中做错了什么。也许根本不是指标的问题,而是 EA 的问题。 瓦西里说的是初学者。90% 的 MT 测试器和优化器用户不会真正需要它。 Vasiliy Sokolov 2017.04.13 11:20 #20 forexman77: 对最后 n 个条形图的计算是对 50 个条形图的计算,而对所有条形图的计算是对终端中所有可用历史记录(Bars-Period_)的计算。我在 MT4 中使用的就是这种结构:在 Expert Advisor 中调用指标,不是在每个柱状图上调用,而是在触发多个条件时调用(指标调用 位于多个条件运算符的主体中)。在 MT5 中,这种方法的优化速度并没有降低多少。只计算最后一个指标值,而不是在出现一个新的刻度线时完全重新计算,这是一个标准的故事,奇怪的是您竟然开始讨论这个问题。更奇怪的是,你还把它说成是你发现的窍门。实际上,这是编写所有指标的标准。文档中也有提及。这就是为什么每个人都在最后一栏/刻度上使用重新计算。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我第一次完全理解了你的意思。
什么是 "数值变化特征"?它是一些在动态中发生变化的值。因此,它是一个指标。我们没有必要为此开发一个环形缓冲器,只需创建一种算法,在几个环形指标的基础上计算您所说的 "变化特征 "即可。
签名不是一个值。签名是数值的变化特征。
将其显示在图表上或制成指标并不重要。重要的是,程序可以看到当期价值变化的特征。重要的是要建立一种机制,从数据数组(即环形缓冲区) 中提取这一特征。
这种机制是最复杂的。如果您尝试创建它,您就会明白。
如果只是在图表上绘制一条曲线,我们的大脑就能看到数值变化本身的特征。它已经适应了这样做。
但如果要让程序看到它,那就难了。
补充一点:
目前,交易算法 只能 在市场环境参数的特定值下工作。它们看不到观察到的参数在不同时间尺度上的 "行为"。
Expert Advisors 无法从数据阵列(例如环形缓冲区)中记录的数值变化历史中提取有意义的信息。
环形缓冲区允许 "观察 "当前时间段内数值的变化,但如果不能提取变化的特征,则无法有效使用环形缓冲区。
合成签名机制的出现将把智能交易系统提升到一个新的水平。用户将能在其程序的交易条件内设定市场参数变化的性质。
这种程序的水平和质量将远远超过我们现在所做的。
有趣的文章。
例如,当我在 MT4 中按最后 50 个条形图计算指标时,在测试器中,该指标的运行速度比按所有条形图计算要快得多。
我的印象是,在 MT5 中,这种方法( 按最后 n 个条形图计算指标)并没有快很多。谁知道是这样还是我做错了什么?
有趣的文章。
例如,当我在 MT4 中按最后 50 个条形图计算指标时,在测试器中,该指标的运行速度比按所有条形图计算要快得多。
我的印象是,在 MT5 中,这种方法( 按最后 n 个条形图计算指标)并没有快很多。谁知道是这样还是我做错了什么?
我不太明白计算方法。任何指标的计算都需要 n 个周期。如果 n=50,那么就按最后 50 个条形图计算。那么对所有柱状图的计算又是什么呢?
对最后 n 个条形图的计算是对 50 个条形图的计算,而对所有条形图的计算是对终端中所有可用历史记录(Bars-Period_)的计算。在 MT4 中,我使用了这种结构:
在 Expert Advisor 中调用指标,不是在每个柱状图上调用,而是在多个条件触发时调用(指标调用 位于多个条件运算符的主体中)。
在 MT5 中,这种方法的优化速度并没有降低多少。
有趣的文章。
例如,当我在 MT4 中按最后 50 个条形图计算指标时,在测试器中,该指标的运行速度比按所有条形图计算要快得多。
我的印象是,在 MT5 中,这种方法( 按最后 n 个条形图计算指标)并没有快很多。谁知道是这样还是我做错了什么?
唯一的区别是由测试人员准备的 1000 条的初始计算速度。这样,任何经济实惠的指标在 MT4 和 MT5 中的运行速度都一样快。
不同的只是测试人员对 1000 个条形图进行初始计算的速度。然后,任何经济上编写的指标在 MT4 和 MT5 中的运行速度都一样快。
使用他们认为可以加快代码速度的编程结构。
在 MT4 中,在这种扭曲的帮助下,优化速度快了很多倍,但我似乎看不到。很可能我在 MT5 中做错了什么。
也许根本不是指标的问题,而是 EA 的问题。
在 MT4 中,有了这个转折的帮助,优化速度快了很多倍,我不这么认为,我看得出来。很有可能我在 MT5 中做错了什么。
也许根本不是指标的问题,而是 EA 的问题。
对最后 n 个条形图的计算是对 50 个条形图的计算,而对所有条形图的计算是对终端中所有可用历史记录(Bars-Period_)的计算。我在 MT4 中使用的就是这种结构:
在 Expert Advisor 中调用指标,不是在每个柱状图上调用,而是在触发多个条件时调用(指标调用 位于多个条件运算符的主体中)。
在 MT5 中,这种方法的优化速度并没有降低多少。
只计算最后一个指标值,而不是在出现一个新的刻度线时完全重新计算,这是一个标准的故事,奇怪的是您竟然开始讨论这个问题。更奇怪的是,你还把它说成是你发现的窍门。实际上,这是编写所有指标的标准。文档中也有提及。这就是为什么每个人都在最后一栏/刻度上使用重新计算。