Appearance

Personalize your experience

Mode
Accent Color
Layout
Direction
MarketplaceindicatorsOrder Flow Imbalance

Order Flow Imbalance

Featured999

Approximates buy/sell pressure from OHLCV bar structure

4.5(143)
1.8k installs 620 2 comments
P
4 listings1800 followers

Quantitative analyst specialising in options and derivatives.

View Profile
order-flowdeltavolumesmart-moneyinstitutional
999 one-time
Open in QuaTick IDE Edit in IDE
Version1.0.4
Updated2025-11-10
Compatiblecandlestick

Live Preview — BTC/USDT

About

Detects order-flow imbalance by analyzing wick ratios and volume delta. Generates buy/sell zone signals when cumulative delta exceeds threshold.


Method

Wick-ratio based buy/sell pressure approximation

Cumulative delta over configurable lookback

Zone signals when threshold exceeded

Outputs & Parameters

Outputs

Imbalance Lineline
Buy/Sell Zonesdots

Parameters

Lookback Bars14
Signal Threshold2
Show Zonestrue

Source Code

Edit in IDE
typescript
1// Order Flow Imbalance — Quatick IDE
2// SDK math globals available: sma, ema, atr, rsi, macd, bollingerBands, vwap, etc.
3 
4const metadata = { id: 'order-flow', name: 'Order Flow Imbalance', version: '1.0.0', category: 'volume' };
5 
6interface BarData {
7 time: number;
8 open: number;
9 high: number;
10 low: number;
11 close: number;
12 volume?: number;
13}
14 
15const defaultParams = { smoothing: 5 };
16 
17/**
18 * Approximates order-flow delta from OHLCV bar structure.
19 * Positive value = buy pressure dominant; Negative = sell pressure dominant.
20 */
21function calculate(bars: BarData[], params = defaultParams): { time: number; value: number }[] {
22 const deltas = bars.map(bar => {
23 const range = bar.high - bar.low;
24 if (range === 0) return 0;
25 const buyPressure = (Math.max(bar.open, bar.close) - bar.low) / range;
26 const sellPressure = (bar.high - Math.min(bar.open, bar.close)) / range;
27 return (buyPressure - sellPressure) * (bar.volume ?? 1);
28 });
29 
30 // Smooth the delta using the SDK sma() global
31 const smoothed = sma(deltas, params.smoothing);
32 
33 return bars
34 .map((bar, i) => ({ time: bar.time, value: smoothed[i] }))
35 .filter(p => !isNaN(p.value));
36}
Read-only preview. Open in the QuaTick IDE to edit and deploy.

Reviews

No reviews yet. Be the first to review this listing.

Discussion

Sign in to join the discussion. Your posts and replies show up on your profile.