Skip to content

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 ​

ParameterTypeDefault
modestringhistorical
internal_sizeint5
internal_filter_confluenceboolfalse
internal_show_bullstringall
internal_show_bearstringall
swing_sizeint50
swing_show_bullstringall
swing_show_bearstringall
show_swing_pointsboolfalse
show_strong_weak_hlbooltrue
internal_ob_maxint5
swing_ob_maxint5
ob_filterstringatr
ob_mitigationstringhighlow
eq_sizeint3
eq_thresholdfloat0.1
fvg_auto_thresholdbooltrue
fvg_timeframestring``
fvg_extendint1
show_daily_levelsboolfalse
show_weekly_levelsboolfalse
show_monthly_levelsboolfalse
show_premium_discount_zonesboolfalse
show_color_candlesboolfalse

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 columnKindRuleMeaningHistory / validity
smc.internal_bullish_boseventClose 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_boseventClose 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_chocheventClose 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_chocheventClose 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_boseventClose 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_boseventClose 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_chocheventClose 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_chocheventClose 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_mitigatedeventAn 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_mitigatedeventAn 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_mitigatedeventAn 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_mitigatedeventAn 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_highseventThe 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_lowseventThe 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_gapeventlow[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_gapeventhigh[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 ​

bash
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/indicators

Full interpretation guide ​

Field meanings, interpretation rules and usage notes are documented in Chinese at:

smc (中文详情)

alligator · alma · ema · hma · hmm_regime · lsma · mcginley_dynamic · mobius_trend

AI trading infrastructure