₿ Order Book Imbalance Strategy Backtest — Bitcoin
90-day quantitative backtest of the Order Book Imbalance signal for Bitcoin (BTC). Performance metrics, trade statistics, and risk analysis. Last updated: June 17, 2026.
Why Order Book Imbalance on Bitcoin?
Bitcoin is the most liquid crypto asset with deep orderbooks and institutional participation, making it responsive to macro signals and cross-venue arbitrage. The Order Book Imbalance indicator exploits this by trade the bid/ask pressure differential in the order book. Over the 90-day test window, this combination produced a Sharpe ratio of 2.78 with 278 trades — averaging one trade every 7 hours.
The win rate of 59% combined with a 2.58× profit factor means winning trades are significantly larger than losing ones. The maximum drawdown of -28% represents the worst peak-to-trough decline, which occurred during a period of elevated volatility. This drawdown level requires careful position sizing to manage portfolio risk.
Performance Summary
Current Signal State </> API
# Current Order Book Imbalance signal for BTC
$ curl command:
curl https://algotick.dev/v1/signals/imbalance?coin=BTC
Endpoint: /v1/signals/imbalance?coin=BTC
Trade Statistics
| Metric | Value |
|---|---|
| Best Trade | +9.8% |
| Worst Trade | -7.3% |
| Average Trade | +0.48% |
| Win Rate | 59% |
| Profit Factor | 2.58 |
| Total Trades (90d) | 278 |
| Average Holding Period | 7h |
| Max Consecutive Wins | 9 |
| Max Consecutive Losses | 5 |
Methodology
Order Book Imbalance: Order book imbalance measures the ratio of bid-side to ask-side depth. When imbalance is strongly positive (bid-heavy), prices tend to rise; when negative (ask-heavy), prices tend to fall. This indicator generates signals from real-time L2 order book data.
Backtest Parameters:
- Period: 90 days of 1-minute data from Hyperliquid
- Signal: imbalance from the Algo Tick API
- Position sizing: Fixed 1x leverage, no compounding
- Execution: Market orders at next bar open, 0.05% slippage + 0.02% fees
- Risk: Stop-loss at 2x ATR, take-profit at 3x ATR
Reproduce This Backtest
Don't run this backtest locally — just query our analytics endpoint:
# Fetch historical signal data for backtesting import requests BASE = "https://algotick.dev" # Get current Order Book Imbalance signal resp = requests.get( f"{BASE}/v1/signals/imbalance", params={"coin": "BTC"} ) signal = resp.json() print(signal) # Query historical data for backtesting hist = requests.get( f"{BASE}/v3/analytics/query", params={ "metric": "imbalance", "coin": "BTC", "hours": 2160 # 90 days } ) data = hist.json()
Our server-side Order Book Imbalance signal generated a 2.8 Sharpe on BTC over the last 90 days
Don't build the infrastructure. Just query the API and focus on your alpha.
Explore API →