PHANTOM TDI
Trading & Data Intelligence
Automation · Data · Signals · Wealth · Technology

Phantom TDI — Trading & Data Intelligence — is a private market-intelligence and automation suite: multi-timeframe structure tracking (HH/HL/LH/LL), OI & whale-flow signals, paper & live execution journals, and a real-time bot performance dashboard.

⚠️ Risk disclaimer — Crypto trading involves substantial risk of loss. Signals and bot activity are informational only, not financial advice. The bot's notional is not yours: only your own capital and leverage decisions apply to you. Never trade more than you can afford to lose. By continuing you accept full responsibility for your decisions.

Dashboard
AUTOMATION — DATA — SIGNALS — WEALTH — TECHNOLOGY — TECHNOLOGY
● LIVE
📈
Portfolio Growth
this year
💵
Crypto Invested
$0
excl. USDC
🏆
Asset Profit (APY)
$0
USDC interest/yr
🔢
Crypto Tokens
0
excl. USDC
Portfolio Growth
$0
Total invested
Live Portfolio Value
USDC at Work
$0.00
deposited capital
Daily Interest
$0.00
APY 0%
Asset Allocation — DCA tokens
📡 TRADING — bot + manual overview
— bias — system —
🗡️ RECENT CLOSED TRADES
⚔️ OPEN POSITIONS
Recent DCA — Avg Prices
WEIGHTED AVG PRICE
💡 Add USDC as a token to automatically sync your deposits with the APY calculator
USDC — Compound APY Yield
12-MONTH PROJECTION
Total invested (crypto) $0.00
Automatic DCA Allocation Rule
Asset allocation (%)
Total: 0%
Calculated buy plan
☢ BLACK SWAN — Emergency Reallocation

Deploy your USDC into BTC during a crash. Set target price and % to redeploy.

History des plans Black Swan
No plan generated yet
Equity Curve — Real Portfolio
Snapshot History
Portfolio Value Live
Total DCA Cost
Weighted avg price
Last Updated
Loading prices...
💡 Enter the staking/yield APY for each token. Projection uses Binance live price × accumulated tokens.
Projection sur 3 mois
Mon
Tue
Wed
Thu
Fri
Sat
Sun
📈 DCA vs Market Price
Token price (line) vs your DCA buys (dots). Did you buy the dips or the tops?
— Price (Binance 365d) ● DCA buys — Cumulative tokens (right axis)
📊
FULL MONTHLY REPORT
Equity + DCA + Trades + Yield
📈
TRADING REPORT
P&L + WR + RR + Setup analysis
🤖
BOT TRADING REPORT
⚡ LIVE ONLY
Real-money trades only · per-striker breakdown · fees
📓 YOUR PERSONAL TRADING JOURNAL
Log here:
  • Your own bot trades — any third-party bot you use (tag BOT in the modal)
  • Your manual trades — discretionary entries (tag MANUEL)
  • Phantom bot trades copied with different settings — your notional/leverage, not ours
⚠ Results will differ from Phantom bot stats if you use a different notional, leverage, or selectively copy trades — that's your responsibility.
For Phantom's own bot stats (its own notional + leverage), go to Phantom Bot Performance.
BOT Performance
AUTO
Recent Trades
Manual Performance
MANUEL
Recent Trades
Cumulative P&L Curve
● BOT ● MANUEL
📊 Notional Volume
trades with leverage only
📰 Weekly AI Report
Claude weekly recap · macro context + bot perf + outlook · regenerated Sunday 04:00 BKK
PHANTOM BOT PERFORMANCE
Phantom's own bot stats — shared across all users (copy it or not, the bot's perf is the bot's perf)
🤖 Bot stats · Mode ALL
HEADLINE PERFORMANCE
ACTIVITY
ACHIEVEMENTS
🤖 Source Comparison — bot vs bot
Per-source breakdown · all values are leveraged return % (move × leverage) · capital amounts hidden · click a header to sort
💎 Best & Worst Trades
Top 5 gainers / Top 5 losers across all sources · pick window 7d / 30d / all-time
📈 Equity Gain ⚡ LIVE ONLY
Cumulative leveraged return % (move × leverage, summed across closed live trades). Capital amounts hidden — focus on consistency.
⏰ Performance by hour & day
Aggregate of all closed trades · which hours/days the bot actually performs · cell color = total PnL in that bucket
HOUR OF DAY (UTC)
DAY OF WEEK
📅 P&L Heatmap — last 13 weeks
Each cell = 1 day · color intensity = realised PnL · click a day to see its trades
Less More
DAILY PNL TRACKER
DAILY PNL CALENDAR
Mon
Tue
Wed
Thu
Fri
Sat
Sun
NOT FINANCIAL ADVICE — Bot results are simulated paper trading only
INTELLIGENCE & SIGNALS
Market Momentum · ICT Setups · Structure · LTF Break · AI Signals
LIVE
📊 Order Flow & Market Structure
Per-asset multi-factor dashboard · whale momentum 3D · buy/sell volume % · RSI 14 · volume SMA 20 · 7D change · CME levels
SELECT PAIR
Image
2MB max — JPG/PNG/WebP
Active since · Mode ALL
🛡️ Public Display Name
What others see in Telegram alerts, shared trade cards & leaderboard — never your login.
2-24 chars · letters, digits, _ - . space  ·  leave empty to default to User #<your id>.
📲 Telegram Connection — @PhantomTDIBot
Connect your Telegram once. Your custom alerts (and opt-in market alerts) arrive directly on your phone.
checking…
Loading connection status…
🏆 Trading Rewards
Trade on MEXC via your Phantom referral link and reduce your monthly subscription. The more you trade, the less you pay.
Loading…
⭐ My Watchlist & Alerts
Follow any USDT-margined pair (Binance) · live price + Smart Money signal · custom rule-based Telegram alerts every 5 min
🔔 Custom alert rules
📁 My Trade Cards
All your generated trade cards, grouped by ISO week · click any card to re-open the preview / share modal
Your personal trader stats — only your manual trades count here. Bot performance is shown on the Phantom Bot Performance page.
PERFORMANCE
ACTIVITY
ACHIEVEMENTS
Personal traders ranked by their manual trades. Bot stats live on Phantom Bot Performance.
SORT BY
Rank Trader Equity WR R:R Trades Streak
💎 Plans & Benefits
Pick the tier that fits how you trade. Everything is open by default — locks unlock more depth.
🏆 Trading Rewards — volume-based discounts
Trade on MEXC via your Phantom referral link and reduce your monthly subscription. The more you trade, the less you pay. View your rewards →
❓ FAQ

Can I switch plans? Yes, at any billing cycle. Trading Rewards discount applies to your new plan automatically.

Is VVIP open to anyone? No — invitation only. Reach out via Telegram if you trade institutional volume.

What's the difference between Haiku and Sonnet AI? Haiku gives you a fast 3-section read. Sonnet gives you a 5-section institutional-grade analysis with macro alignment, Smart Money correlation and a forward probability call.

Do I get refunded if I downgrade? Pro-rated credit applied to next cycle, never lost.

📋 Trade Manager
Multi-entry (DCA), partial closes, audited level adjustments. Completed candles only — current price shown as a bright dot.
STATUS:
⏱ Post-Close Tracker — You vs the Bot
Every manual full close → bot's ladder (TP1/TP2/Moon/SL + trail) runs in the shadow for 4h. Verdict = TOO EARLY / SAVED / NEUTRAL based on the simulated exit.
⚡ ACTIVE (shadow trade still running)
📜 RECENT VERDICTS (30d)
🤖 Phantom Bot Trades
Phantom bot's positions — read-only. Chart with HH/HL pivots + current price dot. Refreshes every 5 min.
STATUS:
⚙️ System Health
Cron tasks freshness monitoring. Auto-refresh every 30s.
TOTAL TASKS
✅ HEALTHY
⚠️ ALERTS
🛡️ ADMIN CONSOLE
Owner-only control surface — kill switch, users, share tokens, system snapshot. Moderators get read-only access.
⏰ Trading Hours Report — UTC × BKK
WR + net PnL per hour (7d weekly · 30d monthly). Cron Mon 06:00 BKK + 1st of month. Live-hours whitelist (opt-in) restricts MEXC execution to your golden hours.
🚫 Bad Pairs Report — monthly audit
Pairs hard to read for the bots (low WR + net loss over 30d). Cron 1st of month 06:00 BKK. Blocklist is enforced in paper_fire + structure_correlator (no strikes emitted on listed pairs).
🏆 MEXC Affiliate — Qualifier & Invites
Users referred via mexc-PHANTOM ranked by trading volume + commission + recency. Generate PHTM-XXXX-YYYY codes (7d, single-use) for George to DM to qualified candidates.
📊 System Snapshot
DB counts · cron health · recent alerts · share tokens activity
🤖 Claude Cost Monitor
Unified usage across all callers (Node + Python) · Haiku/Sonnet/Opus · per app / per user / per request type
Last 30 raw calls
👥 User Management
All registered users · roles · Telegram status · trade counts
💰 Pricing & Subscription Tiers
Single source of truth · drives the profile widget, landing page price labels, and AI tier mapping · George fills the numbers.
🏆 Trading Rewards Tiers — volume-based discounts
More you trade via Phantom referral, less you pay. Volume thresholds + discount % per tier (VIP+ & VVIP separately). Whale tier can be 100% (free VIP+). George defines the thresholds.
⚠️ V1 = manual volume entry per user (via User Management). V2 once MEXC Affiliate API access is confirmed = auto-pull every billing cycle.
🎚️ Level Management — feature access matrix
Tick = enabled, untick = locked (shows 🔒 on the public Plans & Benefits page). Default after seed: ALL boxes ticked. Edit the value text to set the limit ("10 max", "1/h", "Sonnet"…). Drives the public Plans page in real time.
🛑 KILL SWITCH RUNNING
Live mode requires 2-step unlock per source (🔓 button + mode dropdown) — UI is the only path now.
⚔️ The Sacred Council — Bot Nomenclature
Each codename masks a strategic engine. Internal source identifiers are unchanged for backward compatibility — only the public-facing labels switch.
🗡️ Andúril
whale_trigger
Flame of the West. The reforged sovereign blade. Charges BTC and majors against directional whale flow detected by Kalhan VP + absorption ratio. Fires rare but heavy on institutional pressure setups.
🏹 Aeglos
oi_accumulation
Icicle, the spear of Gil-galad. Long reach, decisive piercer. Accumulates Open Interest while price stays flat, then fires on the first 15m HH/HL break. Invalidates instantly if OI reverses or 1H/4H flips.
📜 Narsil
structure_correlator
The Ancestral Blade. Correlates Kalhan VP with multi-timeframe structure (15m + 1H). The 1h-dominant rule decides direction. Currently the Council's sharpest edge — best win rate and reward-to-risk in the lineup.
🔮 Glamdring
accumulation_htf
Foe-Hammer of Gandalf. Patient HTF energy. State machine IDLE → WATCHING → STRIKE on 4H setups with sustained OI accumulation and HTF structure not opposing. Asymmetric reward, slow cadence.
💠 Sting
ltf_break_smart
The Elvish Blade that glows blue when danger is near. Snipes very fresh 15m HH/HL breaks (under 33min) with confirmation from OI, ATR expansion and buy ratio. Smart exit on 4H flip or OI fade.
⚔️ Hadhafang
structure_divergence
Throng-cleaver. Hunts price-momentum divergences against MFI sweeps on 1H break candles. Limit-order entry at the broken pivot ± 0.15%, anti-doji body filter, OI/CVD bypass for XAU/XAG. Finalised 2026-05-16 — fresh tuning.
🪞 Palantír
claude_watcher_v2 · seer
The Seeing-Stone. No longer a striker — fire path disabled. Continuously scores all watched pairs through Claude Haiku and Kalhan, feeding the Council with conviction signals. Pure observer / oracle.
📂 Other (relegated — kept for data, not promoted)
🌀 Funding Squeeze Probe · funding_alert 🛡️ Forecast Bridge · forecast_phantom · paused for later
🎨 Token Settings
⚖️ Trading Defaults
CUSTOM SETUPS
CUSTOM SESSIONS
👤 Profile
💡 Looking for your public display name? It's on the My Profile page (next to your avatar).
⚙️ App
`; const win = window.open('', '_blank'); win.document.write(html); win.document.close(); toast('Bot report opened — use the toolbar to Save as PDF or Close ✓'); } // ── CSV EXPORT ──────────────────────────────────────────────────────────── async function exportCSV(type){ if (type === 'bot') return _exportBotReport('csv'); const m = +document.getElementById('report-month').value; const y = +document.getElementById('report-year').value; const period = type === 'trading' ? document.getElementById('trade-report-period').value : 'month'; const d = getReportData(type, period, m, y); let csv = ''; const NL = '\n'; const filename_base = type === 'full' ? 'phantom_report_'+d.monthName+'_'+d.y : 'phantom_trading_'+d.monthName+'_'+d.y; if(type === 'full' || type === 'trading'){ csv += 'TRADES' + NL; csv += 'Date,Type,Symbol,Direction,Setup,Timeframe,Session,Result,PnL,RR,Risk,Note' + NL; d.trades.forEach(t => { csv += [ t.traded_at ? t.traded_at.split('T')[0] : '', t.type, t.symbol, t.direction, t.setup||'', t.timeframe||'', t.session||'', t.result, (+t.pnl).toFixed(2), t.rr ? (+t.rr).toFixed(2) : '', t.risk_usd ? (+t.risk_usd).toFixed(2) : '', (t.note||'').replace(/,/g,' ') ].join(',') + NL; }); } if(type === 'full'){ csv += NL + 'DCA VAULT' + NL; csv += 'Token,Symbol,Qty,Avg Price,Total Invested' + NL; d.cryptoToks.forEach(tok => { const { qty, cost, avg } = getStats(tok); csv += [tok.name, tok.symbol, qty.toFixed(6), avg.toFixed(4), cost.toFixed(2)].join(',') + NL; }); csv += NL + 'EQUITY SNAPSHOTS' + NL; csv += 'Date,Crypto Invested,USDC Balance,Trade PnL,Notes' + NL; d.snaps.forEach(s => { csv += [ s.snapshot_date, (s.crypto_cost||0).toFixed(2), (s.usdc_balance||0).toFixed(2), (s.trade_pnl||0).toFixed(2), (s.notes||'').replace(/,/g,' ') ].join(',') + NL; }); } // Download const blob = new Blob([''+csv], { type: 'text/csv;charset=utf-8;' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = filename_base + '.csv'; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); toast('CSV exported ✓'); } // ── PDF EXPORT ──────────────────────────────────────────────────────────── async function exportPDF(type){ if (type === 'bot') return _exportBotReport('pdf'); const m = +document.getElementById('report-month').value; const y = +document.getElementById('report-year').value; const period = type === 'trading' ? document.getElementById('trade-report-period').value : 'month'; const d = getReportData(type, period, m, y); const allMetrics = calcMetrics(d.trades); const botMetrics = calcMetrics(d.botTrades); const manMetrics = calcMetrics(d.manTrades); const cryptoTotal = d.cryptoToks.reduce((s,t)=>s+getStats(t).cost,0); const usdcTotal = d.usdcTok ? getStats(d.usdcTok).cost : 0; const equityStart = d.snaps.length > 0 ? (d.snaps[0].crypto_cost||0)+(d.snaps[0].usdc_balance||0) : 0; const equityEnd = d.snaps.length > 0 ? (d.snaps[d.snaps.length-1].crypto_cost||0)+(d.snaps[d.snaps.length-1].usdc_balance||0) : 0; const equityGrowth= equityStart>0 ? ((equityEnd-equityStart)/equityStart*100) : 0; const setupRows = Object.entries(d.setupMap).map(([setup, s]) => `${setup}${s.wins+s.losses+s.be}${s.wins>0?Math.round(s.wins/(s.wins+s.losses+s.be)*100):0}% ${s.pnl>=0?'+':''}$${fmtD(s.pnl)}` ).join(''); const sessionRows = Object.entries(d.sessionMap).map(([sess, s]) => `${sess}${s.count}${s.count>0?Math.round(s.wins/s.count*100):0}% ${s.pnl>=0?'+':''}$${fmtD(s.pnl)}` ).join(''); const tradesRows = d.trades.slice(-30).map(t => ` ${t.traded_at?t.traded_at.split('T')[0]:''} ${t.type} ${t.symbol} ${t.direction} ${t.setup||'—'} ${t.session||'—'} ${t.timeframe||'—'} ${t.result} ${+t.pnl>=0?'+':''}$${fmtD(+t.pnl)} ${t.rr?(+t.rr).toFixed(2)+'R':'—'} ` ).join(''); const dcaRows = type === 'full' ? d.cryptoToks.map(tok => { const { qty, cost, avg } = getStats(tok); const p = getTokenPrice(tok); const liveVal = p && qty > 0 ? p.price * qty : null; const pnlUsd = liveVal !== null ? liveVal - cost : null; return ` ${tok.symbol} ${tok.name} ${fmtQ(qty)} $${fmtP(avg)} $${fmtD(cost)} ${liveVal!==null?'$'+fmtD(liveVal):'—'} ${pnlUsd!==null?(pnlUsd>=0?'+':'')+'$'+fmtD(Math.abs(pnlUsd)):'—'} `; }).join('') : ''; const reportTitle = type === 'full' ? `Full Monthly Report — ${d.monthName} ${d.y}` : `Trading Report — ${d.monthName} ${d.y}`; const html = `