交易中的机器学习:理论、模型、实践和算法交易 - 页 3301 1...329432953296329732983299330033013302330333043305330633073308...3399 新评论 Maxim Dmitrievsky 2023.10.11 18:58 #33001 Andrey Dik #:是的,桑尼奇写道那里没有极值,他错了,因为任何函数都有极值。 极值是函数在给定区间或给定区域内达到最大值(最大值)或最小值(最小值)的点。极值可以是局部的,即函数仅在某点的某个邻域达到极值;也可以是全局的,即函数在整个给定区间或给定区域内达到极值。 极值总是存在的,即使你没有刻意去寻找(你使用的算法会为你完成搜索操作)。没有优化的学习是不可能的,而没有正确的 FF 分配,优化也是不可能的。如果搜索极值的工作是为你完成的,而且是隐藏的(缝在算法中),这并不意味着它们不存在(极值和优化)。 那里没有任何功能。 够了,别再说票房信息了。我知道什么是优化。 mytarmailS 2023.10.11 20:13 #33002 mytarmailS #:这样吗?它真的能应对一百万种情况吗?我对开关和 C++ 的东西有点迷茫。前两个函数是 R 的实现,最后一个是C++ 的 switch。Unit: microseconds expr min lq mean median uq max neval rule(n = sample(1:200, 1), x) 40.482 44.473 57.18044 46.754 51.886 2688.931 1000 rule2(n = sample(1:200, 1), x) 29.079 35.351 567.03671 38.202 43.904 86712.314 1000 rule_cpp(n = sample(1:200, 1), x) 31.360 34.781 53.26793 36.491 40.482 4924.005 1000 事实上,根本没有增益,这怎么可能? Aleksey Vyazmikin 2023.10.11 21:06 #33003 mytarmailS #:我对这个开关和 C++ 有点不明白。前两个函数是 R 的实现,最后一个是C++ 的 switch。 事实上,根本就没有增益,怎么可能......? 能给我看看代码吗? 也许你是在浪费函数,因为答案已经得到了...... mytarmailS 2023.10.11 21:19 #33004 Aleksey Vyazmikin #:能给我看看代码吗?可能您是在徒劳地运行函数,因为答案已经收到了...... 代码和我发布的代码是一样的,只不过我把规则从 5 改成了 300。发布代码有什么意义?我已经决定了架构 Aleksey Vyazmikin 2023.10.11 21:26 #33005 mytarmailS #: 代码与您发布的相同,只是我将规则从 5 改为 300 发布 R 代码有什么意义? 我已经决定了架构 问题在于函数调用的代码。 mytarmailS 2023.10.11 21:27 #33006 Aleksey Vyazmikin #:问题出在函数调用代码中。 我不明白 fxsaber 2023.10.11 22:11 #33007 mytarmailS #:基本上没有任何收获,这怎么可能...... 可能有很多原因。脚本附后,下面是函数部分。 bool Rule0( const vector<double> &x ) { return(x[3] > x[4]); } bool Rule1( const vector<double> &x ) { return(x[0] < x[4]); } bool Rule2( const vector<double> &x ) { return(x[1] >= x[0]); } bool Rule3( const vector<double> &x ) { return(x[3] == x[4]); } bool Rule4( const vector<double> &x ) { return(x[0] != x[4]); } bool Rule5( const vector<double> &x ) { return(x[1] >= x[0]); } bool Rule6( const vector<double> &x ) { return(x[3] <= x[4]); } bool Rule7( const vector<double> &x ) { return(x[0] < x[4]); } bool Rule8( const vector<double> &x ) { return(x[1] >= x[0]); } bool Rule9( const vector<double> &x ) { return(x[3] <= x[4]); } bool rule3( const int n, const vector<double> &x ) { typedef bool (*RULE)( const vector<double>& ); static const RULE Rules[] = {Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9, Rule0, Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, Rule7, Rule8, Rule9}; return(Rules[n](x)); } #define BENCH(A) \ StartTime = GetMicrosecondCount(); \ A; \ Print(#A + " - " + (string)(GetMicrosecondCount() - StartTime) + " mcs"); void OnStart() { const vector<double> x = {1, 2, 3, 4, 5}; int Tmp = 0; ulong StartTime; BENCH(for (uint i = 1 e8; (bool)i--;) Tmp += rule(i % 100, x)); BENCH(for (uint i = 1 e8; (bool)i--;) Tmp += rule2(i % 100, x)); BENCH(for (uint i = 1 e8; (bool)i--;) Tmp += rule3(i % 100, x)); // BENCH(for (uint i = 1e8; (bool)i--;) Tmp += rule(i % 100, x)); // Если добавить эту строку, то выше rule замедлится. // BENCH(for (uint i = 1e8; (bool)i--;) Tmp += rule2(i % 100, x)); // Если добавить эту строку, то выше rule2 замедлится. // BENCH(for (uint i = 1e8; (bool)i--;) Tmp += rule3(i % 100, x)); // Если добавить эту строку, то выше rule3 замедлится. Print(Tmp); } 结果。 for (uint i = 1 e8; (bool)i--;) Tmp += rule(i % 100, x) - 505436 mcs for (uint i = 1 e8; (bool)i--;) Tmp += rule2(i % 100, x) - 261261 mcs for (uint i = 1 e8; (bool)i--;) Tmp += rule3(i % 100, x) - 709846 mcs 不清楚这里测量的是什么--请看突出显示的注释。据称比规则 2 快得多。 附加的文件: Switch_VS_Func.mq5 10 kb Rorschach 2023.10.11 22:20 #33008 fxsaber #:有趣的是,就数据量(报价)而言,人脑(作为神经网络)与 MO 相比,就像输卵管与人相比一样。然而,原始人类已经证明,他们可以创造出相当不错的工作 TC。事实证明,不需要如此庞大的数据量就能创建一个工作正常的 TC。举例来说,人类是如何建立起有效的剥头皮模型的,这对我来说是个谜。这几乎完全是在没有数字计算器的情况下完成的。这种情况显然是这样的: 我经常看到某种扁平化的现象(这几天我一直在屏幕上傻傻地磨)。 我会尝试用原始的 TS 在上面赚钱。 它的耗电量并不大。我应该再完善一下 TS。我看了一下交易历史 - 看起来有些地方可以改进。 它开始增加了一点。重复第 3 点。 没有数字计算器。我只看了第 1 点,然后就开始做了。这种方法的概率似乎为零,但不知何故却能奏效。某种有效的疯狂捅法。 显然,在某种潜意识里,人类大脑仍然能够在极少量的数据中找到 "模式"。你不能说这是运气。这是一个谜。 在我看来,所有的秘密都在于经验的传承,所有的新事物都是建立在上一代成果的基础上。以现代处理器为例。对于 19 世纪的人来说,这就是魔法。而对于 20 世纪的人来说,这将是一项非常复杂的技术,没有合适的工具来进行逆向工程。只有通过知识转移和逐步发展,我们才能达到现代技术水平。这就是为什么人们说,如果发生第三次世界大战,他们将在第四次世界大战中用石头打仗。关于交易,有这样的传说:早期的市场要容易得多,天顶交易者借助移动平均线发家致富,而现在则不可能了。 mytarmailS 2023.10.11 22:35 #33009 fxsaber #:这里的衡量标准并不明确--请参见突出显示的评论。据称比规则 2 快得多。 在#32978 中,对该函数及其不同实现(等价物)(包括 C++ 实现)进行了测量。 好吧,我已经决定了现在的架构,我将暂时使用纯 R-ke,我已经找到了将速度提高 25 倍的方法,而且还有不在代码中添加 C++ 的优点/充分理由。 mytarmailS 2023.10.11 22:43 #33010 你可以挑战我的AMO "解决TS问题" 给我一小段你使用的数据。 描述你在代码中使用了哪些运算符、函数和变量。 给我你的等式或算法信号 我创建一个搜索语法,然后把代码作为密码提取出来 解出你的 TS。 1...329432953296329732983299330033013302330333043305330633073308...3399 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,桑尼奇写道那里没有极值,他错了,因为任何函数都有极值。
极值是函数在给定区间或给定区域内达到最大值(最大值)或最小值(最小值)的点。极值可以是局部的,即函数仅在某点的某个邻域达到极值;也可以是全局的,即函数在整个给定区间或给定区域内达到极值。
那里没有任何功能。
够了,别再说票房信息了。我知道什么是优化。这样吗?
它真的能应对一百万种情况吗?
我对开关和 C++ 的东西有点迷茫。
前两个函数是 R 的实现,最后一个是C++ 的 switch。
我对这个开关和 C++ 有点不明白。
前两个函数是 R 的实现,最后一个是C++ 的 switch。
能给我看看代码吗?
也许你是在浪费函数,因为答案已经得到了......
能给我看看代码吗?
可能您是在徒劳地运行函数,因为答案已经收到了......
代码与您发布的相同,只是我将规则从 5 改为 300
问题在于函数调用的代码。
问题出在函数调用代码中。
基本上没有任何收获,这怎么可能......
可能有很多原因。脚本附后,下面是函数部分。
结果。
不清楚这里测量的是什么--请看突出显示的注释。据称比规则 2 快得多。
有趣的是,就数据量(报价)而言,人脑(作为神经网络)与 MO 相比,就像输卵管与人相比一样。
然而,原始人类已经证明,他们可以创造出相当不错的工作 TC。事实证明,不需要如此庞大的数据量就能创建一个工作正常的 TC。
举例来说,人类是如何建立起有效的剥头皮模型的,这对我来说是个谜。这几乎完全是在没有数字计算器的情况下完成的。
这种情况显然是这样的:
显然,在某种潜意识里,人类大脑仍然能够在极少量的数据中找到 "模式"。你不能说这是运气。这是一个谜。
在我看来,所有的秘密都在于经验的传承,所有的新事物都是建立在上一代成果的基础上。以现代处理器为例。对于 19 世纪的人来说,这就是魔法。而对于 20 世纪的人来说,这将是一项非常复杂的技术,没有合适的工具来进行逆向工程。只有通过知识转移和逐步发展,我们才能达到现代技术水平。这就是为什么人们说,如果发生第三次世界大战,他们将在第四次世界大战中用石头打仗。关于交易,有这样的传说:早期的市场要容易得多,天顶交易者借助移动平均线发家致富,而现在则不可能了。
这里的衡量标准并不明确--请参见突出显示的评论。据称比规则 2 快得多。
在#32978 中,对该函数及其不同实现(等价物)(包括 C++ 实现)进行了测量。
好吧,我已经决定了现在的架构,我将暂时使用纯 R-ke,我已经找到了将速度提高 25 倍的方法,而且还有不在代码中添加 C++ 的优点/充分理由。
你可以挑战我的AMO
"解决TS问题"
给我一小段你使用的数据。
描述你在代码中使用了哪些运算符、函数和变量。
给我你的等式或算法信号
我创建一个搜索语法,然后把代码作为密码提取出来 解出你的 TS。