chore: initial import

This commit is contained in:
u1
2026-01-06 12:33:47 +01:00
commit 69849cb9e9
12 changed files with 1972 additions and 0 deletions

211
spot-mvp.html Normal file
View File

@@ -0,0 +1,211 @@
<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Bot SPOT na Solanie: skan 10/50 par (MVP)</title>
<style>
:root {
color-scheme: light dark;
--bg: #0b1020;
--panel: rgba(255, 255, 255, 0.06);
--text: rgba(255, 255, 255, 0.92);
--muted: rgba(255, 255, 255, 0.68);
--accent: #7c3aed;
--border: rgba(255, 255, 255, 0.12);
--shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}
@media (prefers-color-scheme: light) {
:root {
--bg: #f6f7fb;
--panel: rgba(0, 0, 0, 0.04);
--text: rgba(0, 0, 0, 0.88);
--muted: rgba(0, 0, 0, 0.62);
--accent: #6d28d9;
--border: rgba(0, 0, 0, 0.10);
--shadow: 0 12px 40px rgba(15, 23, 42, 0.14);
}
}
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial,
"Apple Color Emoji", "Segoe UI Emoji";
line-height: 1.55;
background: radial-gradient(1200px 600px at 20% -10%, rgba(124, 58, 237, 0.28), transparent),
radial-gradient(900px 500px at 95% 10%, rgba(59, 130, 246, 0.18), transparent),
var(--bg);
color: var(--text);
}
.container {
max-width: 980px;
margin: 48px auto;
padding: 0 18px;
}
header {
padding: 22px 22px 18px;
border: 1px solid var(--border);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
border-radius: 16px;
box-shadow: var(--shadow);
}
h1 {
font-size: 26px;
margin: 0 0 6px;
letter-spacing: -0.01em;
}
.subtitle {
margin: 0;
color: var(--muted);
}
main {
margin-top: 18px;
display: grid;
gap: 14px;
}
section {
border: 1px solid var(--border);
background: var(--panel);
border-radius: 16px;
padding: 18px 18px 16px;
}
h2 {
margin: 0 0 10px;
font-size: 18px;
letter-spacing: -0.01em;
}
ul,
ol {
margin: 8px 0 0 18px;
padding: 0;
}
li {
margin: 6px 0;
}
code,
pre {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
"Courier New", monospace;
font-size: 0.95em;
}
code {
padding: 0.05em 0.35em;
border-radius: 8px;
border: 1px solid var(--border);
background: rgba(0, 0, 0, 0.18);
}
pre {
margin: 10px 0 0;
padding: 12px 12px;
border-radius: 12px;
border: 1px solid var(--border);
background: rgba(0, 0, 0, 0.18);
overflow: auto;
}
.pill {
display: inline-block;
padding: 0.12em 0.55em;
border-radius: 999px;
border: 1px solid var(--border);
background: rgba(124, 58, 237, 0.12);
color: var(--text);
font-weight: 650;
font-size: 12px;
vertical-align: middle;
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>Bot SPOT na Solanie (MVP)</h1>
<p class="subtitle">
Analiza dziesiątek par → ranking → wybór TOP 10 sygnałów wejścia. Start na SPOT zwykle
jest bezpieczniejszy i prostszy niż PERPS.
</p>
</header>
<main>
<section>
<h2>Dlaczego SPOT jest lepszy na start <span class="pill">praktycznie</span></h2>
<ul>
<li><strong>Brak likwidacji</strong> (największy “killer” na perpsach).</li>
<li>Prostsze koszty: <strong>swap fee + slippage + fee Solany</strong>.</li>
<li>Łatwiej zrobić stabilny ranking (płynność / volatility / volume) i testować strategię.</li>
</ul>
</section>
<section>
<h2>Jak to zrobić praktycznie na Solanie (stack)</h2>
<ul>
<li><strong>Jupiter</strong> jako egzekucja swapów (routing po DEX-ach, najlepsza cena).</li>
<li><strong>Helius</strong> jako RPC do wysyłki transakcji + monitoring (potwierdzenia, logi).</li>
<li>
Dane do sygnałów:
<ul>
<li>najprościej: OHLCV + volume z zewnętrznych market data (szybko),</li>
<li>albo: on-chain (trudniej, ale najbardziej “raw”).</li>
</ul>
</li>
</ul>
</section>
<section>
<h2>Zasady bezpieczeństwa na SPOT (żeby bot nie palił kapitału)</h2>
<ol>
<li><strong>Filtr płynności</strong>: nie wchodź w pary z małą płynnością (slippage zabije edge).</li>
<li><strong>Limit slippage</strong>: ustaw twardy max (np. 0.31% zależnie od tokenów).</li>
<li><strong>Cooldown po transakcji</strong>: unikniesz “mielenia” (overtrading).</li>
<li><strong>Blacklist</strong>: wyklucz tokeny z anomaliami (freeze, podatki transferowe, honeypoty itd.).</li>
<li><strong>Rozmiar pozycji ∝ płynność</strong>: im mniejsza płynność, tym mniejszy notional.</li>
</ol>
</section>
<section>
<h2>Prosty wzór rankingu “TOP 10” na SPOT (na start)</h2>
<pre><code>Score_i = μ_i - (fee_i + slip_i + net_i) - λ · risk_i</code></pre>
<ul>
<li><code>μ_i</code> = przewidywany zwrot z Twojego sygnału (np. momentum / mean reversion)</li>
<li><code>fee_i</code> = koszt swapów (wejście + wyjście)</li>
<li><code>slip_i</code> = oczekiwany slippage / price impact (wejście + wyjście)</li>
<li><code>net_i</code> = koszt sieci / priority (mały, ale rośnie przy częstych tradeach)</li>
<li><code>risk_i</code> = kara za ryzyko (np. ATR/volatility)</li>
<li><code>λ</code> = jak mocno karzesz ryzyko</li>
</ul>
</section>
<section>
<h2>Kiedy przechodzić na PERPS (Drift)</h2>
<p class="subtitle">
Dopiero gdy na SPOT masz stabilny pipeline danych, umiesz liczyć realny koszt wejścia/wyjścia i
masz sensowny EV/winrate — wtedy warto dodać shorty + dźwignię na perpsach.
</p>
<ul>
<li>stabilny pipeline danych</li>
<li>realne koszty wejścia/wyjścia (slippage + fees)</li>
<li>sensowny winrate/EV</li>
<li>chęć dodania shortów + dźwigni</li>
</ul>
</section>
</main>
</div>
</body>
</html>