簡體   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