feat(candles): support oracle OHLC basis
This commit is contained in:
@@ -173,21 +173,55 @@ function sqlUpsertCandlesFromTicks({ symbol, sourceKey, bucketSeconds, fromIso,
|
||||
max(px) AS high,
|
||||
min(px) AS low,
|
||||
(array_agg(px ORDER BY ts DESC))[1] AS close,
|
||||
(array_agg(oracle_px ORDER BY ts ASC))[1] AS oracle_open,
|
||||
max(oracle_px) AS oracle_high,
|
||||
min(oracle_px) AS oracle_low,
|
||||
(array_agg(oracle_px ORDER BY ts DESC))[1] AS oracle_close,
|
||||
count(*)::bigint AS ticks
|
||||
FROM base
|
||||
GROUP BY bucket
|
||||
)
|
||||
INSERT INTO public.drift_candles_cache
|
||||
(bucket, bucket_seconds, symbol, source, open, high, low, close, oracle_close, ticks, updated_at)
|
||||
(
|
||||
bucket,
|
||||
bucket_seconds,
|
||||
symbol,
|
||||
source,
|
||||
open,
|
||||
high,
|
||||
low,
|
||||
close,
|
||||
oracle_open,
|
||||
oracle_high,
|
||||
oracle_low,
|
||||
oracle_close,
|
||||
ticks,
|
||||
updated_at
|
||||
)
|
||||
SELECT
|
||||
bucket, ${bucketSeconds}, ${sqlLit(symbol)}, ${sqlLit(sourceKey)}, open, high, low, close, oracle_close, ticks, now()
|
||||
bucket,
|
||||
${bucketSeconds},
|
||||
${sqlLit(symbol)},
|
||||
${sqlLit(sourceKey)},
|
||||
open,
|
||||
high,
|
||||
low,
|
||||
close,
|
||||
oracle_open,
|
||||
oracle_high,
|
||||
oracle_low,
|
||||
oracle_close,
|
||||
ticks,
|
||||
now()
|
||||
FROM agg
|
||||
ON CONFLICT (bucket, bucket_seconds, symbol, source) DO UPDATE SET
|
||||
open = EXCLUDED.open,
|
||||
high = EXCLUDED.high,
|
||||
low = EXCLUDED.low,
|
||||
close = EXCLUDED.close,
|
||||
oracle_open = EXCLUDED.oracle_open,
|
||||
oracle_high = EXCLUDED.oracle_high,
|
||||
oracle_low = EXCLUDED.oracle_low,
|
||||
oracle_close = EXCLUDED.oracle_close,
|
||||
ticks = EXCLUDED.ticks,
|
||||
updated_at = now();
|
||||
|
||||
Reference in New Issue
Block a user