Backtestuj strategie handlowe z długoterminowym przechowywaniem strumieni danych Amazon Kinesis i Amazon SageMaker

Węzeł źródłowy: 1883045

Wgląd w czasie rzeczywistym ma kluczowe znaczenie, jeśli chodzi o budowanie strategii handlowych. Każde opóźnienie w dostępie do danych może kosztować traderów dużo pieniędzy. Często musisz przyjrzeć się historycznym trendom rynkowym, aby przewidzieć przyszły wzorzec handlu i dokonać właściwej oferty. Więcej analizowanych danych historycznych, lepsze prognozy handlowe. Dane strumieniowe śledzenia wstecznego mogą być trudne, ponieważ wymagają zaawansowanych mechanizmów przechowywania i analizy.

Strumienie danych Amazon Kinesis umożliwia naszemu klientowi przechowywanie danych strumieniowych przez okres do jednego roku. Długoterminowe przechowywanie strumieni danych Amazon Kinesis (LTR) danych przesyłanych strumieniowo umożliwia korzystanie z tej samej platformy zarówno dla danych w czasie rzeczywistym, jak i starszych danych przechowywanych w strumieniach danych Amazon Kinesis. Na przykład można trenować algorytmy uczenia maszynowego do handlu finansowego, personalizacji marketingu i modeli rekomendacji bez przenoszenia danych do innego magazynu danych lub pisania nowej aplikacji. Klienci mogą również spełnić określone przepisy dotyczące przechowywania danych, w tym zgodnie z HIPAA i FedRAMP, korzystając z długoterminowego przechowywania. Upraszcza to w ten sposób architekturę pozyskiwania danych dla naszego przypadku handlowego, który omówimy w tym poście.

W poście Tworzenie algorytmicznych strategii handlowych z Amazon SageMaker, pokazaliśmy, jak testować strategie historyczne z wykorzystaniem Amazon Sage Maker z historycznymi danymi cen akcji przechowywanymi w Usługa Amazon Simple Storage (Amazonka S3). W tym poście rozwijamy to rozwiązanie do strumieniowego przesyłania danych i opisujemy, jak używać Amazonka Kinesis.

Ponadto chcemy skorzystać Automatyczne strojenie Amazon SageMaker znaleźć optymalną konfigurację dla strategii krzyżowania średniej ruchomej. W tej strategii obliczane są dwie średnie kroczące dla wolnego i szybkiego okresu czasu, a transakcja jest wykonywana, gdy nastąpi crossover. Jeśli szybka średnia krocząca przecina się powyżej wolnej średniej kroczącej, strategia umieszcza pozycję długą, w przeciwnym razie strategia jest krótka. Optymalną długość okresu dla tych średnich kroczących znajdujemy, przeprowadzając wiele testów historycznych o różnych długościach na historycznym zbiorze danych.

Na koniec uruchamiamy optymalną konfigurację dla tej strategii krzyżowania średniej ruchomej na innym zestawie danych testowych i analizujemy wyniki wydajności. Jeśli wyniki mierzone w rachunku zysków i strat (P&L) są pozytywne dla okresu testowego, możemy rozważyć tę strategię handlową jako test forward.

Aby pokazać, jak łatwo i szybko można rozpocząć korzystanie z AWS, zapewniamy wdrożenie jednym kliknięciem rozszerzalnego rozwiązania do testowania historycznego, które wykorzystuje długoterminowe przechowywanie danych Kinesis do przesyłania strumieniowego danych.

Omówienie rozwiązania

Używamy Kinesis Data Streams do przechowywania strumieniowania w czasie rzeczywistym oraz historycznych danych rynkowych. Używamy notebooków Jupyter jako naszego centralnego interfejsu do odkrywania i testowania nowych strategii handlowych. SageMaker pozwala skonfigurować notatniki Jupyter i zintegrować je z Zatwierdzenie kodu AWS do przechowywania różnych wersji strategii i udostępniania ich innym członkom zespołu.

Używamy Amazon S3 do przechowywania artefaktów modeli i wyników testów historycznych.

Dla naszych strategii handlowych tworzymy kontenery Dockera, które zawierają wymagane biblioteki do testowania historycznego i samą strategię. Kontenery te są zgodne ze strukturą kontenera SageMaker Docker w celu uruchomienia ich w SageMaker. Aby uzyskać więcej informacji o strukturze kontenerów SageMaker, zobacz Korzystanie z zestawów narzędzi szkoleniowych i wnioskowania SageMaker.

Poniższy diagram ilustruje tę architekturę.

Krok przygotowania danych uruchamiamy z notatnika SageMaker. Kopiuje to historyczne dane rynkowe do zasobnika S3.

Używamy pliki Usługa migracji danych AWS (AWS DMS) w celu załadowania danych rynkowych do strumienia danych. ten

Notatnik SageMaker łączy się ze strumieniami danych Kinesis i uruchamia algorytm strategii handlowej za pośrednictwem zadania szkoleniowego SageMaker. Algorytm wykorzystuje część danych do szkolenia, aby znaleźć optymalną konfigurację strategii.

Na koniec uruchamiamy strategię handlową przy użyciu wcześniej określonej konfiguracji na testowym zbiorze danych.

Wymagania wstępne

Przed rozpoczęciem przygotowaliśmy nasze zasoby. W tym poście używamy us-east-2 Region jako przykład.

  1. Wdróż zasoby AWS za pomocą dostarczonego Tworzenie chmury AWS szablon.
  2. W razie zamówieenia projektu Nazwa stosu, wprowadź nazwę swojego stosu.
  3. Podaj istniejącą nazwę zasobnika S3, aby przechowywać historyczne dane rynkowe.

Dane są ładowane do strumieni danych Kinesis z tego zasobnika S3. Twój wiadro musi znajdować się w tym samym regionie, w którym ustawiony jest twój stos.

  1. Zaakceptuj wszystkie wartości domyślne i wybierz Następna.
  2. Potwierdź, że AWS CloudFormation może utworzyć AWS Zarządzanie tożsamością i dostępem (IAM) zasoby z niestandardowymi nazwami.
  3. Dodaj Utwórz stos.

Tworzy to wszystkie wymagane zasoby.

Ładowanie danych do strumieni danych Kinesis

Aby wykonać ładowanie danych, wykonaj następujące czynności:

  1. Na konsoli SageMaker pod Notatnik w okienku nawigacji wybierz Instancje notebooków.
  2. Znajdź instancję notatnika AlgorithmicTradingInstance-*.
  3. Dodaj Otwórz Jupyter w tym przypadku
  4. Idź do algorithmic-trading->4_Kinesis folder i wybierz Strategia_Kinesis_EMA_HPO.pynb.

Uruchom teraz w notatniku etap przygotowania danych.

  1. Załaduj zbiór danych.

Określ istniejący zasobnik, w którym przechowywane są dane testowe. Upewnij się, że zasobnik testowy znajduje się w tym samym regionie, w którym konfigurujesz stos.

  1. Uruchom wszystkie kroki w notatniku, aż Krok 2 Przygotowanie danych.
  2. W konsoli AWS DMS wybierz Zadania migracji bazy danych.
  3. Wybierz zadanie AWS DMS dmsreplicationtask-*.
  4. Na Akcje menu, wybierz Uruchom ponownie/Wznów.

Rozpoczyna się ładowanie danych z zasobnika S3 do strumienia danych.

Poczekaj, aż zadanie replikacji pokaże status Load complete.

  1. Kontynuuj kroki w notatniku Jupyter.

Odczytywanie danych z długoterminowej retencji Kinesis

Czytamy dzienne otwarcia, najwyższe i najniższe ceny, ceny zamknięcia i wolumeny z długoterminowej retencji strumienia za pomocą AWS SDK dla Pythona (Boto3).

Chociaż nie używamy ulepszone rozłożenie (EFO) w tym poście może być wskazane, aby istniejąca aplikacja już czytała ze strumienia. W ten sposób ta aplikacja do testowania historycznego nie koliduje z istniejącą aplikacją.

Możesz zwizualizować swoje dane, jak pokazano na poniższym zrzucie ekranu.

Zdefiniuj swoją strategię handlową

W tym kroku definiujemy naszą strategię handlu crossover ze średnią ruchomą.

Zbuduj obraz Dockera

Budujemy naszą pracę backtestingu jako obraz Dockera i wciskamy go do Amazon ECR.

Optymalizacja hiperparametrów z SageMaker na danych treningowych

W przypadku strategii handlu crossover ze średnią ruchomą chcemy znaleźć optymalny szybki i wolny okres tej strategii, a my zapewniamy zakres dni do wyszukania.

Wykorzystujemy zysk i stratę (P&L) strategii jako metrykę do znalezienia zoptymalizowanych hiperparametrów.

Możesz zobaczyć, że zadanie dostrajania zalecane jest o wartości 7 i 21 dni dla szybkiego i wolnego okresu dla tej strategii handlowej, biorąc pod uwagę zestaw danych szkoleniowych.

Uruchom strategię z optymalnymi hiperparametrami na danych testowych

Teraz uruchamiamy tę strategię z optymalnymi hiperparametrami na danych testowych.

Po zakończeniu zadania wyniki wydajności są przechowywane w Amazon S3 i możesz przeglądać wskaźniki wydajności na wykresie i analizować zamówienia kupna i sprzedaży dla swojej strategii.

Wnioski

W tym poście opisaliśmy, jak korzystać z funkcji długoterminowej retencji strumieni danych Kinesis do przechowywania historycznych danych cen akcji oraz jak używać danych strumieniowych do testowania historycznego strategii handlowej za pomocą SageMaker.

Długoterminowe przechowywanie danych przesyłanych strumieniowo umożliwia korzystanie z tej samej platformy zarówno w przypadku danych w czasie rzeczywistym, jak i starszych danych przechowywanych w strumieniach danych Kinesis. Dzięki temu możesz używać tego strumienia danych do finansowych zastosowań, takich jak testowanie historyczne lub uczenie maszynowe, bez przenoszenia danych do innego magazynu danych lub pisania nowej aplikacji. Możesz również spełnić określone przepisy dotyczące przechowywania danych, w tym zgodnie z HIPAA i FedRAMP, korzystając z długoterminowego przechowywania. Aby uzyskać więcej informacji, zobacz Strumienie danych Amazon Kinesis umożliwiają przechowywanie strumienia danych nawet przez rok.

Zastrzeżenie dotyczące ryzyka

Ten post ma charakter wyłącznie edukacyjny, a wyniki handlowe w przeszłości nie gwarantują przyszłych wyników.


O autorach

Sachina Thakkara jest starszym architektem rozwiązań w Amazon Web Services, współpracującym z wiodącym globalnym integratorem systemów (GSI). Wnosi ponad 22-letnie doświadczenie jako Architekt IT oraz Konsultant Technologiczny dla dużych instytucji. Jego obszarem zainteresowania są dane i analityka. Sachin zapewnia wytyczne architektoniczne i wspiera partnera GSI w budowaniu strategicznych rozwiązań branżowych na AWS

Amogha Gaikwada jest deweloperem rozwiązań w zespole prototypowania. Specjalizuje się w uczeniu maszynowym i analityce oraz ma duże doświadczenie w opracowywaniu modeli ML w rzeczywistych środowiskach oraz integracji AI/ML i innych usług AWS z aplikacjami produkcyjnymi na dużą skalę. Przed dołączeniem do Amazon pracował jako programista, rozwijając aplikacje dla przedsiębiorstw, koncentrując się na planowaniu zasobów przedsiębiorstwa (ERP) i zarządzaniu łańcuchem dostaw (SCM). Amogh uzyskał tytuł magistra informatyki, specjalizując się w analizie Big Data i uczeniu maszynowym.

Dhiraj Thakura jest architektem rozwiązań w Amazon Web Services. Współpracuje z klientami i partnerami AWS, aby udzielać wskazówek dotyczących wdrażania, migracji i strategii chmury korporacyjnej. Jest pasjonatem technologii i lubi budować i eksperymentować w przestrzeni analitycznej i AI/ML.

Olivera Steffmanna jest architektem rozwiązań dla przedsiębiorstw w AWS z siedzibą w Nowym Jorku. Posiada ponad 18-letnie doświadczenie jako Architekt IT, Menedżer ds. Rozwoju Oprogramowania oraz Konsultant ds. Zarządzania w międzynarodowych instytucjach finansowych. Pracując jako konsultant, wykorzystał swoją rozległą wiedzę na temat Big Data, uczenia maszynowego i technologii chmurowych, aby pomóc swoim klientom w przeprowadzeniu cyfrowej transformacji. Wcześniej był szefem ds. technologii handlu komunalnego w banku inwestycyjnym poziomu XNUMX w Nowym Jorku i rozpoczął karierę we własnym startupie w Niemczech.

Źródło: https://aws.amazon.com/blogs/big-data/backtest-trading-strategies-with-amazon-kinesis-data-streams-long-term-retention-and-amazon-sagemaker/

Znak czasu:

Więcej z AWS