subgrounds icon indicating copy to clipboard operation
subgrounds copied to clipboard

Timeseries Support

Open 0xMochan opened this issue 1 year ago • 0 comments

Is your feature request related to a problem? Please describe.

Description

Given a subgrounds fieldpath(s) representing a list of entities, then it should be possible to wrap those fieldpaths in a timeseries which would normalize the data according to time key, interval, aggregation method and interpolation method.

Supported intervals (to start):

  • hourly
  • daily
  • weekly
  • monthly

Supported aggregation methods:

  • mean
  • sum
  • first
  • last
  • median
  • min
  • max
  • count

Supported interpolation methods:

  • backward fill (use next value to fill in missing value)
  • forward fill (use previous value to fill in missing value)

Describe the solution you'd like

sg = Subgrounds()
uniswapV2 = sg.load_subgraph("https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2")

Swap.price0 = abs(Swap.amount1In - Swap.amount1Out) / abs(Swap.amount0In - Swap.amount0Out)
Swap.price1 = abs(Swap.amount0In - Swap.amount0Out) / abs(Swap.amount1In - Swap.amount1Out)

swaps = uniswapV2.Query.swaps(
  orderBy=Swap.timestamp,
  orderDirection='desc',
  first=500,
)

price0_hourly_close = Timeseries(
  x=swaps.timestamp,
  y=swaps.price0,
  interval='hour',
  aggregation='last',
  interpolation='ffill'
)

Originally from: cvauclair

0xMochan avatar Mar 03 '23 22:03 0xMochan