Skip to content
Velo

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'])