从MT4转移到MT5的问题。或者,更确切地说,在MT5中无法执行某些算法而不出现错误。 - 页 11 1...456789101112 新评论 Eugeni Neumoin 2019.07.31 16:05 #101 供思考的信息。 观察市场上公布的一些EA发展。或者一些文章。 他们经常在EA的经纪商选择要求中指定一个小点差。 而且,在我看来,MT5在很大程度上被调整为对市场的变化做出快速反应。这解释了为什么所有带有等待报价更新的刹车都被关闭。 这意味着,如果有更新的报价,终端将拒绝对时间序列的访问。不干扰一些快速算法。 这种范式有权利存在。在这种情况下,交易是短暂的。它被迅速输入。收集几个点。迅速退出。 但还有另一种范式。 市场上有一些极端情况,形成了市场反转。 这些极端情况甚至可能在几年前就已形成。但它们继续影响着当前的市场形势。 在这种情况下,也可以考虑到滴答或分钟历史上的瞬间变化。但它们不是决定性的。 在这种情况下,有可能等待报价更新,而不会因为访问中断而退出处理程序。而且它只在MT4中工作。 一些图片,并附有对所讲内容的解释。我们采取每月一次的tf。1995年3月、2000年10月和2007年7月的极端情况继续影响着市场。 即使是1985年2月的极端情况也有影响。 可以看出,用这些极值构建的线条被市场注意到了。 让我们转到其他时间框架。大约按照这样的比例,就像我们在做波浪式加价一样。这种选择可能会导致在每个TF中发展一个波段水平 每周tf。 D1: H4: M30: M5: M1: 我们看到历史上很久之前形成的极值对市场当前的势头有影响。 ---------------------------------- 应持续提供此类建筑的报价。 我将进一步继续。基本上图片中显示的所有东西都是在手工交易中使用的。 但是。有可能将不同时间段的报价输入到几个神经网络的输入中,例如图片中所代表的。每个NS将处理自己的数据。并在其输出上给出自己对所发生事情的理解。神经网络的输出将根据酒吧的接收时间同步进行。 在这种情况下,来自优先级较高的NS的信号比优先级较低的信号更重要。 从神经网络接收到的信号被送入以下NS的输入,并对优先级有一定的考虑。这里可能有一些变种。 例如,神经网络的第一层可以是LSTM类型的。在这种情况下,我们指的是神经网络从其时间框架中获取报价的层。第一层的每个神经网络可以有几层神经元。 求和神经网络可以有自己的架构。这更像是一项工程任务。 例如,可以用一些交易开仓的算法进行训练。在神经网络的第一层。也就是说,第一层的每个神经网络都是单独训练的。例如,我们在相应层的一个柱子结束时开启交易。你甚至可以在不同的方向开启交易。这些交易是有条件的。 在这些交易结束时,会发出一个信号来训练NS。 因此,聚合神经网络被赋予选择最佳交易模式的权利。 因此,我们得到的算法有点类似于DeepMinde团队在Alfa Zero中实现的算法。 你应该在所有选定的时间段的整个历史上训练这样一个网络。唯一需要考虑的是,MT5的所有时间序列都是基于分钟的。这是不正确的。 1993年以前关于欧元的NCC文件是由时间序列组成的。一定有一种算法可以重建真正的时间序列的时间框架。 你可以在一个货币对上进行训练。并在另一个人身上进行测试。 ------------------------------ 摘要。为什么在这种方法中,有必要对市场上发生的事情做出快速反应? Igor Makanu 2019.07.31 16:36 #102 Eugeni Neumoin: 对不起,离题了,但只要话题有趣,我就不能放弃。 胜利。 嗯,我的意思是这样的。 MQL有tyename() - 它返回字符串类型名称,甚至可以工作。 void OnStart() { Print(typename(Txt())); // в логе будет string } string Txt() { return(" Txt "); } 知道MyFunc()类型--写一个宏((,...)。当然,我可以编写所有类型为_Try_helper的宏...在一般情况下,我可能不是冒险家,因为我不知道如何 Eugeni Neumoin 2019.07.31 16:41 #103 Igor Makanu: 很抱歉有些离题,但只要是有趣的话题,我就不能放弃。 这很好。 [删除] 2019.07.31 16:54 #104 Igor Makanu: MQL有tyename() - 它返回字符串类型的名称,甚至可以工作。 知道MyFunc()类型--写一个宏((,...)。当然,我可以编写所有类型为_Try_helper的宏...嗯,我想我不是一个赌徒,因为我不知道如何 µl中的tyename()不会有任何帮助,它不会在编译时给出适合变量声明 的类型,只是打印出来。这就给我们留下了Try_d()、Try_i()、...。.我不知道如何在µl中获得decltype功能。 Igor Makanu 2019.07.31 17:12 #105 Vict: µl中的tyename()不会有帮助,它不会在编译时给你一个适合声明变量 的类型,只是打印它。这样我们就只剩下Try_d(), Try_i(), ....我不知道如何在µl中获得decltype功能。 嗯,我一点都不觉得自己是个赌徒!我甚至可以说绝对不是赌徒!"。)))- 我不知道如何,这就是一些东西将如何工作(我真的不明白它是如何在机器层面 "全部旋转 "的--我想我们有一个严格的类型化语言?) void OnStart() { int i = func(1); double d = func(1.123); string s = func("s"); Print("i = ",i); Print("d = ",d); Print("s = ",s); } template<typename T> T func(T invalue) { string s = typename(T); if(s=="int") return(invalue); if(s=="double") return(invalue); if(s=="string") return("Hello word!!!"); return(NULL); } 2019.07.31 21:07:05.304 tst2 (EURUSD,H1) i = 1 2019.07.31 21:07:05.304 tst2 (EURUSD,H1) d = 1.123 2019.07.31 21:07:05.304 tst2 (EURUSD,H1) s = Hello word!!! 你也可以描述一个指向函数的指针 typedef void(*TFuncvoidPTR)(void); 并进一步使用 TFuncvoidPTR func[]; .... func[0](); fxsaber 2019.07.31 17:14 #106 Vict: µl中的tyename()不会有帮助,它不会在编译时给出适合变量声明 的类型,只会打印出来。这使得我们只能将Try_d()、Try_i()、......相乘。.我不知道如何在µl中获得decltype功能。 一个带有静态T型变量的模板函数。 Artyom Trishkin 2019.07.31 17:17 #107 Igor Makanu: 谢谢你! 我看了你的帖子,不幸的是,你在很多方面都是对的,昨天我和版主Artem在这个话题上进行了很多交流,谈话的结果是:如果它是这样实施的,那么它就应该这样运作......一般来说,就像老广告中所说的 "你只是不知道如何烹饪它们!"。 我认为,MQL5编译器的结果真的很好(它的生产力很高!),但它作为一个交易终端 的使用 ...好吧,让我们这样说:它需要非常非常好的技术培训和欲望,比 "在旧的终端 "多写~30%的代码(--甚至这个短语在论坛上也是一个成熟的表达)。 阿伊-伊-伊...我没有这么说 :) 我是说--利用你所拥有的东西来获得你想要的结果。 我把其余的情绪留给自己。 Artyom Trishkin 2019.07.31 18:00 #108 Igor Makanu: 我没有说主持人Artem说过这样的话,我只是写了谈话的结果--我认为这是我的判断,我只能根据我的情绪和对谈话的分析形成判断....。)))) 也就是说,我不知道别人的脑袋里发生了什么,我只能看到自己的脑袋......幸运的是,现在在镜子里)))。 我会相信它,如果不是 谈话的结果:如果这样实施,那么它应该是有效的......就像以前的广告一样,"你 只是不知道如何烹饪它们!" 是 我的结论 是:如果它是这样实施的,那么它就应该是这样工作的......就像以前的广告一样,"我 只是不知道如何烹饪它们!" 因此,事实证明,从镜子中引用的一个头像据说是主持人阿尔特姆... 也好,如果是私下里的谈话。但是,对我没有说过的话公开下结论,就是用我所谓的完全错误的观点公开陷害我--我的观点与这句话中所谓的观点完全不同。 我可以发表我的意见。 让我们充分利用我们目前所拥有的,不要抱怨,帮助发现错误,并期待修复--它们确实得到了修复,并出现了新的好功能。 Igor Makanu 2019.07.31 18:27 #109 Artyom Trishkin: 我会相信它,如果不是 它是 但事实证明,从镜子里引用的一个头像据说是主持人阿尔特姆... 也好,如果是私下里的谈话。但是,对我没有说过的话公开下结论,就是公开用所谓我完全错误的观点来陷害我--我的观点与这句话中所谓的观点完全不同。 我可以发表我的意见。 我不是在抱怨,我是在帮助发现错误并要求修复--它们正在被修复,新的酷炫功能正在出现。 嗯,事情变得多么复杂....自己打扫卫生,我的意见...开发商对他们的产品有自己的看法,这是他们的业务,我的意见是......。如果你在2天内不更新这个主题,它就会被排在前面。 ...它将如何改变......好吧,今天一位好心人@Vict- 向我展示了一些简单的调试技术,最重要的是 - 我可以实现我的代码的可读性 - 这改变了我对MQL5的看法,一般来说,论坛的成员 我现在要闭嘴了,幸运的是有一个历史悠久的论坛,你不能回过头来,在这个论坛的搜索中看到太多关于我问题的答案。 [删除] 2019.08.01 03:59 #110 Igor Makanu: fxsaber 是正确的 - 有一个选项 template <typename T> T Try_helper(T val, bool assign) { static T sval; if (assign) sval = val; return sval; } #define Try(EXPR, MES) \ Try_helper(EXPR, true); \ if (Try_helper(EXPR, false) <= 0.0) { \ printf("Error: %s ", MES); \ return; \ } double f(double) {return DBL_MAX;} ulong f(ulong) {return ULONG_MAX;} void OnStart() { double d = Try(f(0.), "double error"); ulong u = Try(f(0), "ulong error"); } 这有点土气--EXPR将被计算两次,但还是比较灵活。不能说它是通用的(只针对算术类型。误差值必须相等,这是令人不快的。我试图通过结构/功能的明确专业化来避免这种情况,但这可能是不可能的。 template <typename T> bool Try_helper_is_valid(T val); template <> bool Try_helper_is_valid<string>(string val) {val==""?false:true;} // compile-time error template <typename T> struct S; template <> struct S<string> {...}; // compile-time error 好吧,看来无论你在µl的什么地方挖掘,你都会发现陷阱无处不在。也许,最好把自己限制在一个固定类型的高度专业化的小宏观上。 1...456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
供思考的信息。
观察市场上公布的一些EA发展。或者一些文章。
他们经常在EA的经纪商选择要求中指定一个小点差。
而且,在我看来,MT5在很大程度上被调整为对市场的变化做出快速反应。这解释了为什么所有带有等待报价更新的刹车都被关闭。
这意味着,如果有更新的报价,终端将拒绝对时间序列的访问。不干扰一些快速算法。
这种范式有权利存在。在这种情况下,交易是短暂的。它被迅速输入。收集几个点。迅速退出。
但还有另一种范式。
市场上有一些极端情况,形成了市场反转。
这些极端情况甚至可能在几年前就已形成。但它们继续影响着当前的市场形势。
在这种情况下,也可以考虑到滴答或分钟历史上的瞬间变化。但它们不是决定性的。
在这种情况下,有可能等待报价更新,而不会因为访问中断而退出处理程序。而且它只在MT4中工作。
一些图片,并附有对所讲内容的解释。
我们采取每月一次的tf。1995年3月、2000年10月和2007年7月的极端情况继续影响着市场。即使是1985年2月的极端情况也有影响。
可以看出,用这些极值构建的线条被市场注意到了。
让我们转到其他时间框架。大约按照这样的比例,就像我们在做波浪式加价一样。这种选择可能会导致在每个TF中发展一个波段水平
每周tf。
D1:
H4:
M30:
M5:
M1:
我们看到历史上很久之前形成的极值对市场当前的势头有影响。
----------------------------------
应持续提供此类建筑的报价。
我将进一步继续。基本上图片中显示的所有东西都是在手工交易中使用的。
但是。有可能将不同时间段的报价输入到几个神经网络的输入中,例如图片中所代表的。每个NS将处理自己的数据。并在其输出上给出自己对所发生事情的理解。神经网络的输出将根据酒吧的接收时间同步进行。
在这种情况下,来自优先级较高的NS的信号比优先级较低的信号更重要。
从神经网络接收到的信号被送入以下NS的输入,并对优先级有一定的考虑。这里可能有一些变种。
例如,神经网络的第一层可以是LSTM类型的。在这种情况下,我们指的是神经网络从其时间框架中获取报价的层。第一层的每个神经网络可以有几层神经元。
求和神经网络可以有自己的架构。这更像是一项工程任务。
例如,可以用一些交易开仓的算法进行训练。在神经网络的第一层。也就是说,第一层的每个神经网络都是单独训练的。例如,我们在相应层的一个柱子结束时开启交易。你甚至可以在不同的方向开启交易。这些交易是有条件的。 在这些交易结束时,会发出一个信号来训练NS。
因此,聚合神经网络被赋予选择最佳交易模式的权利。
因此,我们得到的算法有点类似于DeepMinde团队在Alfa Zero中实现的算法。
你应该在所有选定的时间段的整个历史上训练这样一个网络。唯一需要考虑的是,MT5的所有时间序列都是基于分钟的。这是不正确的。 1993年以前关于欧元的NCC文件是由时间序列组成的。一定有一种算法可以重建真正的时间序列的时间框架。
你可以在一个货币对上进行训练。并在另一个人身上进行测试。
------------------------------
摘要。为什么在这种方法中,有必要对市场上发生的事情做出快速反应?
对不起,离题了,但只要话题有趣,我就不能放弃。
嗯,我的意思是这样的。
MQL有tyename() - 它返回字符串类型名称,甚至可以工作。
知道MyFunc()类型--写一个宏((,...)。当然,我可以编写所有类型为_Try_helper的宏...在一般情况下,我可能不是冒险家,因为我不知道如何
很抱歉有些离题,但只要是有趣的话题,我就不能放弃。
这很好。
MQL有tyename() - 它返回字符串类型的名称,甚至可以工作。
知道MyFunc()类型--写一个宏((,...)。当然,我可以编写所有类型为_Try_helper的宏...嗯,我想我不是一个赌徒,因为我不知道如何
µl中的tyename()不会有任何帮助,它不会在编译时给出适合变量声明 的类型,只是打印出来。这就给我们留下了Try_d()、Try_i()、...。.我不知道如何在µl中获得decltype功能。
µl中的tyename()不会有帮助,它不会在编译时给你一个适合声明变量 的类型,只是打印它。这样我们就只剩下Try_d(), Try_i(), ....我不知道如何在µl中获得decltype功能。
嗯,我一点都不觉得自己是个赌徒!我甚至可以说绝对不是赌徒!"。)))- 我不知道如何,这就是一些东西将如何工作(我真的不明白它是如何在机器层面 "全部旋转 "的--我想我们有一个严格的类型化语言?)
2019.07.31 21:07:05.304 tst2 (EURUSD,H1) i = 1
2019.07.31 21:07:05.304 tst2 (EURUSD,H1) d = 1.123
2019.07.31 21:07:05.304 tst2 (EURUSD,H1) s = Hello word!!!
你也可以描述一个指向函数的指针
并进一步使用
TFuncvoidPTR func[]; .... func[0]();
µl中的tyename()不会有帮助,它不会在编译时给出适合变量声明 的类型,只会打印出来。这使得我们只能将Try_d()、Try_i()、......相乘。.我不知道如何在µl中获得decltype功能。
一个带有静态T型变量的模板函数。
谢谢你!
我看了你的帖子,不幸的是,你在很多方面都是对的,昨天我和版主Artem在这个话题上进行了很多交流,谈话的结果是:如果它是这样实施的,那么它就应该这样运作......一般来说,就像老广告中所说的 "你只是不知道如何烹饪它们!"。
我认为,MQL5编译器的结果真的很好(它的生产力很高!),但它作为一个交易终端 的使用 ...好吧,让我们这样说:它需要非常非常好的技术培训和欲望,比 "在旧的终端 "多写~30%的代码(--甚至这个短语在论坛上也是一个成熟的表达)。
阿伊-伊-伊...我没有这么说 :)
我是说--利用你所拥有的东西来获得你想要的结果。
我把其余的情绪留给自己。
我没有说主持人Artem说过这样的话,我只是写了谈话的结果--我认为这是我的判断,我只能根据我的情绪和对谈话的分析形成判断....。))))
也就是说,我不知道别人的脑袋里发生了什么,我只能看到自己的脑袋......幸运的是,现在在镜子里)))。
我会相信它,如果不是
谈话的结果:如果这样实施,那么它应该是有效的......就像以前的广告一样,"你 只是不知道如何烹饪它们!"
是
我的结论 是:如果它是这样实施的,那么它就应该是这样工作的......就像以前的广告一样,"我 只是不知道如何烹饪它们!"
因此,事实证明,从镜子中引用的一个头像据说是主持人阿尔特姆...
也好,如果是私下里的谈话。但是,对我没有说过的话公开下结论,就是用我所谓的完全错误的观点公开陷害我--我的观点与这句话中所谓的观点完全不同。
我可以发表我的意见。
让我们充分利用我们目前所拥有的,不要抱怨,帮助发现错误,并期待修复--它们确实得到了修复,并出现了新的好功能。
我会相信它,如果不是
它是
但事实证明,从镜子里引用的一个头像据说是主持人阿尔特姆...
也好,如果是私下里的谈话。但是,对我没有说过的话公开下结论,就是公开用所谓我完全错误的观点来陷害我--我的观点与这句话中所谓的观点完全不同。
我可以发表我的意见。
我不是在抱怨,我是在帮助发现错误并要求修复--它们正在被修复,新的酷炫功能正在出现。
嗯,事情变得多么复杂....自己打扫卫生,我的意见...开发商对他们的产品有自己的看法,这是他们的业务,我的意见是......。如果你在2天内不更新这个主题,它就会被排在前面。
...它将如何改变......好吧,今天一位好心人@Vict- 向我展示了一些简单的调试技术,最重要的是 - 我可以实现我的代码的可读性 - 这改变了我对MQL5的看法,一般来说,论坛的成员
我现在要闭嘴了,幸运的是有一个历史悠久的论坛,你不能回过头来,在这个论坛的搜索中看到太多关于我问题的答案。
fxsaber 是正确的 - 有一个选项
这有点土气--EXPR将被计算两次,但还是比较灵活。不能说它是通用的(只针对算术类型。误差值必须相等,这是令人不快的。我试图通过结构/功能的明确专业化来避免这种情况,但这可能是不可能的。
好吧,看来无论你在µl的什么地方挖掘,你都会发现陷阱无处不在。也许,最好把自己限制在一个固定类型的高度专业化的小宏观上。