Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
T-SQL标记到OHLC存储过程_Sql_Sql Server_Stored Procedures_Forex - Fatal编程技术网

T-SQL标记到OHLC存储过程

T-SQL标记到OHLC存储过程,sql,sql-server,stored-procedures,forex,Sql,Sql Server,Stored Procedures,Forex,按照查询标准,使用自定义时间跨度输入、开始日期和结束日期,将ticks数据转换为OHLC的最佳方法是什么 存储过程应具有3个要传递的参数: 一个时间跨度, 开始日期,以及 结束日期 我需要两个场景(每个场景都有一个存储过程):一个是在时间范围之间没有记录时没有间隙,另一个是在时间范围之间没有记录时有间隙 以下是数据: BigIntDateTime, DateTime, Ask, Bid 20000530171000000, 2000-05-30

按照查询标准,使用自定义时间跨度输入、开始日期和结束日期,将ticks数据转换为OHLC的最佳方法是什么

存储过程应具有3个要传递的参数:

  • 一个时间跨度,
  • 开始日期,以及
  • 结束日期
我需要两个场景(每个场景都有一个存储过程):一个是在时间范围之间没有记录时没有间隙,另一个是在时间范围之间没有记录时有间隙


以下是数据:

BigIntDateTime,    DateTime,                Ask,     Bid
20000530171000000, 2000-05-30 17:10:00.000, 0.93020, 0.93970
20000530171010000, 2000-05-30 17:10:10.000, 0.98020, 0.98970
20000530171030000, 2000-05-30 17:10:30.000, 0.92020, 0.92970
20000530171040000, 2000-05-30 17:10:40.000, 0.9020,  0.90970
20000530171336000, 2000-05-30 17:13:36.000, 0.93020, 0.93970
时间跨度:1分钟

第一个场景的输出

  • 时间跨度:1分钟
  • 开始日期:2000-05-3017:10:00.000
  • 结束日期:2000-05-3017:13:36000
第二个场景的输出

  • 时间跨度:1分钟
  • 开始日期:2000-05-3017:10:00.000
  • 结束日期:2000-05-3017:13:36000
解决方案 由于许多原因(行业惯例、性能、重复使用、可扩展性、ETL/集成需求等),最好的方法是定期将报价流预处理到OHLCV表中,以便以后在定量模型中重复使用,预先计算所有需要的时间框架(行业通用和合成)

场景A和场景B的SQL部分 然后使用标准SQL查询
选择所需的变量,即用户定义的时间跨度

SELECT * FROM aCurrenex_AUDUSD_M1
WHERE  aUTC_BarTimeSTAMP BETWEEN <_value1_> AND <_value2_>;

谢谢你的回复,但不幸的是,这不是一个好消息case@Paul您的问题定义中的哪些给定特征没有以这种方式解决?TickDataSET始终是
,因此预处理格式(
->
,包括ZULU偏移时间调整)和生成/更新带有OHLC(+也包括卷)字段的多时间帧静态表都是行业标准,也是性能必须做到的<代码>选择
满足给定要求以获得可变时间跨度。“那么,保罗,你觉得你的案子没有解决的原因在哪里?”保罗谈到差距。行业将此术语用于酒吧,酒吧中缺少任何市场事件(报价不会到达,因为没有价格域变化(既不询问,也不出价))。因此,您对“差距”的表示法有点不同,但是,您的场景a和场景B都可以得到处理,因为您可以完全控制任务,并且
(在给定的时间段
{M1 | M5 | M15 | M30 | H1 | H4 | D1 | |}
条持续时间内的大量报价到达)允许您处理这些时间段,在没有引号的情况下,使用上面场景B中声明的
SYNTH-DATA
。我尝试使用内存表作为辅助工具创建范围,但性能是不可接受的。@Paul理解。至少
SELECT
使您的db记录可供进一步处理。由于上面已经提到的许多原因,RDBMS引擎(SQL进程将其作为串行计算的资源)是获取结果的最差位置。一种分布式方法,由记录子集提供(而不是作为流处理,而不是内存块(因为它可能非常胖))将是我的选择,以继续处理非正交和非线性(时域和价格域)OHLC+V,仅用于QuoteSTREAM范围的非条对齐的开始/结束部分
Time,                    OpenAsk, HighAsk, LowAsk,  CloseAsk, OpenBid, HighBid, LowBid,  CloseBid 
2000-05-30 17:10:00.000, 0.93020, 0.98020, 0.90200, 0.90200,  0.93970, 0.98970, 0.90970, 0.90970
2000-05-30 17:11:00.000, 0.93020, 0.98020, 0.90200, 0.90200,  0.93970, 0.98970, 0.90970, 0.90970
2000-05-30 17:12:00.000, 0.93020, 0.98020, 0.90200, 0.90200,  0.93970, 0.98970, 0.90970, 0.90970
2000-05-30 17:13:36.000, 0.93020, 0.93020, 0.93020, 0.93020,  0.93970, 0.93970, 0.93970, 0.93970
SELECT * FROM aCurrenex_AUDUSD_M1
WHERE  aUTC_BarTimeSTAMP BETWEEN <_value1_> AND <_value2_>;
YYYY.MM.DD HH:MM:SS.TTT  |Bid     |Ask
|          |             |        |
2013.11.04 00:00:53.843; 0.94582; 0.94554;
2013.11.04 00:00:59.500; 0.94575; 0.94551;
2013.11.04 00:00:59.234; 0.94582; 0.94551;
#----------|-------------|--------|-------------------------<aStandardM1BAR.EoB>
2013.11.04 00:01:02.750; 0.94582; 0.94554;
2013.11.04 00:01:02.793; 0.94582; 0.94551;
2013.11.04 00:01:08.937; 0.94582; 0.94548;
2013.11.04 00:01:09.968; 0.94580; 0.94548;
2013.11.04 00:01:11.984; 0.94573; 0.94548;
2013.11.04 00:01:12.390; 0.94573; 0.94545;
2013.11.04 00:01:12.434; 0.94573; 0.94542;
2013.11.04 00:01:34.500; 0.94581; 0.94542;
2013.11.04 00:01:38.703; 0.94581; 0.94541;
2013.11.04 00:01:38.796; 0.94573; 0.94541;
2013.11.04 00:01:42.031; 0.94572; 0.94541;
2013.11.04 00:01:47.343; 0.94582; 0.94547;
2013.11.04 00:01:48.546; 0.94582; 0.94561;
2013.11.04 00:01:48.551; 0.94575; 0.94555;
2013.11.04 00:01:50.843; 0.94570; 0.94542;
2013.11.04 00:01:50.940; 0.94570; 0.94546;
2013.11.04 00:01:51.546; 0.94568; 0.94538;
2013.11.04 00:01:51.359; 0.94570; 0.94540;
2013.11.04 00:01:55.859; 0.94570; 0.94546;
2013.11.04 00:01:55.937; 0.94563; 0.94543;
2013.11.04 00:01:57.359; 0.94564; 0.94543;
#----------|-------------|--------|-------------------------<aStandardM1BAR.EoB>
2013.11.04 00:02:05.078; 0.94563; 0.94543;
2013.11.04 00:02:06.562; 0.94564; 0.94543;
2013.11.04 00:02:08.812; 0.94572; 0.94550;
2013.11.04 00:02:15.359; 0.94572; 0.94549;
2013.11.04 00:02:15.078; 0.94572; 0.94547;
2013.11.04 00:02:32.178; 0.94563; 0.94540;
2013.11.04 00:02:32.432; 0.94564; 0.94540;
2013.11.04 00:02:33.359; 0.94564; 0.94538;
2013.11.04 00:02:34.031; 0.94564; 0.94535;
2013.11.04 00:02:39.218; 0.94564; 0.94537;
2013.11.04 00:02:41.343; 0.94559; 0.94535;
2013.11.04 00:02:46.906; 0.94559; 0.94529;
2013.11.04 00:02:46.978; 0.94559; 0.94532;
2013.11.04 00:02:51.640; 0.94559; 0.94529;
2013.11.04 00:02:55.500; 0.94560; 0.94529;
2013.11.04 00:02:56.578; 0.94582; 0.94552;
#----------|-------------|--------|-------------------------<aStandardM1BAR.EoB>
2013.11.04 00:03:01.046; 0.94582; 0.94555;
2013.11.04 00:03:03.968; 0.94585; 0.94555;
2013.11.04 00:03:04.734; 0.94583; 0.94555;
2013.11.04 00:03:09.562; 0.94581; 0.94536;
2013.11.04 00:03:10.718; 0.94568; 0.94530;
2013.11.04 00:03:10.968; 0.94561; 0.94530;
2013.11.04 00:03:11.562; 0.94566; 0.94537;
2013.11.04 00:03:13.718; 0.94568; 0.94539;
2013.11.04 00:03:14.218; 0.94568; 0.94538;
2013.11.04 00:03:14.750; 0.94569; 0.94538;
2013.11.04 00:03:15.953; 0.94569; 0.94540;
2013.11.04 00:03:16.437; 0.94570; 0.94540;
2013.11.04 00:03:21.359; 0.94575; 0.94545;
2013.11.04 00:03:23.796; 0.94573; 0.94542;
2013.11.04 00:03:29.203; 0.94570; 0.94540;
2013.11.04 00:03:29.875; 0.94567; 0.94540;
2013.11.04 00:03:34.859; 0.94572; 0.94550;
2013.11.04 00:03:36.062; 0.94574; 0.94550;
2013.11.04 00:03:36.359; 0.94574; 0.94548;
2013.11.04 00:03:36.671; 0.94574; 0.94546;
2013.11.04 00:03:36.915; 0.94575; 0.94550;
2013.11.04 00:03:37.578; 0.94578; 0.94550;
2013.11.04 00:03:37.781; 0.94576; 0.94546;
2013.11.04 00:03:37.896; 0.94573; 0.94541;
2013.11.04 00:03:38.532; 0.94571; 0.94540;
2013.11.04 00:03:39.765; 0.94570; 0.94540;
2013.11.04 00:03:39.803; 0.94568; 0.94540;
2013.11.04 00:03:58.500; 0.94573; 0.94548;
#----------|-------------|--------|-------------------------<aStandardM1BAR.EoB>
2013.11.04 00:04:08.375; 0.94575; 0.94548;
2013.11.04 00:04:09.734; 0.94580; 0.94560;
2013.11.04 00:04:14.784; 0.94592; 0.94564;
2013.11.04 00:04:14.987; 0.94587; 0.94563;
2013.11.04 00:04:14.996; 0.94587; 0.94566;
2013.11.04 00:04:15.062; 0.94574; 0.94552;