ALPHA V1.0 — LIVE ON BINANCE

Discipline is the
only edge that compounds.

Sonarix is a quantitative signal engine — not a tipster. Every entry is derived from multi-indicator confluence, cross-timeframe validation, and intelligence aggregated from multiple sources and interpreted by experienced market experts. Signals are backtested, scored, and delivered. Discretion is removed by design.

No coding required
Cancel anytime
Backtested strategy
● LIVE SIGNAL

BTC / USDT

4H · Multi-TF Confirmed
Updating...
Confluence Score
Loading...
Technical

Calculating indicators...

Market Pulse

Aggregating sources...

Estimated Win Rate
5
Tracked Symbols
52%+
Backtested Win Rate
4h
Signal Refresh Cycle
2000+
Historical Candles Tested
Member Feature

Select Your Market

VIP members can filter the analysis view by symbol. Each asset is tracked independently across its own technical, expert, and timeframe layers.

Data shown is illustrative. Live analysis available to VIP subscribers via Telegram channel.

The Engine

What Runs Every Cycle

Markets reward preparation, not reaction. Sonarix executes a closed-loop four-stage pipeline every hour — structured data in, actionable edge out. No discretion, no hesitation.

Raw Market Structure

250 OHLCV candles are pulled from Binance per symbol, per cycle. RSI, EMA200, MACD histogram delta, Bollinger Band positioning, and volume relative to its 20-period average are computed in a single vectorized pass. No interpolation, no smoothing — price action read as it is, not as you want it to be.

Expert Intelligence Aggregation

Market intelligence is aggregated from multiple authoritative sources — spanning social communities, leading crypto media outlets, and on-chain data feeds — then interpreted by seasoned analysts with verified track records. The result is a directional view rooted in how practitioners who are actually in the market are positioning, not automated headline parsing.

Weighted Confluence

Technical score carries 60% weight; sentiment the remaining 40%. The composite must clear ±40 before a signal is issued — a threshold derived from backtesting, not convention. Identical signals within a 4-hour window are suppressed entirely. The engine does not repeat itself; if the edge has already been communicated, it stays silent.

Tiered Signal Release

VIP subscribers receive the complete analytical output — composite score, module breakdown, expert market thesis derived from multi-source aggregation, and contextual win-rate data — 1 to 4 hours before the broader market moves. Free-tier members receive a condensed alert on a 24-hour delay. PRO members have access to the full coin universe with custom watchlists. Information asymmetry is the product. The edge belongs to those positioned before the crowd.

The Architecture

No Black Boxes. No Guesswork.

Every analytical layer is deliberate. Each module addresses a specific failure mode that discretionary trading introduces. Here is what is running under the hood.

Structure Layer

Multi-Timeframe Confirmation

A directional call on the 4H chart is only valid if the 1H structure supports it. When the two timeframes conflict, the system issues HOLD — not a directional bias. Opposing readings are penalised in the composite score, not discarded. Most false breakouts are caught here.

Volatility Layer

Bollinger Bands & Volume

Band positioning identifies statistically extreme price extensions — conditions where mean-reversion probability is elevated. Volume above 1.5× its 20-period average confirms institutional participation and amplifies MACD-based scores by 20%. High volume at band extremes is one of the cleanest setups in liquid markets.

Macro Layer

Expert Market Intelligence

Price does not move in isolation. Market signals are aggregated from multiple sources — social communities, professional crypto media, and on-chain sentiment feeds — then synthesised by experienced analysts into a directional score. When this score diverges sharply from technicals, it historically precedes reversals. Catching that divergence early is what this layer is built to do.

Validation Layer

Historical Backtest Engine

Strategy credibility is non-negotiable. Every signal rule is tested against 2000 historical candles before deployment. Reported metrics — Win Rate, Profit Factor, Sharpe Ratio, Maximum Drawdown, Expectancy — are computed on out-of-sample data. If the backtest does not justify the risk, the signal rule is not used.

Verified Results

Strategy Performance

Every signal strategy is stress-tested against 2000 candles (~333 days) of real market data before it ever reaches your Telegram. No cherry-picked trades. No lookahead bias.

  • Fixed-duration hold: 12 candles (48h on the 4H chart)
  • Metrics: Win Rate, Profit Factor, Sharpe, Max Drawdown
  • Refreshed daily with new market data
Backtest Results — 4H · 2000 Candles 48h Hold
BTC/USDT
59.8% WR
Trades
245
PF
1.17
Total PnL
+33.8%
Max DD
50.2%
Ξ
ETH/USDT
Pending refresh
Trades
PF
Total PnL
Max DD
SOL/USDT
Pending refresh
Trades
PF
Total PnL
Max DD
Past performance does not guarantee future results. Backtest excludes trading fees.
Pricing

Simple, Transparent Plans

Start free, upgrade when you're ready. No hidden fees, cancel anytime.

Free
$0
Forever free
  • BTC/USDT & ETH/USDT signals
  • Signals delayed 24 hours
  • No expert market thesis
  • No altcoin signals
Join Free Channel
PRO
$199
per month · USDT
  • Everything in VIP
  • Full coin universe — select any tracked asset
  • Custom watchlist & alert configuration
  • Priority signal delivery + backtest data
  • Dedicated 1-on-1 support
Get PRO Access

All payments processed via USDT (TRC20/BEP20). Subscriptions renew monthly.

Frequently Asked Questions

Can't find your answer? Reach us on Telegram.

How accurate are the signals?
Our BTC/USDT backtest shows a 59.8% BUY win rate over ~333 days of 4H data. This is measured on real historical data with no lookahead bias. No signal system is 100% accurate — always manage risk with position sizing.
Do I need a Binance account or any APIs?
No. Sonarix handles all data fetching and analysis on our end. You simply join the Telegram channel and receive formatted signals. No setup required.
How often are signals generated?
The engine runs every hour. Signals are only sent when the confluence score crosses ±40 and the same signal hasn't been sent in the past 4 hours (duplicate suppression). Expect 1–5 signals per day depending on market conditions.
What is the difference between Free and VIP?
Free members receive a simplified alert 24 hours after VIP members — by which point the move has already played out. VIP ($89/mo) delivers signals 1–4 hours ahead of the crowd across 20 top coins, with the full score breakdown, expert market thesis, and win rate estimate. PRO ($199/mo) unlocks the complete coin universe with custom watchlist selection.
How do I pay? Can I cancel?
Payments are accepted in USDT via TRC20 or BEP20. Subscriptions are monthly and can be cancelled at any time — access continues until the end of your paid period.

Your next entry is
already in the pipeline.

The engine runs every hour regardless of who is watching. Signals are generated, scored, and queued. The only variable is whether you are in position when they arrive.

function scoreLabel(s) { const a = Math.abs(s); if (a >= 70) return 'Signal strength: Very Strong'; if (a >= 50) return 'Signal strength: Strong'; if (a >= 30) return 'Signal strength: Moderate'; return 'Signal strength: Weak'; } function actionLabel(action) { if (!action) return '—'; const map = { 'BUY': 'STRONG BUY', 'SELL': 'STRONG SELL', 'HOLD': 'HOLD' }; return map[action.toUpperCase()] || action; } function actionColor(action) { if (!action) return ''; const a = action.toUpperCase(); if (a === 'BUY') return 'color:#00E5FF'; if (a === 'SELL') return 'color:#f85149'; return 'color:#8b949e'; } function fmt(v) { return v > 0 ? '+' + v : String(v); } function timeAgo(iso) { if (!iso) return ''; const diff = Math.floor((Date.now() - new Date(iso)) / 60000); if (diff < 1) return 'Just now'; if (diff < 60) return diff + 'm ago'; return Math.floor(diff / 60) + 'h ago'; } async function fetchAndUpdate() { try { const res = await fetch('/api/latest', { cache: 'no-store' }); if (!res.ok) return; const json = await res.json(); const data = json.data; if (!data || !data.length) return; // Pick preferred symbol, else first BUY/SELL, else first let sig = data.find(d => d.symbol === PREFERRED) || data.find(d => d.final_action !== 'HOLD') || data[0]; const score = sig.final_score ?? sig.tech_score ?? 0; const techS = sig.tech_score ?? 0; const sentS = sig.sentiment_score ?? 0; const action = sig.final_action || sig.action || 'HOLD'; const wr = sig.win_rate != null ? (sig.win_rate * 100).toFixed(0) + '%' : '—'; const barPct = Math.min(Math.abs(score), 100); const sym = (sig.symbol || 'BTC/USDT').replace('USDT', '/USDT'); const tf = sig.timeframe || '4H'; document.getElementById('lc-symbol').textContent = sym; document.getElementById('lc-meta').textContent = tf + ' · Multi-TF Confirmed'; document.getElementById('lc-price').textContent = sig.close_price ? '$' + Number(sig.close_price).toLocaleString('en-US', {minimumFractionDigits:2, maximumFractionDigits:2}) : '—'; document.getElementById('lc-time').textContent = timeAgo(sig.created_at); document.getElementById('lc-score').textContent = fmt(Math.round(score)); document.getElementById('lc-bar').style.width = barPct + '%'; document.getElementById('lc-strength').textContent = scoreLabel(score); const actionEl = document.getElementById('lc-action'); actionEl.textContent = actionLabel(action); actionEl.style = actionColor(action); document.getElementById('lc-tech').textContent = fmt(Math.round(techS)); document.getElementById('lc-tech-desc').textContent = sig.tech_summary || 'Multi-indicator confluence analysis'; document.getElementById('lc-sent').textContent = fmt(Math.round(sentS)); document.getElementById('lc-sent-desc').textContent = sig.sentiment_summary || 'Market pulse aggregation'; document.getElementById('lc-winrate').textContent = wr; } catch (e) { console.warn('Live signal fetch failed:', e); } } fetchAndUpdate(); setInterval(fetchAndUpdate, 60000); // refresh every 60s })();