// 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).
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.
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).
Dispatcher claim: ClaimNextPending → DISPATCHING. Aynı satırı iki goroutine alamaz (atomic).
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.
IP restriction ekle: AWS Tokyo instance'ının elastic IP'sini whitelist'le. Restart sonrası IP değişebilir, EIP attach M14'te.
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>.
Bot restart. Boot-halted default nedeniyle dispatcher pasif başlar; UI'dan Resume tuşuna basana kadar trade yok.
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.