System trwałości
Odzyskiwanie pozycji
Silnik transakcyjny zawiera wbudowaną warstwę trwałości zaprojektowaną tak, aby przetrwać awarie, restarty i nieoczekiwane zamknięcia bez utraty krytycznego stanu transakcyjnego.
Wszystkie aktywne dane transakcyjne są automatycznie przechowywane na dysku przy użyciu niestandardowego komponentu PersistentMap.
System trwale przechowuje:
- •Aktywne pozycje
- •Oczekujące zlecenia
- •Kontrole handlowe symboli
- •Stany zarządzania ryzykiem
Po restarcie bota:
- 1.Pliki trwałe są automatycznie ładowane.
- 2.Poprzedni stan transakcyjny jest przywracany do pamięci.
- 3.Aktywne pozycje są natychmiast ponownie monitorowane.
- 4.Oczekujące zlecenia kontynuują śledzenie stanu wykonania na giełdzie.
- 5.Kontrole ryzyka pozostają zachowane.
Pozwala to botowi na kontynuację działania bez ręcznej interwencji po przerwach.
Cel:
- •Zapobieganie utracie śledzenia otwartych pozycji
- •Zachowanie ciągłości transakcyjnej
- •Utrzymanie dokładnego stanu zarządzania ryzykiem
- •Unikanie duplikatów wpisów po restarcie

Struktura bazy danych
Warstwa trwałości wykorzystuje lekkie, lokalne przechowywanie plików zbudowane na bazie serializacji Pythona pickle.
Każda trwała struktura jest przechowywana w niezależnym pliku:
- •
active_positions.pkl - •
pending_orders.pkl - •
symbol_controls.pkl
Architektura jest celowo minimalistyczna i zoptymalizowana pod kątem systemów transakcyjnych o niskim opóźnieniu.
Aktywne pozycje
Przechowuje obecnie otwarte transakcje.
Każda pozycja zawiera:
- •Symbol transakcyjny
- •Stronę pozycji
- •Wielkość
- •Cenę wejścia
- •Cenę stop loss
- •Cenę take profit
- •Status trailing stop
- •Znacznik czasu
Cel:
- •Wznów zarządzanie pozycją po restarcie
- •Kontynuuj logikę stop loss i trailing
- •Zachowaj dokładny stan wejścia
Oczekujące zlecenia
Przechowuje zlecenia giełdowe oczekujące na potwierdzenie wykonania.
Każde zlecenie zawiera:
- •Symbol
- •Stronę zlecenia
- •Typ zlecenia
- •Wielkość
- •Identyfikator zlecenia giełdowego
- •Bieżący status
Cel:
- •Zapobiega duplikatom zleceń
- •Kontynuuj monitorowanie stanu wykonania na giełdzie
- •Odzyskaj niedokończone przepływy zleceń
Kontrole symboli
Przechowuje bieżące uprawnienia transakcyjne i stany ochrony.
Każdy symbol może zawierać:
- •Status włączonego kupowania
- •Status włączonej sprzedaży
- •Powody wyłączenia
- •Stany blokady ryzyka
Cel:
- •Zachowaj automatyczne ograniczenia ryzyka
- •Zapobiegaj przypadkowej reaktywacji po restarcie
Logika odzyskiwania po awarii
System trwałości jest zaprojektowany do automatycznego odzyskiwania podczas:
- •Awarii procesów
- •Restartów serwera
- •Awarii VPS
- •Przerw w dostawie prądu
- •Nieoczekiwanych wyjątków
Asynchroniczna trwałość
Wszystkie zapisy są przetwarzane w dedykowanym wątku tła.
Funkcje:
- •Nieblokujące wykonywanie transakcji
- •Ciągłe automatyczne zapisywanie
- •Planowanie zapisów oparte na kolejce
Cel:
- •Zapobiega opóźnieniom w handlu spowodowanym operacjami dyskowymi.
Atomowe zapisywanie plików
System używa atomowego zastępowania plików dla maksymalnego bezpieczeństwa danych.
Przepływ zapisu:
- 1.Dane są zapisywane w tymczasowym pliku .tmp.
- 2.Plik tymczasowy jest w pełni ukończony.
- 3.Plik jest atomowo zmieniany na końcowy plik trwałości.
Cel:
- •Zapobiega uszkodzeniu plików trwałości podczas awarii lub przerwanych zapisów.
Deduplikacja zapisów
Kolejka trwałości automatycznie usuwa nieaktualne żądania zapisu.
Zachowanie:
- •Tylko najnowszy stan jest utrwalany.
- •Nadmiarowe zapisy na dysk są pomijane.
Cel:
- •Zmniejsza użycie dysku
- •Poprawia wydajność przy dużej częstotliwości aktualizacji
Automatyczne przeładowanie stanu
Podczas uruchamiania:
- 1.Pliki trwałości są wykrywane.
- 2.Obiekty serializowane są ładowane z powrotem do pamięci.
- 3.Silnik transakcyjny wznawia monitorowanie natychmiast.
Jeśli pliki trwałości nie istnieją:
- •Nowe, czyste miejsce do przechowywania jest automatycznie inicjowane.
Bezpieczeństwo wątków
Silnik trwałości używa wewnętrznych blokad synchronizacji podczas operacji zapisu.
Funkcje:
- •Zapisy bezpieczne dla współbieżności
- •Bezpieczny dostęp wielowątkowy
- •Chronione zastępowanie plików
Cel:
- •Zapewnia spójność między wątkami transakcyjnymi a warstwą trwałości
Ochrona łagodnego zamykania
Przed zamknięciem:
- 1.Ostateczna operacja zapisu jest wymuszana.
- 2.Kolejka zapisów jest całkowicie opróżniana.
- 3.Wątek trwałości w tle jest zatrzymywany bezpiecznie.
Cel:
- •Gwarantuje zapisanie najnowszego stanu transakcyjnego na dysk przed wyjściem.