Derivatives Analysis Tutorial

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 Market Overview

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.

Exchange Coverage

  • Bybit: $100B+ daily derivatives volume, strong retail presence
  • Binance Futures: $200B+ daily volume, largest global exchange
  • Hyperliquid: $50B+ daily volume, emerging derivatives leader

Understanding Funding Rates

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.

For related topics, see confirmation scores, whale tracking, and market scanner guides.

Master Derivatives Analysis

Access real-time funding rates, liquidation tracking, and open interest analysis across all major exchanges. Start with Pro plan for full derivatives intelligence.

Get Derivatives Data