该类能否减少指标的内存消耗?
使用多个此类指标的 "智能交易系统 "所消耗的内存又是多少呢?
或者说,任务的设定有所不同--只是为了方便访问流数据?
该类能否减少指标的内存消耗?
使用多个此类指标的 "智能交易系统 "所消耗的内存又是多少呢?
或者说,任务的设定有所不同--只是为了方便访问流式数据?
当然可以。编写该类正是为了减少内存。在所有缓冲区(包括中间数据缓冲区)中,内存只存储用户指定的最后一个数据的大小。
他们应该发布示例。
已有实例,只是第 2 和第 3 个链接断开了。
打个比方,以便更好地理解:
- 本实现中的环形缓冲区类似于时间序列,即最新数据的索引为 0,最旧数据的 "缓冲区大小 "为-1
- 环形缓冲区大小与 TERMINAL_MAXBARS 类似,但与 TERMINAL_MAXBARS 不同的是,缓冲区大小由用户在初始化时设置,并可在使用过程中更改,同时保留最新数据。
- 与 TERMINAL_MAXBARS 一样,超出缓冲区大小的数据不可用,但缓冲区内的所有最新数据可用。
- 指标数据可以像指标 缓冲区一样存储在环形缓冲区中,但要在图表上显示,需要将数据复制到指标缓冲区。
- 如果不需要显示指标数据,则无需将其复制到指标缓冲区,而是直接从环形缓冲区中进行计算(参见示例),这样在重新计算指标时可以大大节省内存和时间。
- 指标数据可以像指标 缓冲区一样存储在环形缓冲区中,但要在图表上显示,则需要将数据复制到指标缓冲区。
- 如果不需要显示指标数据,则无需将其复制到指标缓冲区,而是直接使用环形缓冲区中的数据进行计算(参见示例),这样在重新计算指标时可以大大节省内存和时间。
这正是我想问的。
如果仍然需要一个完整的指标缓冲区,如何节省内存?
事实证明,只有将中间计算转移到环形缓冲区才能节省内存,但这并不能解决所有问题。
我想要的是,当 "窗口中最大条数"=1000 和 "窗口中最大条数"=999999999 时,一个有 20 个显示缓冲区的指标在计算最后 1000 个条数时占用的内存量是一样的。
这显然是不可能的 =(
这正是我想问的。
如果仍然需要一个完整的指示器缓冲区,如何节省内存?
事实证明,只有将中间计算转移到环形缓冲区才能节省内存,但这并不能解决所有问题。
我想要的是,当 "窗口中最大条数"=1000 和 "窗口中最大条数"=999999999 时,一个有 20 个显示缓冲区的指标在计算最后 1000 个条数时占用的内存量是一样的。
这显然是不可能的 =(
是的,可以只保存不需要存储在指标缓冲区 中的数据。
在这种情况下,也有一些方法可以减少内存消耗。
在两种情况下需要使用指标缓冲区:需要在图表上查看图片时,以及需要从其他指标或智能交易系统的指标缓冲区获取数据时。例如,在测试器中(不在可视化模式下),如果指标缓冲区仅用于可视化,则可以使用环形缓冲区代替指标缓冲区,而在正常模式下则使用常规指标缓冲区。这样可以在优化过程中节省内存。我甚至设法提高了优化速度。同样,从指示器缓冲区传输数据时,也可以尝试使用其他方式从指示器获取数据,然后使用环形缓冲区代替指示器缓冲区。
是的,可以只保存不需要存储在指示器缓冲区 中的数据。
在这种情况下,有几种方法可以减少内存消耗。
在两种情况下需要使用指标缓冲区:需要在图表上查看图片时,以及需要从其他指标或智能交易系统的指标缓冲区获取数据时。例如,在测试器中(不在可视化模式下),如果指标缓冲区仅用于可视化,则可以使用环形缓冲区代替指标缓冲区,而在正常模式下则使用常规指标缓冲区。这样可以在优化过程中节省内存。我甚至设法提高了优化速度。同样,从指标缓冲区传输数据时,也可以尝试使用其他方式从指标获取数据,然后就可以使用环形缓冲区代替指标缓冲区了。
当然,很遗憾,我已经很兴奋了。
还是谢谢你。
我会等待开发人员提供正常的解决方案。
当然很遗憾,我已经很兴奋了。
还是谢谢你。
我会等待开发人员的正常解决方案。
创建环形缓冲区的类:
作者: Konstantin Gruzdev