我编写了一个 Python 图表应用程序,该应用程序将来自我的经纪人的 http 提要(例如 EurUsd 报价)作为输入,然后使用Matplotlib绘制价格蜡烛和指标。实时报价数据用于更新几个numpy 数组,这些数组用作价格蜡烛和指标在 5 分钟、15 分钟、60 分钟、240 分钟和 1 天的时间范围内的数据容器。好的。
我使用 numpy 数组的原因是因为这是TA-Lib的预期输入格式,我用它来计算持续的指标和振荡器值(这些值又传递给 Matplotlib 进行图表渲染)。这些包括 RSI、MACD、随机指标等,以及从 RSI 和 MACD 阵列派生的一些布林带。包括信号线等,每个时间帧有21个数组。我跟踪了 5 个时间范围(5 分钟、15 分钟、60 分钟等),结果应用程序需要105 个 numpy 数组来完成它的工作。每个时间段的价格蜡烛数组是一个二维数组,由开盘价、最高价、最低价、收盘价、成交量和日期组成。
最长的数组集是 5 分钟时间范围内的数组,其中我初始化了 20 个长度为 288(一天的 5 分钟蜡烛)+ 288(导致重新初始化的额外一天的空间)= 576 的指标数组。蜡烛数组有形状6 来保存 OHLCV 和日期,因此它的大小为 576 x 6 = 3456。
在 240 分钟和 1 天的时间范围内,数组集的数量相同 (21),但更短,因为它们包含的数据更少。每个阵列的当前价格蜡烛的更新发生在每个刻度上,范围从每秒 10 次到每分钟一次。每个分时更新也会级联到所有指标,因此每个分时更新到 105 个数组。
我的问题是,对于这个数组数量以及 105 个数组中的每一个的更新频率,我是否应该注意资源方面的考虑。我得到的印象(从这个问题How much memory in numpy array? Is RAM a limit factor?)这些数组的内存消耗不是问题,因为根据 nbytes 方法,20 x 576 长度的数组每个消耗 4608 字节=总共 90kb。
这是正确的,我的设计逻辑是否合理?