Szukam GRUPOWEGO GRACZA! Chcę znaleźć kilka osób, z którymi będę mógł stale rozwijać i realizować projekty w Krypto i razem zarabiać. To zlecenie jest próbne, abyśmy mogli się zobaczyć i zrozumieć, czy do siebie pasujemy. JEŚLI twoim CELEM jest jednorazowe zarobienie - nie jesteś tutaj. Szukam stałej współpracy.
Zadanie: realizacja maksymalnie szybkiego obliczenia i otwarcie zlecenia na giełdzie ByBit
Przygotowanie danych
Parsujemy wszystkie tokeny na giełdzie ByBit (spot / futures, osobno), lista aktualizowana co 5 minut według crona.
Łączymy się przez socket z każdą monetą i zbieramy w czasie rzeczywistym ticki (zmiana książki zleceń) i transakcje.
Wysyłamy to wszystko do Wiktorii Metrix, dane do 5 minut – przechowujemy w pamięci operacyjnej
Osobno dla spotu, osobno dla futures zbieramy aktualną książkę zleceń samodzielnie po tickach
Obliczenie danych dla transakcji
Obliczamy dynamikę zmiany ceny według VOLUME.
W tym celu obliczamy średnią cenę dla asków (dla otwarcia longu) w ekwiwalencie wolumenów:
1 000$, 5 000$ (krok w postaci tablicy ustalany w ustawieniach)
Porównujemy ze średnią wartością transakcji za ostatnie 60 i 300 sek
Porównujemy ze średnią wartością asków (na ten sam wolumen) według historii książek zleceń.
Na wyjściu otrzymujemy tablicę [price_difference_60s]
1000$ - 5.86%
5000$ - 6.12%
Robimy sprawdzenie, jeśli przy wolumenie 1000$ delta w cenie jest mniejsza niż 10% (PRICE_CHANGE_DELTA_60S = 10), wtedy kontynuujemy logikę/zakup.
Obliczenie danych slippage dla określenia rozmiaru.
Używając zadanej stałej (MAX_SLIPPAGE_PERCENT = 5) dodajemy wierszami asków, aż osiągniemy potrzebny limit >5%
Mnożymy wolumen przez cenę w książce zleceń, aby obliczyć dostępny wolumen w książce z uwzględnieniem maksymalnego slippage.
Używamy zmiennej z konfiguracji (MAX_POSITION_SIZE_IN_USD = 10000) do ostatecznego obliczenia rozmiaru. Na przykład w książce zleceń w asku dostępny wolumen to 8500$ ze slippage <5%, więc to nasz rozmiar pozycji 8500$, jeśli dostępny wolumen >10000$, wtedy nasz rozmiar pozycji wyniesie 10 000$ (wzięte z MAX_POSITION_SIZE_IN_USD)
Otwarcie transakcji
Wysyłamy na websocket i przez rest api zlecenia limitowe z ceną asków +5% do ceny (wzięte z MAX_SLIPPAGE_PERCENT) oraz parametr IOC (immediantly or cancel).
Razem z zleceniem ustalamy stop loss/take profit na 33% rozmiaru na wzrost +10%, +20%, +30%
Stop loss ustalamy na -10% od pierwszego asku w książce zleceń.
Przekazujemy w zleceniu orderLinkId i "smpType": "CancelTaker" dla poprawnej pracy skryptu przy równoległym uruchomieniu na kilku serwerach.
Ważne jest przemyślenie systemu reconnectów, retrayów, logów i alertów
Warm_up_mode, co 30 sekund wysyłać “fałszywe” zlecenie na giełdę dla utrzymania aktywności.
System generowania ja3 finger prints