smc — SMC
Category: Trend · Composite · 🧪 Möbius Lab
Reading the response
Use POST /api/indicators?explain=true to include interpretation notes at indicators[responseKey].explain. Read numeric results from columns and data in the same object.
This is a trend indicator.
Parameters
| Parameter | Type | Default |
|---|---|---|
mode | string | historical |
internal_size | int | 5 |
internal_filter_confluence | bool | false |
internal_show_bull | string | all |
internal_show_bear | string | all |
swing_size | int | 50 |
swing_show_bull | string | all |
swing_show_bear | string | all |
show_swing_points | bool | false |
show_strong_weak_hl | bool | true |
internal_ob_max | int | 5 |
swing_ob_max | int | 5 |
ob_filter | string | atr |
ob_mitigation | string | highlow |
eq_size | int | 3 |
eq_threshold | float | 0.1 |
fvg_auto_threshold | bool | true |
fvg_timeframe | string | `` |
fvg_extend | int | 1 |
show_daily_levels | bool | false |
show_weekly_levels | bool | false |
show_monthly_levels | bool | false |
show_premium_discount_zones | bool | false |
show_color_candles | bool | false |
Output columns
| Column |
|---|
smc_atr200 |
smc_parsed_low |
smc_volatility |
smc_parsed_high |
smc_swing_trend |
smc_candle_color |
smc_high_vol_bar |
smc_trailing_top |
smc_internal_trend |
smc_trailing_bottom |
smc_swing_low_active |
smc_swing_high_active |
smc_internal_low_active |
smc_internal_high_active |
SMC also returns objects for structure events, order blocks, gaps and zones. Here internal means shorter-scale market structure.
Native features
Set top-level signals: true and read indicators[responseKey].signals. By default features are evaluated on closed bars: true is a positive result, false a valid negative result, and null unknown. These are not trade instructions.
This indicator supports include_forming: true: treat the current final OHLCV sample as complete under the same native rules, returning one set of values, features and objects. The signal table appends bar_status: closed for closed bars, forming for a trial with confirmed_at_ms=null. A trial may disappear on later updates or at close. For BYO, still set last_bar_closed: false. Close requirements below describe the default mode; trials only admit the final sample without shortening structural windows or model confirmation requirements. See forming trials.
History lengths are minimum evaluation requirements, not convergence guarantees. Comparisons use unrounded values and the exact boundaries below. Do not turn null into false on gaps, invalid dependencies or forming bars in the default mode.
| Feature column | Kind | Rule | Meaning | History / validity |
|---|---|---|---|---|
smc.internal_bullish_bos | event | Close strictly breaks an unconsumed internal high pivot. Prior bias is not opposite (including initial unknown) for BOS. | Native structure break/change of character. Each pivot is consumed once; internal events also use swing-pivot exclusion and the optional wick filter. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.internal_bearish_bos | event | Close strictly breaks an unconsumed internal low pivot. Prior bias is not opposite (including initial unknown) for BOS. | Native structure break/change of character. Each pivot is consumed once; internal events also use swing-pivot exclusion and the optional wick filter. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.internal_bullish_choch | event | Close strictly breaks an unconsumed internal high pivot. Prior bias is opposite for CHOCH. | Native structure break/change of character. Each pivot is consumed once; internal events also use swing-pivot exclusion and the optional wick filter. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.internal_bearish_choch | event | Close strictly breaks an unconsumed internal low pivot. Prior bias is opposite for CHOCH. | Native structure break/change of character. Each pivot is consumed once; internal events also use swing-pivot exclusion and the optional wick filter. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.swing_bullish_bos | event | Close strictly breaks an unconsumed swing high pivot. Prior bias is not opposite (including initial unknown) for BOS. | Native structure break/change of character. Each pivot is consumed once; internal events also use swing-pivot exclusion and the optional wick filter. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.swing_bearish_bos | event | Close strictly breaks an unconsumed swing low pivot. Prior bias is not opposite (including initial unknown) for BOS. | Native structure break/change of character. Each pivot is consumed once; internal events also use swing-pivot exclusion and the optional wick filter. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.swing_bullish_choch | event | Close strictly breaks an unconsumed swing high pivot. Prior bias is opposite for CHOCH. | Native structure break/change of character. Each pivot is consumed once; internal events also use swing-pivot exclusion and the optional wick filter. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.swing_bearish_choch | event | Close strictly breaks an unconsumed swing low pivot. Prior bias is opposite for CHOCH. | Native structure break/change of character. Each pivot is consumed once; internal events also use swing-pivot exclusion and the optional wick filter. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.internal_bullish_order_block_mitigated | event | An active internal bullish order block is first breached: low or close < bottom, using ob_mitigation. | Order-block invalidation, not creation or an executed order. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.internal_bearish_order_block_mitigated | event | An active internal bearish order block is first breached: high or close > top, using ob_mitigation. | Order-block invalidation, not creation or an executed order. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.swing_bullish_order_block_mitigated | event | An active swing bullish order block is first breached: low or close < bottom, using ob_mitigation. | Order-block invalidation, not creation or an executed order. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.swing_bearish_order_block_mitigated | event | An active swing bearish order block is first breached: high or close > top, using ob_mitigation. | Order-block invalidation, not creation or an executed order. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.equal_highs | event | The absolute difference between consecutive confirmed same-kind pivots is < eq_threshold * current smc_atr200. | Two same-kind pivots are close within the ATR tolerance, not necessarily equal or reversal points. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.equal_lows | event | The absolute difference between consecutive confirmed same-kind pivots is < eq_threshold * current smc_atr200. | Two same-kind pivots are close within the ATR tolerance, not necessarily equal or reversal points. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.bullish_fair_value_gap | event | low[t] > high[t-2] and close[t-1] > high[t-2] and delta > threshold. | A native three-bar gap forms; the event belongs to the third bar's close, never the object's middle-bar timestamp. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.bearish_fair_value_gap | event | high[t] < low[t-2] and close[t-1] < low[t-2] and -delta > threshold. | A native three-bar gap forms; the event belongs to the third bar's close, never the object's middle-bar timestamp. | Contiguous bars: scope size + 1 for structures/order blocks, eq_size + 1 for equal levels, 3 for FVG. |
smc.internal_bullish_bos
- With internal_filter_confluence=true, bullish requires upper wick > lower wick; bearish requires upper wick < lower wick, matching the calculation.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.internal_bearish_bos
- With internal_filter_confluence=true, bullish requires upper wick > lower wick; bearish requires upper wick < lower wick, matching the calculation.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.internal_bullish_choch
- With internal_filter_confluence=true, bullish requires upper wick > lower wick; bearish requires upper wick < lower wick, matching the calculation.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.internal_bearish_choch
- With internal_filter_confluence=true, bullish requires upper wick > lower wick; bearish requires upper wick < lower wick, matching the calculation.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.swing_bullish_bos
- With internal_filter_confluence=true, bullish requires upper wick > lower wick; bearish requires upper wick < lower wick, matching the calculation.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.swing_bearish_bos
- With internal_filter_confluence=true, bullish requires upper wick > lower wick; bearish requires upper wick < lower wick, matching the calculation.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.swing_bullish_choch
- With internal_filter_confluence=true, bullish requires upper wick > lower wick; bearish requires upper wick < lower wick, matching the calculation.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.swing_bearish_choch
- With internal_filter_confluence=true, bullish requires upper wick > lower wick; bearish requires upper wick < lower wick, matching the calculation.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.internal_bullish_order_block_mitigated
- Multiple matching invalidations on one bar produce one true value; an already invalidated block does not trigger again.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.internal_bearish_order_block_mitigated
- Multiple matching invalidations on one bar produce one true value; an already invalidated block does not trigger again.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.swing_bullish_order_block_mitigated
- Multiple matching invalidations on one bar produce one true value; an already invalidated block does not trigger again.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.swing_bearish_order_block_mitigated
- Multiple matching invalidations on one bar produce one true value; an already invalidated block does not trigger again.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.equal_highs
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.equal_lows
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.bullish_fair_value_gap
- delta=(close[t-1]-open[t-1])/(open[t-1]*100). Auto threshold is cumulative mean(abs(delta))*2 (initial invalid delta is zero); otherwise 0.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
smc.bearish_fair_value_gap
- delta=(close[t-1]-open[t-1])/(open[t-1]*100). Auto threshold is cumulative mean(abs(delta))*2 (initial invalid delta is zero); otherwise 0.
- Events are independent of mode=present, structure display filters and candle coloring; emitted only after this bar closes.
See feature requests for the format and examples. /api/chart also accepts signals: true, marking confirmed events by default. With include_forming, trial events also produce markers tagged bar_status=forming; states are not drawn on every bar. See feature charts.
Example call
curl -X POST -H "Authorization: Bearer mq_xxx" \
-H "Content-Type: application/json" \
-d '{
"exchange": "binance",
"market": "perp",
"symbol": "BTCUSDT",
"interval": "5m",
"limit": 100,
"signals": true,
"calc": [{"name": "smc", "params": {"mode": "historical", "internal_size": 5, "internal_filter_confluence": false, "internal_show_bull": "all", "internal_show_bear": "all", "swing_size": 50, "swing_show_bull": "all", "swing_show_bear": "all", "show_swing_points": false, "show_strong_weak_hl": true, "internal_ob_max": 5, "swing_ob_max": 5, "ob_filter": "atr", "ob_mitigation": "highlow", "eq_size": 3, "eq_threshold": 0.1, "fvg_auto_threshold": true, "fvg_timeframe": "", "fvg_extend": 1, "show_daily_levels": false, "show_weekly_levels": false, "show_monthly_levels": false, "show_premium_discount_zones": false, "show_color_candles": false}}]
}' \
https://api.mobiusquant.ai/api/indicatorsFull interpretation guide
Field meanings, interpretation rules and usage notes are documented in Chinese at:
Related indicators
alligator · alma · ema · hma · hmm_regime · lsma · mcginley_dynamic · mobius_trend