Fetch OI-Weighted Funding Rate
from velodata import lib as velo
hour_in_ms = 1000 * 60 * 60
# new velo client
client = velo.client('api_key')
# from one hour ago in 1 minute resolution
params = {
'type': 'futures',
'columns': ['funding_rate', 'coin_open_interest_close'],
'exchanges': ['binance-futures', 'bybit', 'okex-swap'],
'coins': ['SOL'],
'begin': client.timestamp() - hour_in_ms,
'end': client.timestamp(),
'resolution': '1m'
}
# returns dataframe
df = client.get_rows(params)
# oi-weighted funding = SUM(funding*OI) / SUM(OI)
df['funding_rate'] = df['funding_rate'] * df['coin_open_interest_close']
df = df.groupby(df['time']).sum(numeric_only=True)
df['funding_rate'] = df['funding_rate'] / df['coin_open_interest_close']
print(df['funding_rate'])