Appearance

Personalize your experience

Mode
Accent Color
Layout
Direction
MarketplaceindicatorsMarket Structure Break

Market Structure Break

Free

Detects BOS and CHoCH using swing pivot analysis

4.6(178)
3.4k installs 920 2 comments
A
7 listings3200 followers

Full-stack quant developer. Building open-source trading tools.

View Profile
smcmarket-structureboschochsmart-money
Free
Open in QuaTick IDE Edit in IDE
Version1.2.0
Updated2025-10-01
Compatiblecandlestick

Live Preview — BTC/USDT

About

Identifies **Break of Structure** (BOS) and **Change of Character** (CHoCH) signals using swing high/low pivot detection.


Concepts

BOS: Continuation of the current trend (break of prior swing in trend direction)

CHoCH: Reversal signal (break against current trend)

Uses configurable pivot length for sensitivity

Outputs & Parameters

Outputs

BOS Signalsdots
CHoCH Signalsdots

Parameters

Pivot Length5
Show BOStrue
Show CHoCHtrue

Source Code

Edit in IDE
typescript
1// Market Structure (BOS/CHoCH) — Quatick IDE
2// Returns close deviation % from SMA as a structure oscillator.
3// SDK math globals available: sma, ema, atr, rsi, macd, bollingerBands, vwap, etc.
4 
5const metadata = { id: 'market-structure', name: 'Market Structure', version: '1.0.0', category: 'trend' };
6 
7interface BarData {
8 time: number;
9 open: number;
10 high: number;
11 low: number;
12 close: number;
13 volume?: number;
14}
15 
16const defaultParams = { period: 20, pivotLength: 5 };
17 
18/**
19 * Returns close-price deviation % from a smoothed baseline.
20 * Positive = price is above average (bullish bias), negative = below (bearish bias).
21 * Used as a proxy for market structure bias.
22 */
23function calculate(bars: BarData[], params = defaultParams): { time: number; value: number }[] {
24 const closes = bars.map(b => b.close);
25 const smaValues = sma(closes, params.period);
26 
27 return bars
28 .map((bar, i) => ({
29 time: bar.time,
30 value: isNaN(smaValues[i]) ? NaN : ((bar.close - smaValues[i]) / smaValues[i]) * 100,
31 }))
32 .filter(p => !isNaN(p.value));
33}
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.