chore: initial import
This commit is contained in:
211
spot-mvp.html
Normal file
211
spot-mvp.html
Normal 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.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>
|
||||
Reference in New Issue
Block a user