212 lines
6.7 KiB
HTML
212 lines
6.7 KiB
HTML
<!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.3–1% 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 trade’ach)</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>
|