标准功能/方法的其他实现方式 - 页 2 123456789...13 新评论 fxsaber 2016.09.02 00:39 #11 Renat Fatkhullin:到2016年,大多数C++编译器已经到达了相同的优化水平。MSVC每次更新都会让人怀疑它的改进,而Intel C++作为一个编译器已经合并了--它仍然没有从它在大型项目上的 "内部错误 "中恢复过来。我们在1400版编译器中的另一项改进是,它在编译复杂项目时速度更快。 如果不是这个对话,我们可能不会知道它。希望能有更多关于你们所做的伟大工作的信息。 Renat Fatkhullin 2016.09.02 00:40 #12 fxsaber:关于主题。你必须创建标准函数的替代品,因为它们有时会给你错误的输出。下面是一个SymbolInfoTick的替代例子你可以在测试器中的每个事件NewTick 上调用SymbolInfoTick,并将Volume-field相加以了解股票的成交量。但是,不,你不能这样做。我必须做出更合理的MySymbolInfoDouble。欢迎来到编程,在这里你就是创造者我们给你最完整的工具,在那里你可以做任何你想做的事情。 fxsaber 2016.09.02 00:42 #13 Renat Fatkhullin:你可以优化你周围的一切。这是一个无止境的过程。但99%的时候,这在经济上是不可行的。 我们在这里谈论的不是优化,而是将旧的功能带到新的现实中。当然,你完全可以不写NormalizeDouble。而人们会做出自己的变体。但你创建它是为了节省时间。现在还不够。而修复旧自行车以满足相同的库存工具也是不错的。 Renat Fatkhullin 2016.09.02 00:45 #14 fxsaber: 这不是优化,而是将旧的功能带入新的现实。很明显,你完全可以不写NormalizeDouble。而人们会做出自己的变体。但你创建它是为了节省时间。现在还不够。而修复旧自行车以满足相同的库存工具也是不错的。 谢谢,我们会检查一下,看看是否可以改变库的内容。 Renat Fatkhullin 2016.09.02 00:49 #15 顺便说一下,不久前@iliyas 建议在编译时插入大量的系统函数作为MQL5的源代码,这样他们就可以参与内联和最大限度的优化。我起初并不欣赏这个想法,但现在我发现这将是非常出色的。同样的MSVC也是这样做的。 fxsaber 2016.09.02 00:50 #16 Renat Fatkhullin: 谢谢,我们会检查一下,看看是否可以改变库的内容。你误解了。不是库,而是NormalizeDouble。要增加一个过载。double NormalizeDouble( double Value, double TickSize );当TickSize = 25, VolumeStep = 0.5时,对价格和手数进行规范化处理。例如,规范化后的结果是这样的NormalizeDouble(Price, 0.00001) // Нормализация до пятого знака NormalizeDouble(Price, 10.0) // Нормализация цены для RTS-9.16 NormalizeDouble(Price, 25.0) // Нормализация цены для MIX-9.16 fxsaber 2016.09.02 00:52 #17 Renat Fatkhullin:顺便说一下,不久前@iliyas 建议在编译时插入大量的系统函数作为MQL5的源代码,这样他们就可以参与内联,最大限度地优化。我当时并不欣赏这个想法,但现在我看到,这将是很好的。同样的MSVC也是这样做的。事实证明,#import ex5是优化的邪恶。请注意预处理程序的特点 关于交易、自动交易系统和策略测试的论坛 我如何按顺序列举? Alexey Navoykov, 2016.09.01 23:20 我已经实现了上面的方法,在MQL5中使用固定参数数并不难,因为宏的数量被限制为8个。 所以我只有3个值的枚举。至于理论上的外观,创建一个内部函数来解析枚举可能会更快。 开发人员已经承诺会创建一些东西。事实证明,可以创造出非常狡猾和用户友好的结构。 Renat Fatkhullin 2016.09.02 00:55 #18 fxsaber:你误解了。不是库,而是NormalizeDouble。要增加一个过载。当TickSize = 25, VolumeStep = 0.5时,对价格和手数进行规范化处理。例如,规范化后的结果是这样的你不能以这种方式超载。相同的函数签名。 但这个想法是明确的,即考虑到蜱粒化的正常化功能。 fxsaber 2016.09.02 00:57 #19 Renat Fatkhullin:你不能以这种方式超负荷工作。相同的函数签名。 那里似乎没有什么问题。在一个变体中,第二个参数是int(曾经),在另一个变体中是double(将出现)。但是,这个想法很清楚--考虑到蜱粒化的规范化功能。 正是如此! prostotrader 2016.09.02 00:58 #20 fxsaber你的代码中存在一个错误 123456789...13 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
到2016年,大多数C++编译器已经到达了相同的优化水平。
MSVC每次更新都会让人怀疑它的改进,而Intel C++作为一个编译器已经合并了--它仍然没有从它在大型项目上的 "内部错误 "中恢复过来。
我们在1400版编译器中的另一项改进是,它在编译复杂项目时速度更快。
关于主题。你必须创建标准函数的替代品,因为它们有时会给你错误的输出。下面是一个SymbolInfoTick的替代例子
你可以在测试器中的每个事件NewTick 上调用SymbolInfoTick,并将Volume-field相加以了解股票的成交量。但是,不,你不能这样做。我必须做出更合理的MySymbolInfoDouble。
欢迎来到编程,在这里你就是创造者
我们给你最完整的工具,在那里你可以做任何你想做的事情。
你可以优化你周围的一切。
这是一个无止境的过程。但99%的时候,这在经济上是不可行的。
这不是优化,而是将旧的功能带入新的现实。很明显,你完全可以不写NormalizeDouble。而人们会做出自己的变体。但你创建它是为了节省时间。现在还不够。而修复旧自行车以满足相同的库存工具也是不错的。
顺便说一下,不久前@iliyas 建议在编译时插入大量的系统函数作为MQL5的源代码,这样他们就可以参与内联和最大限度的优化。
我起初并不欣赏这个想法,但现在我发现这将是非常出色的。同样的MSVC也是这样做的。
谢谢,我们会检查一下,看看是否可以改变库的内容。
你误解了。不是库,而是NormalizeDouble。要增加一个过载。
当TickSize = 25, VolumeStep = 0.5时,对价格和手数进行规范化处理。
例如,规范化后的结果是这样的
顺便说一下,不久前@iliyas 建议在编译时插入大量的系统函数作为MQL5的源代码,这样他们就可以参与内联,最大限度地优化。
我当时并不欣赏这个想法,但现在我看到,这将是很好的。同样的MSVC也是这样做的。
事实证明,#import ex5是优化的邪恶。
请注意预处理程序的特点
关于交易、自动交易系统和策略测试的论坛
我如何按顺序列举?
Alexey Navoykov, 2016.09.01 23:20
我已经实现了上面的方法,在MQL5中使用固定参数数并不难,因为宏的数量被限制为8个。 所以我只有3个值的枚举。
至于理论上的外观,创建一个内部函数来解析枚举可能会更快。 开发人员已经承诺会创建一些东西。
事实证明,可以创造出非常狡猾和用户友好的结构。
你误解了。不是库,而是NormalizeDouble。要增加一个过载。
当TickSize = 25, VolumeStep = 0.5时,对价格和手数进行规范化处理。
例如,规范化后的结果是这样的
你不能以这种方式超载。相同的函数签名。
但这个想法是明确的,即考虑到蜱粒化的正常化功能。
你不能以这种方式超负荷工作。相同的函数签名。
那里似乎没有什么问题。在一个变体中,第二个参数是int(曾经),在另一个变体中是double(将出现)。
但是,这个想法很清楚--考虑到蜱粒化的规范化功能。
fxsaber
你的代码中存在一个错误