Ocena jakości realizacji zleceń dla dostępu API (kontekst Forex, edukacyjny)
Co oznacza „jakość realizacji zleceń” dla dostępu API
Jakość realizacji zleceń to stopień, w jakim zlecenie złożone przez API prowadzi do zamierzonego wyniku w porównaniu z tym, czego oczekiwałeś w momencie jego wysłania. W praktyce oceniasz jakość realizacji na podstawie obserwowalnego zachowania systemu: czasu, obsługi zleceń, zgodności między żądanymi a rzeczywistymi wypełnieniami oraz częstotliwości występowania błędów lub nieoczekiwanych zdarzeń.
Dostęp API zmienia miejsca, w których mogą pojawić się problemy z realizacją. Zamiast patrzeć tylko na zachowanie rynku i strategii, uwzględniasz również „instalację hydrauliczną” wokół składania zleceń i cyklu ich życia: jak API przyjmuje Twoje żądanie, jak potwierdza jego akceptację, jak aktualizuje status zlecenia i jak raportuje transakcje z powrotem do Twojego systemu.
Podstawowe mechanizmy: co możesz zmierzyć
Aby ocenić jakość realizacji, najpierw zdefiniuj kilka pojęć.
- Czas wysłania żądania: kiedy Twoja aplikacja wysyła komunikat zlecenia.
- Potwierdzenie/akceptacja: kiedy API potwierdza, że zlecenie zostało przyjęte do przetworzenia.
- Czas zdarzenia wykonania: kiedy następują wypełnienia lub anulowania (zgodnie z raportem API).
- Oczekiwane a rzeczywiste wyniki: czy wykonana cena, ilość lub czas wypełnienia odpowiadają temu, co zakładał Twój system.
Mierzalna ocena zazwyczaj obejmuje:
- Rozkład opóźnień (nie tylko średnią). Śledź czas od wysłania żądania do potwierdzenia oraz od potwierdzenia do pierwszego wypełnienia. Rozważ percentyle (na przykład, jak często jest „wystarczająco szybko”).
- Niezawodność. Zmierz wskaźniki odrzuconych zleceń, przekroczeń czasu, zduplikowanych żądań i brakujących aktualizacji statusu.
- Dokładność wyniku zlecenia. Porównaj żądaną cenę/wielkość/ograniczenia z tym, co zostało ostatecznie wykonane lub potwierdzone (w tym częściowe wypełnienia).
- Integralność zdarzeń. Sprawdź, czy sekwencja stanów zlecenia, które otrzymujesz (przyjęte → częściowo wypełnione → wypełnione/anulowane), jest spójna i kompletna.
- Przejrzystość kosztów. Jakości realizacji nie można oddzielić od całkowitych kosztów transakcyjnych (spreadów, prowizji, opłat i wszelkiego poślizgu wynikającego z różnic w wypełnieniach). Możesz ją ocenić tylko na podstawie faktycznie zastosowanych cen i opłat.
Kluczową ideą jest porównanie zaobserwowanej realizacji z kontrolowanym punktem odniesienia. Twój punkt odniesienia może być kontrolowanym testem z użyciem małych zleceń w stałych warunkach, z jasno zarejestrowanymi znacznikami czasu i danymi wejściowymi.
Dowody i przykład: test w stylu weryfikacji
Załóżmy, że przeprowadzasz test, w którym składasz identyczne zlecenia limitowane przez API i rejestrujesz:
- dokładny znacznik czasu wysłania żądania z Twojej aplikacji,
- znacznik czasu akceptacji przez API,
- znacznik czasu pierwszego wypełnienia i pełnego wypełnienia,
- wykonaną cenę i wykonaną ilość,
- wszelkie kody błędów lub brakujące aktualizacje.
Następnie obliczasz kilka podsumowań dla wielu prób:
- Opóźnienie potwierdzenia = czas akceptacji − czas wysłania żądania.
- Czas do pierwszego wypełnienia = czas pierwszego wypełnienia − czas wysłania żądania (lub − czas akceptacji, o ile wybierzesz jedną definicję).
- Odchylenie wypełnienia = różnica między ceną ograniczającą a ceną wykonania (kierunkowo i w wartościach bezwzględnych).
- Kompletność wypełnienia = (wypełniona ilość ÷ żądana ilość) dla każdego zlecenia oraz udział zleceń zakończonych częściowym wypełnieniem.
Ponieważ warunki rynkowe mogą się szybko zmieniać, oddzielasz dwie warstwy dowodów:
- Dowody zachowania systemu: czy opóźnienia, odrzucenia i brakujące aktualizacje występują w przewidywalnym lub stabilnym tempie w porównywalnych warunkach.
- Dowody rynkowe i kosztowe: czy różnice w wypełnieniach można wyjaśnić zmieniającą się płynnością i kosztami transakcyjnymi, a nie obsługą API.
Należy również jawnie określić założenia. Na przykład, jeśli Twój test używa tego samego ustawienia czasu ważności zlecenia lub tego samego typu zlecenia, zaznacz to; w przeciwnym razie interpretacja akceptacji i częściowych wypełnień staje się niejednoznaczna.
Ograniczenia i tryby awarii, które należy uwzględnić
Nawet gdy pomiary wyglądają dobrze, jakość realizacji nie jest w pełni przewidywalna. Typowe istotne ograniczenia obejmują:
- Tryb awarii: odrzucone zlecenia lub przekroczenia czasu. System może być szybki, gdy działa, ale nadal mieć niedopuszczalne wskaźniki odrzuceń, gdy zmienia się obciążenie lub łączność. - Tryb awarii: nieaktualne lub niespójne dane rynkowe. Jeśli Twoja aplikacja podejmuje decyzje na podstawie danych, które pozostają w tyle za momentem złożenia zlecenia, możesz uzyskać gorsze wypełnienia, które nie są wyłącznie problemem „opóźnienia”. - Tryb awarii: częściowe wypełnienia i aktualizacje po wypełnieniu. Częściowe wypełnienia mogą być dokładne, ale jeśli Twoja aplikacja nieprawidłowo śledzi pozostałą ilość lub źle obsługuje sekwencje statusów, zmierzona „jakość” realizacji może odzwierciedlać błędy logiki oprogramowania. - Ograniczenie pomiaru: wyrównanie znaczników czasu. Jeśli porównujesz lokalne znaczniki czasu ze znacznikami czasu raportowanymi przez API bez zrozumienia synchronizacji zegarów, Twoje wnioski dotyczące opóźnień mogą być obciążone. - Ograniczenie dowodów: historia nie gwarantuje przyszłości.