Spis treści[Ukryć][Pokazać]
Branżą, która bardzo interesuje tych, którzy szukają pracy, jest handel walutami. Firmy zajmujące się oprogramowaniem otrzymują od handlowców z całego świata prośby o udostępnienie platformy transakcyjnej, która może szybko i wydajnie oceniać dane dotyczące par walutowych.
Platforma handlowa to oprogramowanie dostarczane handlowcom i inwestorom przez określone organizacje finansowe, takie jak banki i domy maklerskie.
Platformy transakcyjne zasadniczo pozwalają inwestorom i dealerom zawierać transakcje i pilnować swoich kont. Inne funkcje, które pomagają inwestorom w podejmowaniu decyzji inwestycyjnych, są często zawarte w systemach transakcyjnych.
Notowania w czasie rzeczywistym, interaktywne wykresy, różnorodne narzędzia do tworzenia wykresów, kanały informacyjne na żywo i wysokiej jakości badania to tylko kilka przykładów takich możliwości.
Platformy można również zaprojektować dla określonych rynków, takich jak akcje, waluty, opcje lub kontrakty terminowe.
Od ponad dekady zautomatyzowane systemy transakcyjne, znane również jako handel algorytmiczny, zajęły centralną scenę branży handlowej.
„System transakcyjny”, czasami znany jako „strategia handlowa”, to nic innego jak zbiór zasad, które są stosowane do danych wejściowych, aby zapewnić sygnały kupna/sprzedaży wejścia i wyjścia. Pomimo tego, że tworzenie strategii handlowej może wydawać się proste, tak nie jest!
Umysły stojące za ilościową strategią handlową są określane jako „Kwanty” w obszarze handlu algorytmicznego, ponieważ opracowanie dobrej strategii handlowej wymaga szeroko zakrojonych badań ilościowych.
Podstawowy projekt automatycznych systemów transakcyjnych przeszedł znaczne modyfikacje w ciągu ostatnich dziesięciu lat i wciąż się zmienia.
Branża handlu algorytmicznego stała się wylęgarnią rozwoju technologii komputerowych i sieciowych, ponieważ firmy, zwłaszcza te wykorzystujące systemy handlu o wysokiej częstotliwości, stały się niezbędne do wprowadzania innowacji technologicznych w celu konkurowania w świecie handlu algorytmicznego.
Omówimy platformę handlową projekt systemu w tym artykule. Podstawowe specyfikacje platformy transakcyjnej obejmują jej architekturę, protokoły i instrukcje tworzenia własnego zautomatyzowanego systemu transakcyjnego.
Wymagania dotyczące oprogramowania do automatycznego handlu na poziomie podstawowym
Najlepsze rozwiązanie to takie, które całkowicie spełnia wymagania oprogramowania. Główne specyfikacje oprogramowania do automatycznego handlu to:
- Skalowalność (zdolność systemu do obsługi rosnącej liczby żądań i obciążenia pracą);
- Wieloprzetwarzanie i doskonała wydajność;
- Bezpieczeństwo i ochrona (jak reaguje na nagłe naruszenia lub ataki i chroni przed nielegalnym wjazdem);
- Interoperacyjność (zdolność systemu do interakcji z innymi systemami);
- Niezawodność (jak rozwiązuje awarie i działa pomimo problemów).
Algorytmiczne systemy handlowe wymagają niezwykle wykwalifikowanej siły roboczej i starannej uwagi. Łatwiej jest zrozumieć wymagania funkcjonalne systemu, gdy istnieją wyraźne wymagania niefunkcjonalne. Służą jako normy regulujące dla zespołów programistycznych w celu ustalenia i zdefiniowania jakości produktu.
Funkcjonalne cechy platformy transakcyjnej obejmują
Skuteczna obsługa różnych metod płatności, bezpieczne usługi hostingu w chmurze, potężne narzędzia do analizy danych, zarządzanie ryzykiem, precyzyjne wyceny i odpowiednie rodzaje wykresów to ważne potrzeby funkcjonalne.
Poniżej przedstawiono niektóre podstawowe atrybuty automatycznych platform transakcyjnych, na które wszyscy inwestorzy zwracają szczególną uwagę:
Pulpit nawigacyjny wyświetlający dane statystyczne
W celu przeprowadzenia w czasie rzeczywistym, jednoczesnego badania kursów walut w kilku strefach czasowych, platforma musi przeprowadzać ciągłe aktualizacje, obsługiwać dane z wielu wykresów i obsługiwać arkusze cen.
Uwierzytelnianie
Szybka, ale godna zaufania metoda weryfikacji najpierw tworzy obraz bezpiecznej platformy i elitarnego wysiłku inżynierskiego.
Oprogramowanie transakcyjne może obsługiwać dostęp z wielu kont, podobnie jak platformy transakcyjne typu open source z uwierzytelnianiem dwuskładnikowym (na przykład za pomocą SMS lub Google Authenticator), ale możesz również mieć system z dostępem za pośrednictwem poczty e-mail, numeru telefonu lub innych sposoby tylko dla małej grupy traderów.
News Feeds
Przed podjęciem jakichkolwiek decyzji finansowych bardzo ważne jest przeprowadzenie badań. Aby zapobiec błędom spowodowanym ignorancją, inwestorzy mogą korzystać z wygodnych wiadomości, istotnych przeglądów i wglądu w światowe rynki walutowe, z których wszystkie są dostępne natychmiast na ich platformach transakcyjnych.
Wygodna funkcjonalność dla administratorów i użytkowników
W takim systemie możliwość szybkiego zarządzania wszystkim jednym kliknięciem jest niezbędna. Obejmuje to zarządzanie transakcjami, oczekującymi i złożonymi zamówieniami, kontami osobistymi, wskaźnikami postępu zamówienia i żądaniami klientów.
Umożliwia to podejmowanie decyzji w najkrótszym czasie i gwarantuje stały dostęp do ważnych informacji.
Korzystanie z powiadomień push
Użytkownicy przewidują, że platformy transakcyjne będą dostępne przez całą dobę i będą informowani o wszelkich problemach z bezpieczeństwem lub o najnowszych zmianach.
Możesz być na bieżąco dzięki dostosowywanym powiadomieniom, ponieważ platforma transakcyjna śledzi wydarzenia gospodarcze, wahania cen, rozwój rynku, wskaźniki techniczne itp. i wysyła aktualizacje dotyczące Twojej pozycji na giełdzie.
Wypłaty i płatności
Ta funkcja jest wymagana, aby podejmować działania handlowe, śledzić przepływ gotówki oraz szybko i bezpiecznie wypłacać pieniądze z konta osobistego za pomocą karty kredytowej, PayPal lub prostego przelewu bankowego.
Gdy Twoja prośba o wypłatę zostanie przetworzona, zostaniesz o tym powiadomiony.
Architektura Zautomatyzowanego Systemu Handlu
Silnik realizujący logikę podejmowania decyzji w zautomatyzowanej platformie transakcyjnej, znany również jako silnik „Complex Event Processing” lub CEP, będzie znajdować się w aplikacji na serwerze.
Warstwa aplikacji jest zasadniczo UI do obserwacji i dostarczania parametrów do CEP. Chociaż warstwa aplikacji to przede wszystkim widok, niektóre kontrole ryzyka (które obecnie stały się operacjami zasobożernymi ze względu na problem skali) można przenieść na warstwę aplikacji, szczególnie te, które wiążą się z rozsądkiem danych wprowadzanych przez użytkownika, takimi jak błędy grubego palca.
Intrygująca sytuacja wynika z problemu skalowalności w zautomatyzowanym systemie transakcyjnym.
Wyobraźmy sobie, że pojedyncze zdarzenie danych rynkowych jest przetwarzane przez 100 oddzielnych logik (jak omówiono we wcześniejszym przykładzie). W przypadku większości ze 100 jednostek logicznych, powiedzmy obliczenia greckich dla opcji, mogą istnieć wspólne elementy złożonych obliczeń, które należy wykonać.
Identyczne dokładne obliczenia byłyby wykonywane przez każdą jednostkę, gdyby każda logika działała niezależnie, co spowodowałoby marnotrawstwo zasobów przetwarzania.
Złożone, nadmiarowe obliczenia są często dzielone na różne silniki obliczeniowe, które dostarczają Grekom dane wejściowe do CEP w zautomatyzowanym systemie transakcyjnym, aby zmaksymalizować nadmiarowość obliczeń.
Obecnie oddzielny System Zarządzania Ryzykiem (RMS) w ramach Order Managera (OM) przeprowadza pozostałe oceny ryzyka w zautomatyzowanym systemie transakcyjnym na krótko przed wydaniem zlecenia.
Ponieważ istnieje tylko jeden system RMS do zarządzania ryzykiem we wszystkich logicznych jednostkach/strategiach, wcześniej 100 oddzielnych traderów kontrolowało swoje ryzyko. Wynika to z problemu ze skalą.
Jednak niektóre oceny ryzyka mogą dotyczyć tylko określonych strategii, podczas gdy inne mogą wymagać wykonania we wszystkich metodach.
W konsekwencji sam RMS składa się z globalnego RMS (GRMS) i poziomu strategicznego RMS (SLRMS). SLRMS i GRMS można również zobaczyć za pośrednictwem interfejsu użytkownika (UI).
Przejdźmy teraz dalej do komponentów serwera.
Adapter rynku
Giełda lub inny dostawca danych rynkowych przesyła dane w swoim formacie. Ten język może, ale nie musi być rozumiany przez system handlu algorytmicznego.
Exchange zapewnia dostęp do interfejsu API (Application Design Interface), którego można użyć do zaprogramowania i zbudowania własnego adaptera w celu przekształcenia formatu danych do formatu zrozumiałego dla systemu.
Złożony silnik przetwarzania zdarzeń
Mózg twojego podejścia leży w tej sekcji. Gdy już masz dane, musisz je wykorzystać zgodnie ze swoim planem, co wymaga wykonywania różnych obliczeń statystycznych, dokonywania porównań z danymi z przeszłości i podejmowania decyzji, które doprowadzą do tworzenia zamówień.
Ten blok jest konstruowany na podstawie typu zlecenia i kwoty zlecenia. Mówiąc najprościej, złożone wydarzenie to zbiór nadchodzących wydarzeń. Należą do nich wiadomości, ruchy rynkowe, trendy na giełdzie itp.
Szybkie wykonywanie operacji obliczeniowych na skomplikowanych zdarzeniach jest nazywane przetwarzaniem złożonych zdarzeń. Operacje zautomatyzowanego systemu transakcyjnego mogą obejmować wykrywanie skomplikowanych wzorców, tworzenie korelacji i ustanawianie połączeń, takich jak przyczynowość i czas między przychodzącymi informacjami.
System routingu zamówień
Korzystając z podanych API giełdy, zamówienie jest szyfrowane w języku zrozumiałym dla giełdy. Giełda oferuje natywne API i FIX API, dwa różne typy API.
Natywne interfejsy API są zaprojektowane specjalnie dla danej giełdy. Zbiór wytycznych znany jako protokół FIX (Financial Information Exchange) jest używany przez kilka giełd w celu ułatwienia i poprawy przepływu danych na rynkach bezpieczeństwa.
W kolejnej części wyjaśnimy więcej o FIX. Jeśli gospodarka jest otwarta, ludzie mogą składać zlecenia za pośrednictwem zautomatyzowanego systemu transakcyjnego na giełdy lub inne giełdy, a ORP powinien być w stanie obsługiwać zlecenia idące w wielu kierunkach.
Tutaj chcemy podkreślić, że sygnał zamówienia może być realizowany ręcznie przez osobę lub automatycznie. Ostatnia sekcja jest tym, co nazywamy „zautomatyzowanym systemem transakcyjnym”.
Moduł menedżera zamówień zawiera kilka technik realizacji, które realizują zlecenia kupna/sprzedaży zgodnie z wcześniej ustaloną logiką.
Zarządzanie ryzykiem
Ponieważ automatyczne systemy transakcyjne działają bez udziału człowieka, rygorystyczne analizy ryzyka są niezbędne, aby zapewnić, że systemy transakcyjne działają zgodnie z przeznaczeniem.
Słabe zarządzanie ryzykiem lub brak kontroli ryzyka dla firmy ilościowej może skutkować znacznymi niemożliwymi do odzyskania stratami. W rezultacie każdy automatyczny system transakcyjny musi mieć system zarządzania ryzykiem (RMS).
Rozwój protokołu dla automatycznych systemów transakcyjnych
Aby połączyć się z kilkoma miejscami docelowymi z jednego serwera, co było możliwe dzięki możliwości skalowania architektury do wielu strategii na serwer, było wymagane.
Aby przesyłać zamówienia do kilku miejsc docelowych i odbierać dane z wielu wymian, menedżer zamówień zawierał szereg adapterów.
Rolą każdego adaptera jest służenie jako tłumacz między wewnętrznym protokołem komunikacyjnym systemu a protokołem zrozumiałym dla wymiany. W związku z tym do wielu wymian potrzebna byłaby pewna liczba adapterów.
Ponieważ każda giełda ma protokół dostosowany do oferowanych przez nią możliwości, należy utworzyć nowy adapter i podłączyć go do architektury, aby dodać nową giełdę do zautomatyzowanego systemu transakcyjnego.
Opracowano standardowe protokoły, aby zapobiec bólowi głowy związanemu z wstawianiem adaptera. Protokół FIX jest najbardziej znanym ze wszystkich.
Czas wejścia na rynek na połączenie z nowym miejscem docelowym jest znacznie skrócony, co nie tylko sprawia, że można połączyć się z kilkoma miejscami docelowymi w ruchu.
Zautomatyzowany system handlu może łatwo wchodzić w interakcje z innymi dostawcami w zakresie analiz lub danych rynkowych dzięki istnieniu wspólnych protokołów.
W efekcie rynek staje się niezwykle wydajny, ponieważ nie ma już ograniczeń w integracji z nową lokalizacją lub sprzedawcą.
Dodatkowo symulacja jest bardzo prosta, ponieważ do połączenia z symulatorem za pomocą protokołu FIX wystarczy wystawianie zleceń i odbieranie danych z rzeczywistego rynku.
Sam symulator można stworzyć wewnętrznie lub kupić z innego źródła. Podobnie jak w przypadku danych rynkowych na żywo, zarejestrowane zbiory danych mogą być również odtwarzane dzięki adapterom niezależnym od źródła danych.
Powstające architektury o niskim opóźnieniu
Strategie mogą teraz oceniać ogromne ilości danych w czasie rzeczywistym i dokonywać szybkich wyborów handlowych dzięki podstawowym elementom zautomatyzowanego systemu transakcyjnego.
W wyniku rozwoju branżowych protokołów komunikacyjnych, takich jak FIX, łatwiej jest teraz skonstruować platformę handlu algorytmicznego lub zautomatyzowany system handlu, co zwiększyło konkurencję na rynku handlu algorytmicznego.
Nacisk przeniesiono na zmniejszanie opóźnień w podejmowaniu decyzji, ponieważ serwery zyskują więcej pamięci i szybsze zegary.
Zmniejszenie opóźnień było z czasem konieczne z różnych powodów, w tym:
- Tylko w środowisku o niskim opóźnieniu technika ma sens.
- Konkurencja eliminuje cię, jeśli nie jesteś wystarczająco szybki w przetrwaniu najsilniejszej gry
Kolokacja stała się absolutną koniecznością w zautomatyzowanym systemie transakcyjnym dla każdej metody o wysokiej częstotliwości dotyczącej jednego miejsca docelowego.
Ale systemy z wieloma miejscami docelowymi wymagają skrupulatnego przygotowania. Przed dokonaniem takiego wyboru należy wziąć pod uwagę zmienne, takie jak czas trwania odpowiedzi na zamówienie odbiorcy i jego porównanie z czasem trwania pingu między dwoma celami.
Aby zmniejszyć całkowite opóźnienie zautomatyzowanego systemu handlu, opóźnienie sieci jest zazwyczaj pierwszą rzeczą, którą należy się zająć. Ale architekturę można ulepszyć na wiele innych sposobów.
Opóźnienie przetwarzania sieciowego
Opóźnienie przetwarzania sieciowego to opóźnienie, które wprowadzają routery, przełączniki itp. Liczba przeskoków potrzebnych do przeniesienia pakietu z punktu A do punktu B byłaby kolejnym poziomem optymalizacji w projektowaniu zautomatyzowanego systemu transakcyjnego.
Przeskok jest opisywany jako odcinek ścieżki między źródłem pakietu a miejscem docelowym, gdzie pakiet nie przechodzi przez urządzenie fizyczne, takie jak router lub przełącznik.
To, co nazywamy mikroburstami, może również mieć wpływ na opóźnienie operacji sieciowych.
Gwałtowny wzrost tempa transmisji danych, który może, ale nie musi wpływać na średnią szybkość przesyłania danych, jest określany jako mikroburst.
Ponieważ zautomatyzowane systemy transakcyjne są oparte na zasadach, wszystkie zareagują jednakowo na to samo zdarzenie. Mikroprzesył danych między uczestnikami a miejscem docelowym może nastąpić w wyniku jednoczesnego wysyłania poleceń przez kilka uczestniczących systemów.
Opóźnienie aplikacji
Opóźnienie aplikacji zautomatyzowanego systemu handlu jest miarą czasu potrzebnego na przetworzenie wniosku. Zależy to od liczby pakietów, przetwarzania poświęconego logice aplikacji, złożoności zastosowanych obliczeń, efektywności programowania itp.
System zazwyczaj miałby mniejsze opóźnienia aplikacji, gdy liczba jego procesorów wzrosła. To samo dotyczy wyższych częstotliwości zegara.
Wiele zautomatyzowanych systemów transakcyjnych korzysta z przydzielania rdzeni procesora do krytycznych części programu, takich jak na przykład logika strategii. W ten sposób procedura nie dodaje opóźnienia wynikającego z przełączania rdzeni.
Podobnie, jeśli podejście zautomatyzowanego systemu transakcyjnego zostało zaprogramowane z myślą o rozmiarach pamięci podręcznej i bliskości dostępu do pamięci, wystąpiłoby kilka trafień w pamięci podręcznej, co dodatkowo zmniejszy opóźnienie.
Wiele systemów robi to poprzez optymalizację kodu do konkretnej architektury procesora, co odbywa się za pomocą języków programowania bardzo niskiego poziomu.
Używając w pełni programowalnych macierzy bramek, niektóre firmy posunęły się nawet do przesyłania skomplikowanych obliczeń na sprzęt (FPGA).
Testowanie
Testy, które są czynnością polegającą na identyfikowaniu wad oprogramowania, są nie do przecenienia, szczególnie w Fintech. Ze względu na możliwość strat finansowych, technologia finansowa nie może sobie pozwolić na wady.
Im więcej defektów mogą zidentyfikować inżynierowie ds. zapewnienia jakości, tym większe prawdopodobieństwo, że gotowy produkt będzie działał prawidłowo. W zależności od firmy rozwijającej platformę handlową lub potrzeb klienta, struktura procesu testowania obejmuje:
Podstawą testowania funkcjonalnego jest tworzenie danych wejściowych i analiza wyników. Przy użyciu fałszywych kart uruchamiane są przypadki testowe aplikacji finansowych. Karty te mają na celu poprawę niezawodności, wydajności i precyzji płatności.
Sprawdzanie szybkości, skalowalności i stabilności systemu odbywa się poprzez testy wydajności. Szybkość aplikacji jest oceniana w celu zrozumienia, jak szybko reaguje, a jej skalowalność wskazuje, ilu użytkowników może obsługiwać jednocześnie bez awarii.
Dodatkowo stabilność pokazuje, czy aplikacja działa poprawnie pod różnymi obciążeniami, czy też występują potencjalne wady.
Stworzenie w pełni zautomatyzowanego systemu transakcyjnego może wykraczać poza możliwości pojedynczego handlowca detalicznego. Zautomatyzowane systemy transakcyjne, które są oferowane na rynkach na zasadzie subskrypcji, są opcją dla traderów, którzy chcą zbadać algorytmiczną technikę handlu.
Budowanie własnych autonomicznych systemów transakcyjnych
Początkujący inwestorzy mogą rozwijać własne techniki handlu algorytmicznego i angażować się w udany handel rynkowy. W ogólnym zarysie poniższe etapy można wykorzystać do stworzenia strategii handlu algorytmicznego:
- Stwórz koncepcję handlową, która Twoim zdaniem odniesie sukces na aktywnych rynkach, korzystając z wyobraźni lub metody. Koncepcja może pochodzić z własnych obserwacji rynku, książek handlowych, artykułów naukowych, blogów handlowych, forów handlowych lub dowolnego innego źródła.
- Zbierz niezbędne informacje — do przetestowania swojej hipotezy potrzebne będą dane historyczne. Te informacje są dostępne u dostawców płatnych danych lub w witrynach takich jak Google Finance.
- Napisanie planu wymaga użycia narzędzi takich jak programowanie Excel, Python czy R. Gdy masz już dane, możesz zacząć kodować swoje podejście.
- Testowanie koncepcji handlowej w oparciu o dane historyczne po jej zakodowaniu nazywa się testowaniem historycznym Twojego podejścia. Backtesting obejmuje optymalizację danych wejściowych, ustalanie celów zysku i zleceń stop-loss, wielkości pozycji i innych powiązanych zadań.
- Handel swoją strategią na papierze – po fazie testów historycznych konieczne jest handlowanie strategią na papierze. Obejmuje to testowanie twojego planu za pomocą symulatora symulującego rynek. W przypadku metody handlu papierami istnieją brokerzy, którzy zapewniają algorytmiczną platformę handlową.
- Jeśli Twoje podejście jest dochodowe po handlu papierami, możesz je wdrożyć w rzeczywistych sytuacjach. Możesz utworzyć konto handlowe u wiarygodnego brokera, który oferuje handel algorytmiczny.
Z każdym rokiem pojawia się coraz więcej giełd, które umożliwiają handel algorytmiczny zarówno dla profesjonalnych, jak i detalicznych traderów, a coraz więcej traderów korzysta z handlu algorytmicznego.
Wnioski
Był to obszerny artykuł o architekturze zautomatyzowanego systemu transakcyjnego, który, jak jesteśmy przekonani, dostarczył bardzo wnikliwego zrozumienia zaangażowanych komponentów, a także wielu przeszkód, które twórcy architektury muszą pokonać/przezwyciężyć, aby zaprojektować silny zautomatyzowany system transakcyjny.
Zrobiłem co w mojej mocy, aby przedstawić ci ogólny zarys systemu automatycznego handlu, ale pod maską dzieje się o wiele więcej. Mam nadzieję, że uznasz ten materiał za korzystny i dobrze go wykorzystasz.
Dodaj komentarz