---
# System prepended metadata

title: "\U0001F47E mójBot Spread BASIS w 4 godziny wypracowął zysk 46 USDT"
tags: [bybit, arbitraż, bot, "\_kryptowaluty\_", Spread BASIS, giełda, USDT]

---


# 👾 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) &nbsp;|&nbsp;[Telegram](https://web.telegram.org/k/#@xmasnft4you) &nbsp;|&nbsp;[Twitter/X](https://x.com/devPepson) &nbsp;|&nbsp;[GitHub](https://github.com/panpepson) &nbsp;|&nbsp;[wWw](https://trochymiak.net) 🌐
