我有一些旧的日内1米棒线数据,我试图清理我正在使用的应用程序,这需要390 1米棒线分笔成交点(上午9:30-下午16:00)的日内数据,每天,每只股票。不幸的是,数据越旧,越多的差距出现,因为数据只包含实际交易在说一分钟。即:无交易=无交易量=无数据。
PCT_CHANGE由未示出的基本(CLOSE-OPEN)/OPEN*100计算,并且反映了从当前TICK的OPEN到CLOSE的百分比变化。
示例:
TICK DATA_TICK PCT_CHANGE VOLUME
9:30:00 AM
9:31:00 AM
9:32:00 AM
9:33:00 AM
9:34:00 AM
9:35:00 AM 9:35:00 AM 0 15500
9:36:00 AM 9:36:00 AM 0.06 1500
9:37:00 AM
9:38:00 AM 9:38:00 AM 0.24 4000
9:39:00 AM 9:39:00 AM 0.2 4500
9:40:00 AM 9:40:00 AM 0.34 500
9:41:00 AM
9:42:00 AM 9:42:00 AM 0.34 500
9:43:00 AM
9:44:00 AM
9:45:00 AM
9:46:00 AM
9:47:00 AM 9:47:00 AM 0.13 2000
9:48:00 AM 9:48:00 AM 0.13 1000
9:49:00 AM
9:50:00 AM 9:50:00 AM 0.22 500
9:51:00 AM 9:51:00 AM 0.24 2500
9:52:00 AM 9:52:00 AM 0.24 1000
9:53:00 AM 9:53:00 AM 0.24 2000
9:54:00 AM
9:55:00 AM 9:55:00 AM 0.13 500
9:56:00 AM
9:57:00 AM 9:57:00 AM 0.13 2000
9:58:00 AM 9:58:00 AM 0.24 2000
9:59:00 AM 9:59:00 AM 0.24 500
10:00:00 AM 10:00:00 AM 0.13 500
因此,我希望能够用先前现有行的PCT_CHANGE值填充缺少的1 m个间隔,如果是开始分钟,则填充0(零)。所有插入值的Volume都将为0。
这些例子
上午9:41百分比变化= 0.34,体积= 0
上午9:43- 46百分比变化将全部= 0.34,体积= 0。
DB2中是否存在一些巧妙的特性、SQL语句、函数等,使我能够在存储过程中包含这些内容,以运行多只股票的10年数据?我已经尝试过了,尽管我对SQL的了解非常有限,但我所能做的最多是填补1分钟的空白。如果有多分钟的空白,我会得到糟糕的结果。
如果某个善良的灵魂能给予我一个如何实现这一点的例子,我将非常感激。
多谢了。
1条答案
按热度按时间0pizxfdo1#
您可以执行:
结果(出于测试目的修改数据):
请参阅db<>fiddle上的运行示例。