2 番目の解像度のみの金融ティック データがあります。データ自体は時系列順に並べられています。
Date Time Bid Ask
06/07/2015 19:09:29 0.7623 0.76262
06/07/2015 19:09:29 0.7623 0.76271
06/07/2015 19:09:29 0.7623 0.76276
私は、1秒未満のオーダーを知ることができる必要がある分析を行うことを検討しています。したがって、私の最初の考えは、ミリ秒を「偽造」することでした。同じ秒内に複数のティック (データポイント) がある場合、それらがその秒内で均等に分散されていると仮定します。したがって、同じ秒内に 3 つのティックがあったため、最初は 2 番目の開始時に発生し、2 番目は .333 で、3 番目は .666 で発生すると想定します。
2 つの質問です。
このアプローチ (ミリ秒を偽装する) は、実際の注文を保存するための最良の方法ですか?
インポートするデータがかなり多いので、生データをアップロードしてから、ミリ秒の計算を行う選択を使用して宛先テーブルに挿入するという 2 段階のプロセスで操作することを考えていました。したがって、以下のクエリ/アプローチに関するヘルプをいただければ幸いです。
CREATE TEMPORARY TABLE dataload (
id serial
, dt date
, tm time
, bid numeric(10,5)
, ask numeric(10,5)
);
COPY dataload (dt, tm, bid, ask) FROM '/path/to/data.csv' WITH CSV HEADER;
-- INSERT INTO actual_table
SELECT
dt
, tm
, (dt||tm)::timestamp -- Need to hack the milliseconds here
from dataload
group by dt, tm;