繁体   English   中英

T-SQL对OHLC存储过程的cks俩

[英]T-SQL Ticks to OHLC Stored Procedure

遵循查询标准,使用自定义时间跨度输入,开始日期和结束日期将报价数据转换为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

时间跨度:1min

第一种情况的输出

  • 时间跨度:1分钟
  • 开始日期:2000-05-30 17:10:00.000
  • 结束日期:2000-05-30 17:13:36.000
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:13:36.000, 0.93020, 0.93020, 0.93020, 0.93020,  0.93970, 0.93970, 0.93970, 0.93970

第二种情况的输出

  • 时间跨度:1分钟
  • 开始日期:2000-05-30 17:10:00.000
  • 结束日期:2000-05-30 17:13:36.000
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

由于多种原因(行业实践,性能,重复使用,可伸缩性,ETL /集成需求等),最好的方法是将报价流例行预处理为<_static_forever_> OHLC V -Tables,以供日后重新使用-在定量模型中使用,并针对所有必需的TimeFRAME(行业通用模型和合成模型)进行预先计算。

方案A和B的< aVarTimeSPAN >的SQL部分

然后使用标准SQL查询仅SELECT所需变量,用户定义的时间跨度

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

自定义定义的报价的非线性重新定格(又名刻度)

Scenario.AScenario.B[Bid,Ask]记录进行了不同的重新框架,使其“位于”请求的时间跨度之内。

以上定义的DataSET样本确实允许进行多种解释,在两种方案方法中,应如何计算OHLC。

对于这样的实际示例,正确的Open / Hi / Lo / Close值是正确的,假设时间跨度为[2013.11.04-00:00:55.000,

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM