# 👾 mójBot Spread BASIS w 4 godziny wypracowął zysk 46 USDT ![bot1](https://hackmd.io/_uploads/HkjY8AhWex.jpg) W obecnej chwili bot jest w stanie zrealizowania zysku netto na 46.61 USD w ciągu 4h w czasie hosssy, ale pierwotnie ma być stosowany w czacie bessy. Na razie strategia użyta w moim bocie pracujacym w reżymie Spread basis w sieci **testnet giełdy Bybit** działa z niewielkim, ale realnym zyskiem, co przy tej strategii wynik jest zadawalający mały wkład małe zyski - wejscia są realizowane minimum dla spot 10$ a dla futures 0.001 BTC. 📺 A tak bot na żywo pracowął -film na YouTube 👇 [![IMAGE_ALT](https://img.youtube.com/vi/anp1s0EMS34/1.jpg)](https://www.youtube.com/watch?v=anp1s0EMS34) > Spread basis (różnica między ceną futures a ceną spot) to kluczowy wskaźnik przy strategiach arbitrażowych. **Jak Obliczać Spread Basis?** * Spread basis wyraża się wzorem: * Basis = Cena Futures - Cena Spot * (lub w procentach: Basis % = (Futures/Spot - 1) × 100%) **Przykład z danych:** * Jeśli futures kosztuje 106,800 USDT, a spot 104,352.69 USDT: * Basis = 106,800 - 104,352.69 = 2,447.31 USDT * Basis % = (106,800 / 104,352.69 - 1) × 100 ≈ 2.35% Bot wymaga jednak optymalizacji, przede wszystkim po stronie funkcji futures i ograniczenia liczby wejść do sytuacji z wyraźnym premium w tym modelu. 📌 Stan początkowy - 20.05.25 15:20: * BTC: 0.00219796 ≈ 229.06 USD * USDT: 1,907.08 USD * Łączna wartość startowa: ≈ 2,136.14 USD 📌 Stan końcowy - 20.05.25 18:50: * BTC: 0.01023192 ≈ 1,107.35 USD * USDT: 1,075.40 USD * Łączna wartość końcowa: ≈ 2,182.75 USD # 📊 Zysk brutto: * Zysk końcowy: 2,182.75 - 2,136.14 = **+46.61 USD** wciągu 4h * Zwrot procentowy: ~2.18% # 📋 Szczegóły operacyjne: **▪️ Futures:** 110 operacji – większość ujemna, koncowy P&L: +0.95 USD * Niewielki zysk netto, świadczy o częstych stratach w krótkim terminie / poniewaz rynek był wznoszący czyli 🐂 * Możliwe, że timing shortów nie jest optymalny, albo zbyt ciasny SL lub zbyt niski basis wejścia - trzeba to jeszcze sprawdzić. **▪️ Spot:** 131 operacji, koszt: 1,039.54 USD * Uzyskano: 0.010027 BTC po kosztach * Średni koszt 103,63 USD za 0.001 BTC, czyli ~10,363 USD/BTC (realistyczna średnia minimum wejścia spot to 10$ a ja ustawiłem na 11$ w celach optymalizacji). * Fee: 0.000010 BTC = ~1.07 USD, co potwierdza typowe 0.1% fee dla spot (0.00001 na 0.01 BTC). ![upload_776b802501c38e7d83f4e7753f4cc1d6](https://hackmd.io/_uploads/HJcGy3o-xx.png) # 🧠 Ocena strategii ✅ Plusy: * Zysk netto: ~46.6 USD na łącznym kapitale 2,136 USD (~2.18%) — to niewielki, ale dodatni wynik. * Małe fee na spocie, nawet dobra kontrola kosztów. * Eksperyment zakończyłem z większą ilością **BTC** (z 0.0022 do 0.0102), co przy spadkach gdyby bot pracowal możena by ładną kupke uzbierać, czyli mozne to być stopniowa akumulację taniego BTC. **❌ Minusy / zagrożenia:** Futures przynoszą niskie albo i ujemne wyniki przy dużej liczbie operacji — warto jeszcze sprawdzić: * czy timing pozycji nie był zbyt losowy względem basis. * duża liczba operacji (241 łącznie) wysoka aktywność, a zysk stosunkowo niewielki. # **🔧 Co poprawić:** * Zwiększyć minimalny basis dla wejścia. * Zmniejszyć liczbę operacji, być możę zwiększy to stosunek zysku do liczby transakcji i ograniczy fee. * Warto zoptymalizować TP/SL futures, obecne zamknięcia mogą być zbyt pochopne - testnet geldy pracuje bardzo haotycznie - to tylko testy. * Trzeba wprowadzić miernik efektywności – np. zysk na transakcję, średnie fee, średni basis. **Opcjonalnie:** * Trzeba wprowadzić logi transakcyjne – każda operacja z datą, basis, P&L, typem wejścia/wyjścia. # ♨️ Dodatek z dnia następnego: Poprawiłem w/w zalecenia dodałem zapis logów oraz też jest już i podstawowy dashbord. ![Zrzut ekranu z 2025-05-21 22-43-09](https://hackmd.io/_uploads/BJrjk2nZle.png) Po przetestowaniu nowej wersji skryptu poprosiłem gptchata o analizę wyjściowych logów z dzisiejszego dnia czyli 21.05.2025 - hossa za chwilę BTC przebije 110K i oto co z 12 operacji wywnioskował gptchata: **📈 Zasady strategii widoczne w danych:** **Wejście:** * Kupno spotu (long) i sprzedaż kontraktu futures (short), gdy basis (premia futures) przekracza określony poziom (np. > 3%). * Ilość pozycji: 0.001 BTC (~10–11 USD), co odpowiada Pańskim założeniom. * Przykład: entry przy basis 3.71% (spot: 104,140.11, futures: 108,000.00). **Wyjście:** * Zamknięcie pozycji następuje, gdy basis spada – zwykle przez próg „exit threshold”. * W niektórych przypadkach różnice cenowe między spotem a futem zostały dobrze wykorzystane (np. zysk 1.17 USD przy spadku basis z 3.71% do 2.59%). # **📊 Wyniki strategii (na podstawie logów):** Liczba par transakcyjnych: 12 (entry/exit). Średni zysk na jedną parę: ok. 0.45 USD (zróżnicowany). **Najlepszy wynik:** * +1.17 USD (basis z 3.71% do 2.59%). **Najgorszy wynik:** * –0.23 USD (basis wzrósł z 3.02% do 3.25%). **🔍 Cechy działania algorytmu:** * Reaguje na niewielkie zmiany basis (czasem zaledwie 0.1–0.2 pp) - to później zmienię na wieksze. * Nie używa trailing TP ani SL — wyjścia są determinowane tylko przez spadek basis, zgodnie z warunkiem „exit threshold” - pomyślimy 🤔 * Ekspozycja jest mała i równomierna (0.001 BTC), co chroni kapitał przed większymi obsunięciami. | Metryka | Wartość | | ------------------------ | --------------------------- | | Liczba transakcji (exit) | 12 | | Transakcji zyskownych | 11 | | Transakcji stratnych | 1 | | Skuteczność (win rate) | **91.67%** | | Średni zysk całkowity | **+0.4804 USDT** | | Mediana zysku | **+0.5273 USDT** | | Łączny zysk | **+5.76 USDT** | | Maksymalny zysk | +1.1705 USDT | | Maksymalna strata | –0.2273 USDT | | Średni zysk ze spotu | **+0.0027 USDT** (≈ zerowy) | | Średni zysk z futures | **+0.4776 USDT** | # 💡 Gdzie jest zysk? Choć wiele pozycji futures wykazuje stratę, ogólny zysk pochodzi z pozycji spotowych, które są kupowane taniej i sprzedawane drożej, ORAZ z futures, które są sprzedane drożej i odkupione taniej, ale tylko w wybranych momentach. W kilku przypadkach pozycje futures dają duży dodatni wynik i one dominują w wyniku końcowym. **Przykład transakcji:** Entry: * Spot: 104,090.80 USDT * Futures: 107,951.00 USDT (basis: 3.71%) Exit: * Spot: 103,863.53 USDT (strata: –0.2273) * Futures: 106,553.20 USDT (zysk: +1.3978) * Zysk netto: +1.1705 USDT Tu futures przyniosły największy zysk — zamknięcie pozycji short niżej, mimo straty na spocie. | Data & Godzina | Spot PnL | Futures PnL | Całkowity PnL | Wynik | | -------------- | -------- | ----------- | ------------- | ---------- | | 20:28:11 | –0.14 | +0.16 | **+0.02** | zysk | | 20:35:52 | –0.25 | +1.15 | **+0.90** | zysk | | 20:36:12 | +0.09 | +0.13 | **+0.22** | zysk | | 20:38:42 | –0.23 | +0.00 | **–0.23** | **strata** | | 20:40:52 | +0.24 | +0.40 | **+0.64** | zysk | | 20:43:52 | –0.23 | +1.40 | **+1.17** | zysk | | 20:45:52 | –0.22 | +0.93 | **+0.72** | zysk | | 20:46:12 | +0.22 | +0.13 | **+0.34** | zysk | | 20:46:32 | +0.02 | +0.40 | **+0.42** | zysk | | 20:47:02 | +0.00 | +0.77 | **+0.77** | zysk | | 20:48:32 | +0.00 | +0.13 | **+0.13** | zysk | | 20:49:22 | +0.54 | +0.13 | **+0.67** | zysk | # 🔍 Wniosek AI: Mimo że niektóre zamknięcia pozycji futures kończą się stratą (jak Pan zauważył), większość przynosi zysk, a straty są relatywnie niewielkie w porównaniu do zysków. W praktyce, działanie oparte na spadku basis (czyli konwergencji futures do spot) okazuje się skuteczne. ![f4b5cefe-3367-4520-9223-6c9581f2d133](https://hackmd.io/_uploads/SkOvf32bxx.jpg) # # 👆 Powyższe dwa wykresy ilustrują: **📈 1. Skumulowany zysk (PnL)** * Pokazuje, jak łączne saldo strategii rosło z każdą transakcją. * Wzrost jest systematyczny i stabilny, co potwierdza skuteczność podejścia. * Końcowy wynik to +5.76 USDT przy 12 transakcjach i ekspozycji ~10 USD każda. **🔍 2. Rozdział PnL: Spot vs Futures** * Futures PnL (pomarańczowy) generuje większość zysków — tu tkwi główna przewaga strategii. * Spot PnL (niebieski) balansuje się wokół zera — czasem zysk, czasem strata — co jest naturalne przy zamykaniu w momentach spadku basis. * Potwierdza to, że kluczowa wartość strategii basis trading leży w sprzedaży drogich kontraktów futures i ich późniejszym odkupie taniej. ``` [Wykres: Spread basis BTCUSDT (05-20 do 05-21)] | 4.5%| ● (20/05 - 4.38%) | 3.5%| | 2.5%| ● (21/05 - 2.54%) | 1.5%|_________________________ 20/05 21/05 5 ``` # 🔀 Schemat blokowy bota basis tradingu ![schemat-blok](https://hackmd.io/_uploads/S1NUqzZzeg.jpg) **Opis głównych bloków:** 1. **Inicjalizacja stanu** - Wczytuje zapisany stan z pliku i przygotowuje pliki logów. 2. **Dashboard** - Wyświetla statystyki i analizy (uruchamiany z parametrem --dashboard). 3. **Pętla monitorowania** - Główna logika strategii: * Pobiera ceny SPOT i Futures * Oblicza basis (różnica procentowa między Futures a SPOT) * Decyduje o wejściu/wyjściu z pozycji na podstawie thresholdów * Implementuje trailing take profit 4. **Zarządzanie pozycją:** * Wejście (SPOT long + Futures short) * Wyjście (SPOT sell + Futures buy) 5. **Analiza danych:** * Historyczna analiza basis * Statystyki efektywności strategii 6. **Logowanie** - Zapis transakcji i danych rynkowych do plików JSON. Schemat uwzględnia również obsługę błędów i bezpieczne zamykanie pozycji przy zatrzymaniu skryptu (SIGINT). # ✒️ Do zrobienie **1. Skalowanie pozycji w zależności od wielkości Spreadu** Strategia skalowania pozwala maksymalizować zysk, gdy spread jest wyjątkowo korzystny, i minimalizować ryzyko, gdy warunki są mniej atrakcyjne. **Przykład z Danych Bybit (20-22.05.2025):** * 20/05: Spread 4.38% → 100% kapitału (najlepszy moment) * 21/05: Spread 2.54% → 50% kapitału **Dlaczego to działa?** * Gdy spread jest wysoki, ryzyko arbitrażu spada, a potencjalny zysk rośnie. * Gdy spread się kurczy, zmniejszamy ekspozycję, aby uniknąć strat na kosztach transakcyjnych. **2. Optymalne Zastosowanie Stop-Loss (SL) i Take-Profit (TP) w Strategii Basis** Strategia opiera się na zastosowaniu stop-lossu i take-profitu, kiedy basis spadnie do wybranej progu. To zapewnia maksymalizacje zysku oraz minimalizacje ryzyka. **1. Kiedy Stosować Stop-Loss (SL)?** * Gdy spread basis kurczy się poniżej progu opłacalności * Przykład: Jeśli wchodzisz przy spreadzie 3%, SL powinien być ustawiony na 1-1.5%, aby uniknąć strat po uwzględnieniu opłat. Formuła: `SL = Wejściowy spread - (koszty transakcyjne + buffer 0.5%)` **Gdy funding rate futures staje się zbyt wysoki** *Jeśli funding rate przekracza 0.01% na godzinę, utrzymywanie shorta na futures może być nieopłacalne. * Rozwiązanie: Ustaw SL, który zamknie pozycję, gdy łączny koszt fundingu przekroczy 50% przewidywanego zysku. **W przypadku nagłej zmienności rynkowej** * SL działa jako zabezpieczenie przed ekstremalnymi ruchami cenowymi (np. podczas newsów makro). **2. Kiedy Stosować Take-Profit (TP)?** **Gdy spread osiągnie historyczne minimum** * Przykład: Jeśli średni spread wynosi 2%, TP można ustawić na 0.5%, aby zrealizować zysk przed jego całkowitym zamknięciem. **Przed okresami funding time** * Funding na futures naliczany jest co 8 godzin (00:00, 08:00, 16:00 UTC). Zamknij pozycję 15 minut przed, aby uniknąć dodatkowych kosztów. **Gdy rynek traci płynność** * W godzinach 2:00-4:00 UTC płynność często spada, co zwiększa ryzyko slippage’u. TP pozwala zabezpieczyć zyski. **3. Minimalizacja ukrytych kosztów funding rate i slippage** **1. Funding Rate Futures** * Jak działa? Co 8 godzin (00:00, 08:00, 16:00 UTC) długie/krótkie pozycje płacą lub otrzymują procent od wartości pozycji. * Wpływ na strategię: Jeśli jesteś short futures, a funding rate jest dodatni, płacisz opłatę. **Przykład:** ``` Koszt dzienny = Wartość pozycji × (Funding rate × 3) Dla 0.01 BTC short przy rate 0.01%: 10,000 USDT × (0.0001 × 3) = 3 USDT/dzień ``` **2. Slippage** * Co to jest? Różnica między oczekiwaną a faktyczną ceną wykonania zlecenia. **Jak minimalizować?** * Używaj limit orders zamiast market orders. * Unikaj handlu w godzinach niskiej płynności (np. 2:00-4:00 UTC). * Dziel duże zlecenia na mniejsze (TWAP). **3. Podsumowanie Kosztów** | Koszt | Szacunkowa Wartość | Jak Zmniejszyć? | | -------- | -------- | -------- | | Opłaty transakcyjne | 0.04-0.1% od wolumenu |Negocjuj niższe stawki (VIP programy). | Funding Rate | 0.01-0.1% od wolumenu | Używaj limit orders | Slippage | 0.1-1% od wolumenu | Używaj limit orders| --- # 🪂 Kolejny wpis bedzie opisywał jak bot pracuje w Bessie. Więc już dziś laikuj Youtube i X'a 👇 --- 📲 **Znajdź mnie w sieci:** 🔴 [YouTube](https://www.youtube.com/@devPepson)  | [Telegram](https://web.telegram.org/k/#@xmasnft4you)  | [Twitter/X](https://x.com/devPepson)  | [GitHub](https://github.com/panpepson)  | [wWw](https://trochymiak.net) 🌐