Master derivatives market analysis with Smart Money API. Learn to interpret funding rates, monitor open interest trends, track liquidations, and use this data to anticipate market direction. Derivatives markets often lead spot markets by hours or days, giving you a predictive advantage.
Derivatives markets (perpetual contracts and futures) account for 10-15x the volume of spot markets. Smart Money API aggregates data from three major exchanges: Bybit, Binance, and Hyperliquid.
Funding rates compensate long and short positions in perpetual contracts. Positive funding means longs pay shorts (bullish signal), negative funding means shorts pay longs (bearish signal).
PYTHON
import requests
def analyze_funding_rates(symbol='BTC'):
"""Analyze funding rates across exchanges"""
response = requests.get(
f'https://api.smartmoneyapi.com/v1/derivatives/funding-rates',
params={'symbol': symbol},
headers={'X-API-Key': 'your_api_key'}
)
data = response.json()['data']
print(f"Funding Rate Analysis - {symbol}")
print("=" * 50)
funding_rates = {}
for exchange_data in data:
exchange = exchange_data['exchange']
funding_rate = exchange_data['funding_rate']
next_funding = exchange_data['next_funding_time']
funding_rates[exchange] = funding_rate
rate_pct = funding_rate * 100
signal = "VERY BULLISH" if funding_rate > 0.01 else \
"BULLISH" if funding_rate > 0.005 else \
"NEUTRAL" if abs(funding_rate) < 0.005 else \
"BEARISH" if funding_rate < -0.005 else "VERY BEARISH"
print(f"{exchange:15} {rate_pct:+7.4f}% ({signal})")
# Average funding rate
avg_rate = sum(funding_rates.values()) / len(funding_rates)
avg_pct = avg_rate * 100
print("-" * 50)
print(f"Average Rate: {avg_pct:+7.4f}%")
# Interpretation
if avg_rate > 0.01:
print("\nInterpretation: EXTREME BULLISH SENTIMENT")
print("Traders are paying high premiums for long positions.")
print("Potential reversal risk if rates stay elevated.")
elif avg_rate > 0.005:
print("\nInterpretation: BULLISH SENTIMENT")
print("Long positions are preferred. Moderate upside potential.")
elif avg_rate < -0.01:
print("\nInterpretation: EXTREME BEARISH SENTIMENT")
print("Shorts are paying high premiums. Potential reversal risk.")
else:
print("\nInterpretation: NEUTRAL/BALANCED")
return funding_rates
# Usage
rates = analyze_funding_rates('BTC')
rates_eth = analyze_funding_rates('ETH')
Open Interest Analysis
Open interest (OI) measures total open positions in derivatives. Increasing OI often precedes volatility moves, while decreasing OI suggests position closing.
JAVASCRIPT
const API_KEY = process.env.SMARTMONEY_PUBLIC_KEY;
async function analyzeOpenInterest(symbol = 'BTC') {
const response = await fetch(
`https://api.smartmoneyapi.com/v1/derivatives/open-interest?symbol=${symbol}`,
{
headers: { 'X-API-Key': API_KEY }
}
);
const data = await response.json();
const oi = data.data;
console.log(`Open Interest Analysis - ${symbol}`);
console.log('='.repeat(50));
// Current OI
const totalOI = oi.total_oi_usd;
console.log(`Total OI: $${(totalOI / 1e9).toFixed(2)}B`);
// Long vs Short breakdown
const longOI = oi.long_oi_usd;
const shortOI = oi.short_oi_usd;
const longRatio = longOI / totalOI;
console.log(`Long OI: $${(longOI / 1e9).toFixed(2)}B (${(longRatio * 100).toFixed(1)}%)`);
console.log(`Short OI: $${(shortOI / 1e9).toFixed(2)}B (${((1-longRatio) * 100).toFixed(1)}%)`);
// OI Change
const oiChange24h = oi.oi_change_24h;
const oiChangePct = (oiChange24h / totalOI * 100).toFixed(2);
console.log(`\n24h OI Change: ${oiChangePct}%`);
// Interpretation
if (oiChangePct > 15) {
console.log('Signal: INCREASING OI (expect volatility)');
} else if (oiChangePct < -15) {
console.log('Signal: DECREASING OI (positions unwinding)');
}
// Long/Short ratio signal
if (longRatio > 0.75) {
console.log('Signal: EXTREME LONGS (reversal risk)');
} else if (longRatio < 0.25) {
console.log('Signal: EXTREME SHORTS (reversal risk)');
} else if (longRatio > 0.60) {
console.log('Signal: BULLISH BIAS');
} else if (longRatio < 0.40) {
console.log('Signal: BEARISH BIAS');
} else {
console.log('Signal: BALANCED');
}
return oi;
}
analyzeOpenInterest('BTC');
analyzeOpenInterest('ETH');
Liquidation Events and Cascades
Track liquidations to identify price levels that trigger cascading liquidations. These "liquidation cascades" can move markets dramatically when triggered.
PYTHON
class LiquidationTracker:
def __init__(self, api_client):
self.api = api_client
def get_liquidation_levels(self, symbol, price_range_pct=5):
"""Find liquidation levels near current price"""
# Get current price
current_price = self.api.get_price(symbol)
# Get liquidation data
liquidations = self.api.get_liquidation_levels(symbol)
# Filter by price range
price_min = current_price * (1 - price_range_pct / 100)
price_max = current_price * (1 + price_range_pct / 100)
nearby_liquidations = [
l for l in liquidations
if price_min <= l['price'] <= price_max
]
# Sort by volume
nearby_liquidations.sort(key=lambda x: x['total_volume'], reverse=True)
return {
'current_price': current_price,
'liquidation_levels': nearby_liquidations
}
def analyze_liquidation_risk(self, symbol):
"""Analyze liquidation cascade risk"""
levels = self.get_liquidation_levels(symbol)
current_price = levels['current_price']
# Group liquidations by level
level_groups = {}
for liq in levels['liquidation_levels']:
price = round(liq['price'], -2) # Round to nearest 100
if price not in level_groups:
level_groups[price] = {'volume': 0, 'longs': 0, 'shorts': 0}
level_groups[price]['volume'] += liq['total_volume']
if liq['side'] == 'long':
level_groups[price]['longs'] += liq['total_volume']
else:
level_groups[price]['shorts'] += liq['total_volume']
# Find concentrated liquidation levels
concentrated = {
price: data
for price, data in level_groups.items()
if data['volume'] > 50000000 # >$50M in liquidations
}
return {
'current_price': current_price,
'concentrated_levels': concentrated,
'cascade_risk': len(concentrated) > 2 # Multiple levels = cascade risk
}
def monitor_liquidations_realtime(self, symbol, callback):
"""Monitor liquidations in real-time via WebSocket"""
ws_url = 'wss://api.smartmoneyapi.com/ws'
import asyncio
import websockets
import json
async def monitor():
async with websockets.connect(ws_url) as ws:
# Authenticate
await ws.send(json.dumps({
'type': 'auth',
'api_key': self.api.api_key
}))
# Subscribe to liquidations
await ws.send(json.dumps({
'type': 'subscribe',
'channel': f'derivatives:liquidations:{symbol}'
}))
# Listen for liquidation events
async for message in ws:
data = json.loads(message)
if data.get('type') == 'liquidation':
liquidation = data['payload']
# Call callback with liquidation data
callback(liquidation)
asyncio.run(monitor())
# Usage
tracker = LiquidationTracker(api_client)
def on_liquidation(liq):
print(f"LIQUIDATION: {liq['side'].upper()} liquidated at ${liq['price']}")
print(f" Size: ${liq['size_usd']:,.0f}")
print(f" Exchange: {liq['exchange']}")
risk = tracker.analyze_liquidation_risk('BTC')
print(f"Cascade Risk: {risk['cascade_risk']}")
print(f"Concentrated Levels: {len(risk['concentrated_levels'])}")
# Start monitoring
tracker.monitor_liquidations_realtime('BTC', on_liquidation)
Market Sentiment Indicators
Combine funding rates, open interest, and liquidations to create a composite market sentiment score.
Sentiment Scoring
Extreme Bullish: Positive funding + rising OI + long liquidations dominate
Bullish: Positive funding + stable/rising OI + mixed liquidations
Neutral: Near-zero funding + flat OI + balanced liquidations
Bearish: Negative funding + stable/falling OI + mixed liquidations
Extreme Bearish: Negative funding + falling OI + short liquidations dominate
Tracking Positions by Exchange
Compare derivatives data across exchanges to identify divergences and opportunities.
PYTHON
def compare_exchanges(symbol='BTC'):
"""Compare derivatives metrics across exchanges"""
data = {}
for exchange in ['bybit', 'binance', 'hyperliquid']:
response = requests.get(
f'https://api.smartmoneyapi.com/v1/derivatives/{exchange}/{symbol}',
headers={'X-API-Key': 'your_api_key'}
)
metrics = response.json()['data']
data[exchange] = {
'funding_rate': metrics['funding_rate'],
'open_interest': metrics['open_interest_usd'],
'long_ratio': metrics['long_oi'] / metrics['total_oi'],
'liquidations_24h': metrics['liquidations_24h']
}
# Identify divergences
print(f"\n{symbol} Derivatives Comparison")
print("=" * 60)
for exchange, metrics in data.items():
funding_pct = metrics['funding_rate'] * 100
long_pct = metrics['long_ratio'] * 100
print(f"\n{exchange.upper()}")
print(f" Funding Rate: {funding_pct:+.4f}%")
print(f" Open Interest: ${metrics['open_interest']:,.0f}")
print(f" Long Ratio: {long_pct:.1f}%")
print(f" 24h Liquidations: ${metrics['liquidations_24h']:,.0f}")
# Find arbitrage opportunities
funding_rates = [data[e]['funding_rate'] for e in data]
max_funding = max(funding_rates)
min_funding = min(funding_rates)
if max_funding - min_funding > 0.002: # >0.2% difference
print(f"\nā” FUNDING ARBITRAGE OPPORTUNITY")
print(f" Pay short on low-fee exchange: {min_funding:.4f}%")
print(f" Receive long on high-fee exchange: {max_funding:.4f}%")
print(f" Net spread: {(max_funding - min_funding) * 100:.2f}% per period")
compare_exchanges('BTC')
compare_exchanges('ETH')
Implementation Examples
Complete derivatives monitoring dashboard that tracks all key metrics and generates trading signals.
PYTHON
class DerivativesDashboard:
def __init__(self, api_client):
self.api = api_client
self.alerts = []
def generate_daily_report(self, symbols=['BTC', 'ETH']):
"""Generate daily derivatives report"""
report = "DAILY DERIVATIVES REPORT\n"
report += f"Generated: {datetime.now().strftime('%Y-%m-%d %H:%M UTC')}\n"
report += "=" * 60 + "\n"
for symbol in symbols:
report += self._analyze_symbol(symbol)
return report
def _analyze_symbol(self, symbol):
"""Analyze single symbol"""
section = f"\n{symbol}\n" + "-" * 30 + "\n"
# Get metrics
try:
funding = self.api.get_funding_rates(symbol)
oi = self.api.get_open_interest(symbol)
liq = self.api.get_liquidations_24h(symbol)
avg_funding = sum(f['funding_rate'] for f in funding.values()) / len(funding)
total_oi = sum(oi[e]['total_oi'] for e in oi)
section += f"Avg Funding: {avg_funding*100:+.4f}%\n"
section += f"Total OI: ${total_oi/1e9:.2f}B\n"
section += f"24h Liquidations: ${liq['total_usd']:,.0f}\n"
# Signal
if avg_funding > 0.01:
signal = "EXTREME BULLISH - Liquidation Risk"
self.alerts.append(signal)
elif avg_funding > 0.005:
signal = "BULLISH"
else:
signal = "NEUTRAL/BEARISH"
section += f"Signal: {signal}\n"
except Exception as e:
section += f"Error: {e}\n"
return section
def check_liquidation_cascades(self):
"""Check for cascade risks"""
cascades = []
for symbol in ['BTC', 'ETH', 'SOL']:
levels = self.api.get_liquidation_levels(symbol)
concentrated = sum(1 for l in levels if l['volume'] > 50000000)
if concentrated > 2:
cascades.append({
'symbol': symbol,
'concentrated_levels': concentrated,
'risk': 'HIGH'
})
return cascades
# Usage
dashboard = DerivativesDashboard(api_client)
report = dashboard.generate_daily_report()
print(report)
cascades = dashboard.check_liquidation_cascades()
if cascades:
print("\nCASCADE RISKS DETECTED:")
for cascade in cascades:
print(f" {cascade['symbol']}: {cascade['concentrated_levels']} concentrated levels")
Derivatives-Based Strategies
Combine derivatives intelligence with other Smart Money API data for complete trading strategies.
Professional Strategies
Funding Rate Arbitrage: Exploit funding rate differences between exchanges
Liquidation Front-Running: Place limit orders ahead of liquidation levels
OI Accumulation Play: Trade when OI accumulates aggressively before breakouts
Whale + Derivatives Combo: Track whales opening positions + high funding = strong signal
Exchange Divergence Trade: Trade when funding/OI diverge across exchanges
Pro Insight: Derivatives often lead spot markets. When perpetual funding rates spike positive before an exchange flow buy signal appears, you have early warning of institutional buying accumulation.
Access real-time funding rates, liquidation tracking, and open interest analysis across all major exchanges. Start with Pro plan for full derivatives intelligence.