Use Case
Market Making
Real-time spread data, tick-level quotes, volatility indicators, and high-frequency-ready response times for building competitive market-making algorithms.
The Challenge
Market makers profit from the bid-ask spread while managing inventory risk. This requires continuous monitoring of current spreads, tick-level price movements, and volatility conditions that affect optimal quote width. You need a data source that delivers real-time quotes and spread analytics without the overhead of maintaining direct exchange connections, plus volatility indicators to dynamically adjust your quoting strategy.
How TickAtlas Solves It
Real-Time Spread Data
/v1/spread returns current spread, average spread, and spread percentile. Know exactly where the market is quoting.
Tick Data Stream
/v1/ticks provides raw bid/ask tick data with timestamps. Track every price movement for quote adjustment.
Volatility Indicators
ATR, Bollinger Band width, and StdDev on short timeframes. Widen quotes during high volatility, tighten during calm.
Sub-100ms Latency
Redis-cached responses with 2-second TTL. Enterprise plan: 6,000 req/min for continuous high-frequency polling.
Multi-Symbol Quotes
/v1/multi fetches quotes and indicators for your entire book in a single request. Reduce round-trips.
Session Awareness
/v1/sessions tells you which markets are open. Adjust quoting behavior for London, New York, and Asian sessions.
Key Endpoints
GET /v1/spread?symbol=EURUSD Current spread, average, min, max, and percentile
GET /v1/ticks?symbol=EURUSD&limit=500 Raw bid/ask ticks for micro-structure analysis
GET /v1/indicator?name=atr&timeframe=M5 Short-term ATR for dynamic quote width adjustment
GET /v1/sessions Market session status for liquidity-aware quoting
Market Making Architecture
┌──────────────────────────────────────────────────────────────┐
│ Market Making Engine │
│ │
│ ┌──────────────┐ ┌───────────────┐ ┌──────────────────┐ │
│ │ Tick Monitor │ │ Spread │ │ Volatility │ │
│ │ /v1/ticks │ │ /v1/spread │ │ /v1/indicator │ │
│ │ (100ms poll) │ │ (1s poll) │ │ ATR, BB Width │ │
│ └──────┬───────┘ └──────┬────────┘ └──────┬───────────┘ │
│ │ │ │ │
│ └─────────┬───────┴──────┬────────────┘ │
│ ▼ ▼ │
│ ┌──────────────────────────┐ │
│ │ Quote Calculator │ │
│ │ mid_price +/- f(ATR, vol) │ │
│ └──────────┬───────────────┘ │
│ ▼ │
│ Submit bid/ask to venue │
└──────────────────────────────────────────────────────────────┘ Code Example
import requests
API_KEY = "your_api_key"
BASE = "https://tickatlas.com/v1"
headers = {"X-API-Key": API_KEY}
def calculate_quote_width(symbol):
"""Dynamic quote width based on current volatility and spread."""
# Current spread conditions
spread = requests.get(f"{BASE}/spread",
headers=headers, params={"symbol": symbol}).json()
current_spread = spread["data"]["current_spread_pips"]
avg_spread = spread["data"]["average_spread_pips"]
# Short-term volatility (ATR on M5)
atr = requests.get(f"{BASE}/indicator", headers=headers,
params={"symbol": symbol, "name": "atr", "timeframe": "M5"}).json()
atr_value = atr["data"]["value"]
# Bollinger Band width for volatility regime
bb = requests.get(f"{BASE}/indicator", headers=headers,
params={"symbol": symbol, "name": "bollinger-bands", "timeframe": "M5"}).json()
bb_width = bb["data"]["width"]
# Dynamic quote width: wider in volatile markets
base_width = max(current_spread * 1.2, avg_spread)
vol_multiplier = 1.0 + (bb_width / 0.01) # Wider BB = wider quotes
quote_width = base_width * vol_multiplier
return {
"symbol": symbol,
"bid_offset": -quote_width / 2,
"ask_offset": +quote_width / 2,
"atr": atr_value,
"bb_width": bb_width,
"spread": current_spread
}
# Calculate for your book
for sym in ["EURUSD", "GBPUSD", "USDJPY"]:
quote = calculate_quote_width(sym)
print(f"{sym}: width={quote['ask_offset'] - quote['bid_offset']:.1f} pips "
f"(ATR={quote['atr']:.5f}, spread={quote['spread']:.1f})") Recommended Plan
Enterprise Plan
$349/moMarket making requires the highest request volumes and lowest latency. Enterprise gives 1,000,000 requests/day, 6,000 req/min, and SLA guarantees for production systems.
- ✓ 6,000 req/min for continuous high-frequency polling
- ✓ /v1/ticks and /v1/spread for micro-structure data
- ✓ SLA guarantee and dedicated support
- ✓ 100 API keys for distributed systems
Power Your Quotes with Real Data
14-day free trial. Test spread and tick data before committing to production.