【问题标题】:How to convert 1min OHLC data into 5min OHLC data如何将 1 分钟 OHLC 数据转换为 5 分钟 OHLC 数据
【发布时间】:2013-10-17 20:10:42
【问题描述】:

我正在尝试在 Excel 2013 中将 1 分钟 OHLC(打开/高/低/关闭)数据转换为 5 分钟 OHLC 数据。到目前为止,我知道原理。 Open 必须每 5 行取一次 open 值,Close 类似。 Min/Max也可以理解。不幸的是,Excel 无法理解我想从第 0-5、5-10 行等中获取 Min/Max。它是 0-5、1-6、2-7 等。

我也试图以某种方式使用 AVERAGE,但这毫无意义,因为它的输出与现实完全不符。从更多的研究来看,我认为我将不得不从函数 AVERAGE、OFFSET、INDEX 和 MATCH 创建一个宏,这就是我的斗争开始的地方。我不知道如何构造那个公式。

这是在计数列上使用过滤器后的样子:

【问题讨论】:

  • 当我理解这个小计的事情时,我会的。我得到了 A 列,并且我了解原理 - 每 5 行(即 5 分钟)那里的数字更改一次,所以我有我需要的部分数据,但现在我不确定我应该把第一个 SUBTOTAL 行放在哪里。它是第 2 行,因为那是 0 第一次更改的行吗?而且我假设我必须为这个小计制作另一列,对吗?如果它太复杂而无法描述,只需张贴一张小图,其中 A 是 0 列,B 是时间,C/D/E/F 是打开、高、低和关闭列,这样我就可以更好地想象我应该在哪里做这个小计.非常感谢!

标签: excel worksheet-function excel-2013 vba


【解决方案1】:

在左侧添加一列(假设为A),将0作为标签,并将A2中的=IF(MOD(B2,6)=0,1+A1,A1)向下复制。 0 中每个更改的小计并在所有其他列上使用计数。将第一个小计行公式更改为:

C 列:=C2
D栏:=SUBTOTAL(4,D2:D6)
E栏:=SUBTOTAL(5,E2:E6)
F栏:=F6

ColumnA 的过滤器包含c 并向下复制公式。

编辑

【讨论】:

  • 感谢您的耐心等待!我终于明白了,我几乎明白了。在所有计数都在的列上使用过滤器后,我遇到的问题是高/低不存在。打开和关闭似乎没问题,但不是高/低,到处只有 0。我不知道为什么。我会给你道具,这样我就可以发布一张它的外观图片。
  • 啊,我明白了。但我发现了另一个问题:(。我只是出于好奇而控制计数,我发现有些计数长 10 行而不是 6 行或 3 行而不是 6 行等。我认为这是因为这些数据来自交易图表条实际上,在这 5 分钟内,一些柱线丢失了,因为没有完成任何交易。这里有两个关于数据的链接,没有这个和有这个问题:i.imgur.com/kN1mSJm.png;i.imgur.com/EZxXnMk.png
  • 我设法修复了 MOD 公式,现在它对于每个数字都是常数,但它开始时,0 持续前 5 行,每隔一个数字持续到最后(1,2,3,4 .. .) 持续 6 行。因此,我尝试将 MOD 更改为 (B2,5) 但 0 仅持续前 4 行,每隔一个数字持续 5 行。所以它永远不会像 0 = 第 1-5 行、1 = 第 6-10 行、2 = 第 11-15 行等那样。但它要么 0 = 第 1-5 行、1 = 第 6-11 行、2 = 第 12-17 行等等,当它的 MOD(B2,6) 或 0 = 第 1-4 行、1 = 5-9、2 = 第 10-14 行等等,当它的 MOD(B2,5) 时。如果我能解决这个问题,那么我希望小计和其他一切都可以。
  • 完成(如果它应该什么都没有发生)。
  • 是的,这可能是一种方法。原因如果行是这样计时的,例如:21、22、23、25、26 ... 取这 5 个数字是不合逻辑的,因为 26 甚至不属于 21-25 区间。我已经在考虑要走这条路了。好吧,单独的问题可能就足够了,因为如果我拥有所有数据,我已经知道如何做到这一点。
【解决方案2】:

pandas Python 库可以轻松完成。试试看

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-30
    • 2021-11-18
    • 2016-12-05
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    相关资源
    最近更新 更多