235 lines
7.2 KiB
HTML
235 lines
7.2 KiB
HTML
<!doctype html>
|
||
<html lang="pl">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>Jaki dApp najlepszy pod bota (Solana)?</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 {
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
||
"Courier New", monospace;
|
||
font-size: 0.95em;
|
||
padding: 0.05em 0.35em;
|
||
border-radius: 8px;
|
||
border: 1px solid var(--border);
|
||
background: rgba(0, 0, 0, 0.18);
|
||
}
|
||
|
||
.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;
|
||
}
|
||
|
||
.answer {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
}
|
||
|
||
.answer strong {
|
||
color: var(--text);
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="container">
|
||
<header>
|
||
<h1>Jaki dApp jest najlepszy pod bota (Solana)?</h1>
|
||
<p class="subtitle">
|
||
Jeśli bot ma analizować dziesiątki rynków i generować sygnały wejścia na top 10, to
|
||
wybór “dAppa” zależy od tego, czy chcesz <strong>PERPS</strong> czy <strong>SPOT</strong>.
|
||
</p>
|
||
</header>
|
||
|
||
<main>
|
||
<section>
|
||
<h2>Najkrótsza odpowiedź <span class="pill">top choice</span></h2>
|
||
<p class="answer">
|
||
<strong>PERPS:</strong> Drift • <strong>SPOT (egzekucja swapów):</strong>
|
||
Jupiter (a sygnały liczysz w swoim bocie)
|
||
</p>
|
||
</section>
|
||
|
||
<section>
|
||
<h2>Dlaczego “dApp do swapów” to za mało?</h2>
|
||
<ul>
|
||
<li>
|
||
“Sygnał” to nie przycisk w UI, tylko proces: dane → cechy → ranking → filtr kosztów →
|
||
decyzja.
|
||
</li>
|
||
<li>
|
||
Potrzebujesz stabilnego <strong>SDK/API</strong> do automatyzacji, a nie tylko
|
||
interfejsu dla człowieka.
|
||
</li>
|
||
<li>
|
||
Przy “top 10 z 50 rynków” kluczowe są koszty (spread/slippage/fees) i kontrola ryzyka
|
||
(limity ekspozycji), których UI zwykle nie gwarantuje.
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<section>
|
||
<h2>PERPS → Drift (najbardziej praktyczne pod bota)</h2>
|
||
<ul>
|
||
<li>Jeden spójny system perps: margin/health, funding, OI, mark vs oracle.</li>
|
||
<li>
|
||
Naturalny model bezpieczeństwa: authority (cold/Ledger) + delegate/hot key do tradingu.
|
||
</li>
|
||
<li>
|
||
Łatwiej zbudować ranking “okazji” między wieloma rynkami, bo metryki są porównywalne
|
||
(np. funding, basis, zmiana OI, momentum).
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<section>
|
||
<h2>SPOT → Jupiter (egzekucja), sygnał po Twojej stronie</h2>
|
||
<ul>
|
||
<li>
|
||
Jupiter jest świetny do wykonania swapów na wielu parach (routing + wycena slippage).
|
||
</li>
|
||
<li>
|
||
Ale Jupiter nie jest “silnikiem sygnałów” — sygnał i ranking robisz w swoim
|
||
<strong>collector/scorer</strong>.
|
||
</li>
|
||
<li>
|
||
Jeśli potrzebujesz limit orders na SPOT, zwykle dochodzi orderbook (Phoenix/OpenBook)
|
||
i robi się to bardziej złożone (cancel/replace, kolejka, częściowe fill).
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<section>
|
||
<h2>Jak wygląda sensowny podział systemu</h2>
|
||
<ol>
|
||
<li>
|
||
<strong>Dane</strong>: oracle (np. Pyth) + metryki DEX/perps + płynność/spread/depth.
|
||
</li>
|
||
<li>
|
||
<strong>Ranking</strong>: score = siła sygnału − koszt (slippage/spread) − ryzyko
|
||
(płynność, limity, zmienność).
|
||
</li>
|
||
<li><strong>Selekcja</strong>: wybór top 10 (z filtrami minimalnej jakości).</li>
|
||
<li>
|
||
<strong>Egzekucja</strong>: Drift (PERPS) albo Jupiter (SPOT) + risk manager przed
|
||
transakcją.
|
||
</li>
|
||
</ol>
|
||
</section>
|
||
|
||
<section>
|
||
<h2>Co musisz doprecyzować (żeby “najlepszy dApp” był jednoznaczny)</h2>
|
||
<ul>
|
||
<li>Chcesz sygnały pod <strong>PERPS</strong> czy <strong>SPOT</strong> (czy oba)?</li>
|
||
<li>Bot ma tylko sygnalizować, czy automatycznie wchodzić?</li>
|
||
<li>Interwał skanowania (np. 10s/30s/60s) i horyzont (intraday vs swing).</li>
|
||
<li>Docelowy rozmiar pozycji (bo koszt i slippage zależą od size).</li>
|
||
</ul>
|
||
<p class="subtitle" style="margin-top: 10px">
|
||
Tip: jeśli celem jest perps + top 10 sygnałów, zwykle wygrywa Drift; jeśli celem jest
|
||
czysty spot-execution, wygrywa Jupiter (ale sygnał nadal jest “Twój”).
|
||
</p>
|
||
</section>
|
||
</main>
|
||
</div>
|
||
</body>
|
||
</html>
|