初学者的问题 MQL5 MT5 MetaTrader 5 - 页 818 1...811812813814815816817818819820821822823824825...1503 新评论 User_mt5 2018.01.09 10:41 #8171 Vladimir Karputov: 我希望你在OnInit()中一次性创建指标句柄?计算深度取决于指标。罕见的指标强行限制了深度--作为一项规则,所有的指标都计算整个历史。因此,以下变体可能是有用的:在指标中引入负责深度的变量,然后通过专家顾问中的iCustom传递这个参数。1.是的,我明白,以一种好的方式,它应该在启动时做一次。但问题是,指标输入参数 可能有所不同。例如,在频谱分析中,谐振频率被计算出来,计算的结果是所用MA的周期。而如果你为一个新的维度申请MA数据,就是一个新的手柄。实际上,频率不会在每个柱子上发生变化,所以同一个MA手柄使用的时间足够长(~分钟)。但是,还是会有一个时间,手柄会发生变化。然后我要么需要使用一堆手柄,要么使用一个手柄,但定期重新计算。这就是经济的作用。2.我已经掌握了iCustom。但如何限制指标中的计算深度?我无法在技术上做到这一点。显然,我将不得不创建大量的技术指标的自定义克隆。当然,这很烦人,但它应该是有效的。谢谢你的提示。这是个好主意。谢谢你。 fxsaber 2018.01.09 10:45 #8172 User_mt5:1.是的,我知道这通常是在内部进行一次。但问题是,指标的输入参数 可以改变。开发人员可以编写SB,其中的指标可以用MQL4风格处理,而不失其效率。也就是说,所有的缓存和手柄都隐藏在SB中。 Vladimir Karputov 2018.01.09 10:50 #8173 User_mt5:1.是的,我知道这通常是在内部进行一次。但问题是,指标的输入参数 可能有所不同。例如,在频谱分析中,计算谐振频率,计算的结果是所用MA的周期。而如果你为一个新的维度申请MA数据,就是一个新的手柄。实际上,频率不会在每个柱子上发生变化,所以同一个MA手柄使用的时间足够长(~分钟)。但是,还是会有一个时间,手柄会发生变化。然后我要么需要使用一堆手柄,要么使用一个手柄,但定期重新计算。这就是经济的作用。2.我已经掌握了iCustom。但如何限制指标中的计算深度?我无法在技术上做到这一点。显然,我将不得不创建大量的技术指标的自定义克隆。当然,这很烦人,但它应该是有效的。谢谢你的提示。这是个好主意。谢谢你。1.在这种情况下,杀死一个未使用的句柄并创建一个新的句柄可能会更好(最主要的是控制,这样就不会把一百万个句柄塞进OnTick():)).2.创建一个内置指标的副本,但要有不同的名称(例如,在其名称中加入 "历史深度"),并引入一个新参数:InpDepthHistory。也就是说,你需要编写新的自定义指标。 Alexey Viktorov 2018.01.09 10:51 #8174 User_mt5:1.是的,我知道这通常是在内部进行一次。但问题是,指标的输入参数 可能有所不同。例如,在频谱分析中,计算谐振频率,计算的结果是所用MA的周期。而如果你为一个新的维度申请MA数据,就是一个新的手柄。实际上,频率不会在每个柱子上发生变化,所以同一个MA手柄使用的时间足够长(~分钟)。但是,还是会有一个时间,手柄会发生变化。然后我要么需要使用一堆手柄,要么使用一个手柄,但定期重新计算。这就是经济的作用。2.我已经掌握了iCustom。但如何限制指标中的计算深度?我无法在技术上做到这一点。显然,我将不得不创建大量的技术指标的自定义克隆。当然,这很烦人,但它应该是有效的。谢谢你的提示。这是个好主意。谢谢你。据我所知,你想像mql4那样使用iCustom()只获得1个值,但你没有考虑到mql4在第一次使用时也为整个历史深度重新计算指标。同样,在至少一个参数发生变化时,它也会重新计算。因此,我们的结论是:你不应该打扰。如果不需要这个 "旧 "指标,你可以简单地删除它,然后用其他参数获得一个指标的句柄。 User_mt5 2018.01.09 10:59 #8175 fxsaber:开发人员可以编写一个SB,其中指标可以用MQL4风格处理,而不会失去效率。也就是说,所有的缓存和手柄都隐藏在SB中。对不起,我不明白。这里的开发者一词是创造MT的人,还是我是一个有罪的应用?而SB是......? User_mt5 2018.01.09 11:01 #8176 Vladimir Karputov: 1.在这种情况下,杀死一个未使用的句柄并创建一个新的句柄可能会更好(最主要的是要确保你不会把一百万个句柄塞进OnTick():)).2.创建一个内置指标的副本,但要有不同的名称(例如,在其名称中加入 "历史深度"),并引入一个新参数:InpDepthHistory。也就是说,你应该编写新的自定义指标。 1.是的,到目前为止,我已经得到了一个只有手柄的3维数组。但现在,显然,我将重新安排这一切。2.是的,几乎有所有技术指标的代码。而且你可以写你自己的。谢谢你。 fxsaber 2018.01.09 11:04 #8177 User_mt5:对不起,我不明白。这里的开发者是创造MT的人,还是我是一个有罪的应用者?而SB是......?如果需要,MetaQuotes可以创建这样一个标准库。最大的问题是,它是否需要? User_mt5 2018.01.09 11:05 #8178 Alexey Viktorov:在我看来,你想像mql4那样使用iCustom()只获得1个值,但你没有考虑到mql4在第一次使用时也为整个历史深度重新计算指标。以同样的方式,当至少一个参数发生变化时,它将被重新计算。因此,结论是:不需要麻烦。如果一个 "过时 "的指标不再需要,你可以简单地删除它,并得到一个具有不同参数的处理指标。也许,我确实想这样做。但现在我不想了。你是对的。如果你不需要一个过时的指标,你应该把它们像蟑螂一样碾碎 :)一个好的解决方案是限制技术克隆的深度。这将节省资源和时间。所以,这就是我现在要做的。谢谢你。 User_mt5 2018.01.09 11:08 #8179 fxsaber:如果需要,MetaQuotes可以创建这样一个标准库。最大的问题是,它是否需要? 这是为了子孙后代。我看了图书馆的一些例子。数千行未加注释的代码。我不知道任何人,但我不能这样做。因此,感谢你的想法,但在我的情况下,这是不可以接受的。 fxsaber 2018.01.09 12:25 #8180 User_mt5: 这是为了子孙后代。我看了图书馆的一些例子。数千行未加注释的代码。我不知道任何人,但我不知道如何做到这一点。因此,感谢你的想法,但在我的情况下,这是不可以接受的。这在MT5中已经可以使用 关于交易、自动交易系统和交易策略测试的论坛 mql5语言的特点、微妙之处以及技巧 fxsaber, 2018.01.09 10:20 对于MQL4的专家来说,有一个古老的方法来处理MQL5中的TFs也许有人会发现MQL4的方法在处理tick历史方面也很有用if (Tick[0].bid > Tick[100].bid) // сравниваем текущий и исторический тики Print("Hello World!"); if (High[0] > Close[100]) // https://www.mql5.com/ru/forum/42122/page24#comment_2904023 Print("Hello World!");从技术上讲,没有什么能阻止你用指标做一次同样的事情(在不损失效率的情况下)并把解决方案放在SB中。 1...811812813814815816817818819820821822823824825...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我希望你在OnInit()中一次性创建指标句柄?
计算深度取决于指标。罕见的指标强行限制了深度--作为一项规则,所有的指标都计算整个历史。因此,以下变体可能是有用的:在指标中引入负责深度的变量,然后通过专家顾问中的iCustom传递这个参数。
1.是的,我明白,以一种好的方式,它应该在启动时做一次。但问题是,指标输入参数 可能有所不同。例如,在频谱分析中,谐振频率被计算出来,计算的结果是所用MA的周期。而如果你为一个新的维度申请MA数据,就是一个新的手柄。实际上,频率不会在每个柱子上发生变化,所以同一个MA手柄使用的时间足够长(~分钟)。但是,还是会有一个时间,手柄会发生变化。然后我要么需要使用一堆手柄,要么使用一个手柄,但定期重新计算。这就是经济的作用。
2.我已经掌握了iCustom。但如何限制指标中的计算深度?我无法在技术上做到这一点。显然,我将不得不创建大量的技术指标的自定义克隆。当然,这很烦人,但它应该是有效的。谢谢你的提示。这是个好主意。谢谢你。
1.是的,我知道这通常是在内部进行一次。但问题是,指标的输入参数 可以改变。
开发人员可以编写SB,其中的指标可以用MQL4风格处理,而不失其效率。也就是说,所有的缓存和手柄都隐藏在SB中。
1.是的,我知道这通常是在内部进行一次。但问题是,指标的输入参数 可能有所不同。例如,在频谱分析中,计算谐振频率,计算的结果是所用MA的周期。而如果你为一个新的维度申请MA数据,就是一个新的手柄。实际上,频率不会在每个柱子上发生变化,所以同一个MA手柄使用的时间足够长(~分钟)。但是,还是会有一个时间,手柄会发生变化。然后我要么需要使用一堆手柄,要么使用一个手柄,但定期重新计算。这就是经济的作用。
2.我已经掌握了iCustom。但如何限制指标中的计算深度?我无法在技术上做到这一点。显然,我将不得不创建大量的技术指标的自定义克隆。当然,这很烦人,但它应该是有效的。谢谢你的提示。这是个好主意。谢谢你。
1.在这种情况下,杀死一个未使用的句柄并创建一个新的句柄可能会更好(最主要的是控制,这样就不会把一百万个句柄塞进OnTick():)).
2.创建一个内置指标的副本,但要有不同的名称(例如,在其名称中加入 "历史深度"),并引入一个新参数:InpDepthHistory。也就是说,你需要编写新的自定义指标。
1.是的,我知道这通常是在内部进行一次。但问题是,指标的输入参数 可能有所不同。例如,在频谱分析中,计算谐振频率,计算的结果是所用MA的周期。而如果你为一个新的维度申请MA数据,就是一个新的手柄。实际上,频率不会在每个柱子上发生变化,所以同一个MA手柄使用的时间足够长(~分钟)。但是,还是会有一个时间,手柄会发生变化。然后我要么需要使用一堆手柄,要么使用一个手柄,但定期重新计算。这就是经济的作用。
2.我已经掌握了iCustom。但如何限制指标中的计算深度?我无法在技术上做到这一点。显然,我将不得不创建大量的技术指标的自定义克隆。当然,这很烦人,但它应该是有效的。谢谢你的提示。这是个好主意。谢谢你。
据我所知,你想像mql4那样使用iCustom()只获得1个值,但你没有考虑到mql4在第一次使用时也为整个历史深度重新计算指标。同样,在至少一个参数发生变化时,它也会重新计算。
因此,我们的结论是:你不应该打扰。如果不需要这个 "旧 "指标,你可以简单地删除它,然后用其他参数获得一个指标的句柄。
开发人员可以编写一个SB,其中指标可以用MQL4风格处理,而不会失去效率。也就是说,所有的缓存和手柄都隐藏在SB中。
对不起,我不明白。这里的开发者一词是创造MT的人,还是我是一个有罪的应用?而SB是......?
1.在这种情况下,杀死一个未使用的句柄并创建一个新的句柄可能会更好(最主要的是要确保你不会把一百万个句柄塞进OnTick():)).
2.创建一个内置指标的副本,但要有不同的名称(例如,在其名称中加入 "历史深度"),并引入一个新参数:InpDepthHistory。也就是说,你应该编写新的自定义指标。
2.是的,几乎有所有技术指标的代码。而且你可以写你自己的。
谢谢你。
对不起,我不明白。这里的开发者是创造MT的人,还是我是一个有罪的应用者?而SB是......?
如果需要,MetaQuotes可以创建这样一个标准库。最大的问题是,它是否需要?
在我看来,你想像mql4那样使用iCustom()只获得1个值,但你没有考虑到mql4在第一次使用时也为整个历史深度重新计算指标。以同样的方式,当至少一个参数发生变化时,它将被重新计算。
因此,结论是:不需要麻烦。如果一个 "过时 "的指标不再需要,你可以简单地删除它,并得到一个具有不同参数的处理指标。
也许,我确实想这样做。但现在我不想了。你是对的。如果你不需要一个过时的指标,你应该把它们像蟑螂一样碾碎 :)
一个好的解决方案是限制技术克隆的深度。这将节省资源和时间。所以,这就是我现在要做的。
谢谢你。
如果需要,MetaQuotes可以创建这样一个标准库。最大的问题是,它是否需要?
这是为了子孙后代。我看了图书馆的一些例子。数千行未加注释的代码。我不知道任何人,但我不知道如何做到这一点。因此,感谢你的想法,但在我的情况下,这是不可以接受的。
这在MT5中已经可以使用
关于交易、自动交易系统和交易策略测试的论坛
mql5语言的特点、微妙之处以及技巧
fxsaber, 2018.01.09 10:20
对于MQL4的专家来说,有一个古老的方法来处理MQL5中的TFs也许有人会发现MQL4的方法在处理tick历史方面也很有用
从技术上讲,没有什么能阻止你用指标做一次同样的事情(在不损失效率的情况下)并把解决方案放在SB中。