- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
时间序列分析与TS-SQL
SQL对行式数据结果集的处理非常灵活便捷,这也成为了TSL语言中的标准配备,TS-SQL支持SELECT,UPDATE,DELETE,INSERT等常用SQL语法,支持ORDER BY、GROUP BY 、JOIN等操作,TS-SQL语法和标准SQL非常接近,深受许多TSL语言用户的喜爱。
利用TS-SQL的聚集函数以及时间序列支撑函数进行时间序列分析是TS-SQL的特色,但正是由于其特殊性,许多用户对如何利用TS-SQL处理时间序列并不熟悉。下边我们来进阶下TS-SQL时间序列处理的功能。
说道时间序列处理,事实上我们可以分割成两个部分,其中一个是时间序列化,另一个则是序列化分析处理,关于时间序列化而言,可以理解为数据整理的功能,例如,高频数据的秒、分钟,日间数据的日、周、月、年等数据的周期化,此外,序列化的同时还需要剔除掉非交易日的时间,这些内容大部分熟悉TSL语言的数据访问的用户大多非常熟悉,在这里我们反而不做重点介绍,详细可以查阅TS-SQL的select SelectList from markettable datekey BegTime to EndTime of TargetCode/TargetCodeList的相关用法。
我们在这里要着重在序列化分析处理上,这是数据分析的能力,例如在markettable中,数据已经被序列化了,或者用户存在一个被序列化好的结果集,我们如何对其进行分析处理呢?
REFOF,时间序列化的第一种需求,相对位置需求:
在时间序列处理中,前后相关的位置的数据往往非常重要,例如,我们要访问N个交易日前或者N个交易日后的数据,也就是说,我们需要提取序列中相对于当前位置的数据。在标准的SQL中,缺乏这种能力,TS-SQL中加入了REFOF关键字。
假定R结果集中包括有close列
那么select [close]/refof([close],1) - 1 from R end;就可以返回出每天的涨幅,这足够简单吧。
我们理解refof的功能是以向前推移当前序列到指定的行再计算第一个参数的表达式,第二个参数为推移的行数,如果第二个参数为负则朝后推移。
花费这么多的气力来描述,仅仅只是提醒读者,我们不用把refof([close]+[open],1)写成refof([close],1)+refof([open],1),前者的访问效率接近后者的两倍。
了解序列的移动处理
我们可能经常需要使用移动N条的标准差,移动N条的平均数,移动N条的最大值,这类应用需求在标准SQL中的应用简直是一场噩梦。
很幸运的是,TS-SQL的所有聚集函数均支持移动处理,下面我们仅仅使用求平均的聚集函数,至于TS-SQL支持哪些聚集函数,用户可以TSDN找到答案。
对于标准SQL的平均数聚集的定义为:Average ( [ DISTINCT ] expression)
其含义我们不多说,对于不是特别了解SQL的用户而言,可能比较陌生的是其Distinct前缀,也就是说,允许去重之后求平均,如果不带DISTINCT,则是所有的值求平均。
TS-SQL的平均数聚类的定义为:
AVGOF ( [ DISTINCT ] expression [,BoolConditionExp[,N]] )
和SQL的Average相比,TS-SQL增加了两个可选参数,一个是一个条件表达式,另外一个则是N,我们在这里姑且先不理会增加的第一个参数,对于第二个参数N,肯定是绝对多数人所希望看到的参数,这就是移动序列分析所必备的。
我们来看一个典型的应用案例:
R:=Rand(100,1);
Return select [0],AvgOf([0]) as 1,AvgOf([0],True,10) as 2 from R end;
我们将结果集以图形来呈现:
得到的有三条线,一条是随机数线,一条是整体的平均值,是一条直线,另外一条蓝色线则是一个移动平均后的平滑线。
也就是说,TS-SQL的Avgof支持移动平均,N的参数是否很容易理解呢?
在现实应用中,我们在做移动的时候很可能需要有条件的移动,例如,一个高频交易明细序列,由于记录了所有的行情波动,包括买卖盘的波动,这样可能会出现有交易量为0的点。但是我们可能有一个需求,是要求最近N个有交易的点的价格的平均,这样在移动的时候我们就需要可以支持起条件移动。
这个时候,TS-SQL的聚集函数中增加的第一个参数就非常有意义了。
例如,我们在万科的明细里返回从昨日到当前的时间、价格、最近10个
您可能关注的文档
最近下载
- 【中考真题】2025年上海英语试卷(含听力mp3).docx VIP
- (高清版)B-T 3836.2-2021 爆炸性环境 第2部分:由隔爆外壳“d”保护的设备.pdf VIP
- 课件录播专业教室建设方案.docx VIP
- 2025年贵州省辅警考试真题及答案.docx VIP
- 工作交接清单——标准模板交接单表格正式版.doc VIP
- GB_T 24021-2024 环境管理 环境标志和声明 自我环境声明 (II型环境标志).pdf VIP
- 渔政执法课件.pptx VIP
- 基于MQTT的远程数据采集与实时控制系统设计和应用.docx VIP
- 2025青岛版小学科学三年级上册1-5《制作动物分类图册》(教学课件)(新教材).pptx
- (高清版)-B-T 30146-2023 安全与韧性 业务连续性管理体系 要求.pdf VIP
文档评论(0)