// Onboarding — explains the bot's strategy + maps every UI widget to // what it actually means. Lives at /ui/#onboarding (keyboard "H"). // // Bilingual on purpose: section headers + body in Turkish (operator's // preferred language), code/term anchors in English so they match the // log lines and config keys 1:1. Don't translate the term names. const { Card, Pill } = window.UI; function PageOnboarding({ app, setApp }) { const goControl = () => setApp(s => ({ ...s, _navTo: 'control', _navAt: Date.now() })); const goDashboard = () => setApp(s => ({ ...s, _navTo: 'dashboard', _navAt: Date.now() })); return (

project-bad — nasıl çalışıyor?

Bu bot bir bridge-coin ratio trading botu. Hedefi kâr değil, sahip olduğu coin'in adedini büyütmek. Aşağıda strategy mantığı + UI'daki her metriğin ne anlama geldiği var. Terimleri ezberlemen gerekmez — sayfaları gezerken hover ile tooltip çıkacak (M11.x'te eklenecek).

{/* Quick status banner */} {app.halted ? (
Bot şu anda HALTED. · {app.halted}
) : (
Bot RUNNING. Strategy scout ediyor, dispatcher hazır, equity loop snapshot alıyor.
)} {/* SECTION: Strategy */}

1 · Strategy nasıl karar veriyor?

Bot her an tek bir alt coin tutar — buna current_coin denir. USDT (bridge) sadece geçici bir durak; bot uzun süre USDT'de oturmaz.

Her market tick'inde bot şu soruyu sorar:

"Elimdeki BTC'yi USDT üzerinden ETH'ye çevirsem, geçmiş ortalamaya göre normalde alacağımdan daha fazla ETH alır mıyım? Eğer evetse, fee'leri ödedikten sonra hâlâ kâr ediyor muyum?"

Cevap pozitifse jump tetiklenir: SELL BTC→USDT, ardından BUY USDT→ETH — iki ayağı arka arkaya market order ile çalıştırır. Sonuç: ETH adedin baseline'a göre biraz daha fazla. Bu küçük avantajlar zamanla birikir.

{/* SECTION: Key terms */}

2 · Anahtar terimler

{/* SECTION: Jump pipeline */}

3 · Bir jump nasıl yürütülür?

  1. Strategy karar: scout pozitif effective score buldu → JumpPayload üretir.
  2. Outbox: EnqueueOutbox ile trade_outbox tablosuna PENDING olarak yazılır. Bot crash ederse bu satır kalır, restart sonra dispatcher devam eder (ADR-006).
  3. Dispatcher claim: ClaimNextPending → DISPATCHING. Aynı satırı iki goroutine alamaz (atomic).
  4. Risk gate: gate.Allow(intent) — kill switch, bridge depeg, slippage, error budget, flash crash kontrolleri. Reddedilirse MarkDead, asla retry edilmez.
  5. SELL leg: {"{from}/USDT"} market sell, tüm bakiye.
  6. BUY leg: {"{to}/USDT"} market buy, tüm USDT (-0.5% fee buffer).
  7. Trade INSERT: trades tablosuna FILLED satırı + dispatcher'ın OnJumpConfirmed callback'i SSE 'trade' topic'ine push.
  8. Strategy.CompleteJump: current_coin güncellenir, lastJumpAt set, baselines re-seed.
  9. MarkConfirmed: outbox satırı CONFIRMED, akış tamamlandı.

Tüm bu adımlar 1-3 saniye içinde gerçekleşir. Hata olursa retry/backoff veya DEAD letter.

{/* SECTION: UI metric map */}

4 · UI metrik haritası

widget ne anlama gelir veri kaynağı
{/* SECTION: Cold start */}

5 · Live mode'a geçmek için cold start

Bot şu an testnet'te çalışıyor (43.207.61.5). Live'a geçmeden önce şu adımlar mutlaka:

  1. Binance KYC level 2 tamamla. Spot wallet'a $50–100 USDT yatır. Risk seviyeni başlangıçta düşük tut.
  2. USDT'nin tamamı ile bir alt coin satın al — örn. BNB (fee indirimi için) veya BTC. Strategy bridge'i tutarken pasif (M11.x follow-up'a kadar), o yüzden bir alt coin'le başlamak şart.
  3. Live API key oluştur: Binance → API Management → Create. ✓ Enable Reading · ✓ Enable Spot Trading · ✗ Enable Withdrawals (asla açma) Bot bootstrap'ta canWithdraw=false doğrulamasını yapıyor — açıksa boot etmiyor.
  4. IP restriction ekle: AWS Tokyo instance'ının elastic IP'sini whitelist'le. Restart sonrası IP değişebilir, EIP attach M14'te.
  5. Tokyo instance'a SSH ile bağlan, ~/bot.env'i live key/secret ile güncelle, ~/bot.yaml'da mode: live + initial_coin: <ne aldıysan>.
  6. Bot restart. Boot-halted default nedeniyle dispatcher pasif başlar; UI'dan Resume tuşuna basana kadar trade yok.
  7. Dashboard'da BBO akışı + balance + equity curve'i izle. Gözüne anormal bir şey gelmiyorsa Resume. İlk hafta her gün halt drill yap (HALT bas → durduğunu doğrula → Resume).

Daha detaylı runbook: docs/runbooks/aws-deploy.md + docs/runbooks/testnet-smoke.md.

{/* SECTION: Safety */}

6 · Bot kendini nasıl korur?

{/* SECTION: Roadmap */}

7 · Bilinen eksikler / yol haritası

  • Bridge-entry decision: USDT tutarken otomatik scout. Şu an manuel coin satın almak gerekiyor.
  • REST user-data poller (testnet): testnet listenKey 410 dönüyor; live'da gerek yok.
  • Prometheus metric instrumentation: adapter-level (ws_reconnect_total, exchange_error_total).
  • sony/gobreaker circuit breaker: REST call'larını sarmak için.
  • Replay recorder: adapter-level event'ler için (strategy + dispatcher zaten yazıyor).
  • M14 deploy: EIP, TLS (Caddy), EBS snapshot backup, IaC (Terraform).
  • M16 research harness: parametre sweep — hangi scout_margin / baseline_alpha kombinasyonu en kârlı.
  • M10 backtest runner: tarihi data üzerinde strategy çalıştırma.
); } function Term({ children }) { return {children}; } function Def({ term, desc }) { return (
{term}
{desc}
); } function Row({ w, desc, src }) { return ( {w} {desc} {src} ); } function Safety({ title, desc }) { return (
{title}
{desc}
); } window.PageOnboarding = PageOnboarding;