★ ★ ★LIVE97 COINS ANALYZED BY CLAUDE MCP·VIEW SKILLS →★ ★ ★
MCP
claude.analyze("BTCUSDT")→ [buy] signal detectedmcp.draw_levels(resistance=98000)→ [drawn] on chartclaude.scan_watchlist(coins=100)→ [42] buy signals foundmcp.connect("tradingview")→ [connected] daily TFclaude.detect_sr("SOLUSDT")→ [S: $165] [R: $185]claude.analyze("ETHUSDT")→ [neutral] consolidatingmcp.screenshot_chart("BNBUSDT")→ [captured] analyzing...claude.score_quality("XRPUSDT")→ score: 78/100mcp.set_timeframe("1D")→ [ok] chart updatedclaude.analyze("BTCUSDT")→ [buy] signal detectedmcp.draw_levels(resistance=98000)→ [drawn] on chartclaude.scan_watchlist(coins=100)→ [42] buy signals foundmcp.connect("tradingview")→ [connected] daily TFclaude.detect_sr("SOLUSDT")→ [S: $165] [R: $185]claude.analyze("ETHUSDT")→ [neutral] consolidatingmcp.screenshot_chart("BNBUSDT")→ [captured] analyzing...claude.score_quality("XRPUSDT")→ score: 78/100mcp.set_timeframe("1D")→ [ok] chart updated
BACK TO CLAUDE SKILLS

detect_support_resistance

Chart AnalysisAnalysisS&R
INSTALLATION
$python -c "exec(open('detect_support_resistance.py').read())"
#or paste directly into your Claude Code terminal
[ ABOUT ]

Scans historical high and low arrays using a rolling local-extremum algorithm with configurable lookback (`n` bars on each side). A price is classified as support if it is the minimum low within a ±n window; resistance if it is the maximum high. Results are deduplicated and returned as sorted float lists.

The lookback period `n` directly controls sensitivity: smaller values (e.g. 3) detect many minor levels; larger values (e.g. 10) return only major structural zones. For daily timeframe crypto analysis, `n=5` strikes a balance that catches swing-level S/R without noise from intraday wicks.

[ USAGE EXAMPLE ]
example.py
highs = [101, 103, 98, 105, 100]
lows  = [95, 97, 92, 99, 94]
levels = detect_sr(highs, lows, n=2)
# → {"support": [92.0, 94.0], "resistance": [103.0, 105.0]}
[ FULL CODE ]
detect_support_resistance.py
def detect_sr(highs, lows, n=5): support, resist = [], [] for i in range(n, len(lows)-n): if lows[i] == min(lows[i-n:i+n]): support.append(round(lows[i], 2)) if highs[i] == max(highs[i-n:i+n]): resist.append(round(highs[i], 2)) return {"support": support, "resistance": resist}
[ METADATA ]
CategoryChart Analysis
ComplexityBeginner
LanguagePython 3.10+
TagsAnalysis, S&R
[ ASK CLAUDE ]

Ask AI about this skill before installing it.

[ RELATED SKILLS ]