Budowanie algorytmicznych systemów transakcyjnych: 2 główne podejścia, testy, narzędzia

Budowanie algorytmicznych systemów transakcyjnych: 2 główne podejścia, testy, narzędzia

Odwiedzin: widoki 912
Czas czytania: 6 min



Głównymi składnikami systemu handlu algorytmicznego są narzędzia badawcze, wydajność, łatwość rozwoju, odporność i testowanie, rozdzielenie problemów, znajomość, utrzymanie, dostępność kodu źródłowego, koszty licencjonowania i dojrzałość bibliotek. Przed podjęciem decyzji o „najlepszym” narzędziu, za pomocą którego zostanie napisany automatyczny system handlu, konieczne jest zdefiniowanie wymagań:

  1. Jaka będzie częstotliwość handlu i prawdopodobny wolumen obrotu?
  2. Czy system będzie wymagał Zarządzanie ryzykiem czy moduł budowy portfela?
  3. Czy system będzie wymagał wysokiej wydajności testu historycznego?

Inwestorzy, którzy wymagają bardziej niestandardowych i złożonych systemów, mogą potrzebować C #, Matlab lub Python, ale powiedziałbym, że w przypadku pozostałych 95% traderów wystarczy oprogramowanie do handlu algorytmicznego.

1 - Oblicz w Pythonie, Matlabie, C #

W tym przypadku umiejętność programowania jest ważnym czynnikiem w tworzeniu zautomatyzowanego algorytmu strategii handlowej. Znajomość języka programowania, takiego jak Python lub R, pozwoli Ci samodzielnie stworzyć kompleksowe rozwiązanie do przechowywania danych, mechanizmu weryfikacji historycznej i systemu wykonawczego. Pozwala odkrywać strategie wyższych częstotliwości, ponieważ będziesz mieć pełną kontrolę nad swoim „stosem technologii”. Chociaż oznacza to, że możesz przetestować oprogramowanie i wyeliminować błędy, oznacza to również więcej czasu poświęconego na kodowanie infrastruktury, a mniej na wdrażanie strategii, przynajmniej we wcześniejszej części swojej kariery w algotrading.

Podstawowy przepływ pracy jest następujący:

  • Algorytmiczna strategia handlowa wprowadza dane rynkowe (historyczne lub na żywo) do programu komputerowego (testowanie wsteczne lub automatyczne wykonanie).
  • Następnie program przesyła zamówienia do brokera za pośrednictwem interfejsu API i odbiera powiadomienia o statusie zamówienia z powrotem od brokera.

MATLAB i Python to moje ulubione platformy do testowania wstecznego. Ma bardzo wszechstronny i przyjazny dla użytkownika interfejs do tworzenia i debugowania programów oraz szeroką gamę zestawów narzędzi, które obejmują prawie każdą tajemną matematyczną lub obliczeniową technikę, którą prawdopodobnie napotkasz podczas opracowywania strategii handlowej.

Import of historical data from Yahoo Finance to Python
Zdjęcie: import danych historycznych z Yahoo Finance do Python
The process of algorithmic trading
Zdjęcie: proces handlu algorytmicznego

2 - Oprogramowanie do handlu algorytmicznego. Brak umiejętności kodowania

Drugie podejście to narzędzia algorytmiczne, takie jak Multicharts, StrategyQuant lub R Trader Strategy Builder (darmowy i łatwy w użyciu, oparty na chmurze) i wiele innych.

Czasy, w których handel algorytmiczny był wdrażany tylko przez profesjonalistów, już minęły. Nie ma potrzeby poświęcania godzin na naukę języka C #, gdy można kodować prawie wszystkie systemy i strategie StrategyQuant, Multicharts lub R Trader Builder Builder. Z naszego doświadczenia wynika, że ​​niektórzy inwestorzy / programiści chcą podążać długą drogą do celu często pod pozorem technicznej wyższości, zaufaj nam, większość zaawansowanego kodowania nie jest wymagana w przypadku średniej strategii handlu algorytmicznego. Tworzenie interfejsów API lub dostosowywanie wszystkiego za pomocą MetaTrader może być bardzo marnotrawstwem, szczególnie jeśli zagłębisz się w szczegóły techniczne zamiast tworzyć wartość.

Wszystkie platformy mają swoje zalety i wady, dla nas, R Trader Strategy Builder to wewnętrzny, łatwy w użyciu moduł, który umożliwia handlowcom detalicznym projektowanie, testowanie i wdrażanie algorytmicznych strategii handlowych bez znajomości języków programowania.

Platforma handlowa R Trader ma prostszy sposób na zakończenie tradycyjnego handlu typu „wskaż i kliknij”. Nasz prosty w obsłudze interfejs, przeznaczony zarówno dla doświadczonych traderów, jak i nowicjuszy, pozwala zautomatyzować strategie handlowe w ciągu kilku minut. Bez kodowania i bez problemów - będziesz gotowy do pracy w mgnieniu oka.

Backtesting. Strategy Wizard in R Trader Strategy Builder.
Zdjęcie: testowanie wsteczne. Kreator strategii w programie R Trader Builder.

Testowanie i ocena systemów transakcyjnych

Badania dotyczą oceny skuteczności strategii w stosunku do danych historycznych. Proces oceny strategii handlowej na podstawie wcześniejszych danych rynkowych jest znany jako testowanie wsteczne.

Handel algorytmiczny wyróżnia się na tle innych rodzajów klas inwestycyjnych, ponieważ możemy w bardziej wiarygodny sposób przedstawić oczekiwania dotyczące przyszłych wyników z wcześniejszych wyników. Mówiąc najprościej, weryfikacja historyczna jest przeprowadzana przez wystawienie konkretnego algorytmu strategii na strumień historycznych danych cenowych, co prowadzi do zestawu sygnałów transakcyjnych. Każda transakcja będzie wiązała się z zyskiem lub stratą. Nagromadzenie tego zysku / straty podczas weryfikacji strategii doprowadzi do całkowitego zysku i straty.

Jakie są kluczowe powody, dla których strategia testowania algorytmów jest testowana?

Sączenie

naszym celem na początkowym etapie badań jest odfiltrowanie każdej strategii, która nie spełnia określonych kryteriów. Testowanie wsteczne zapewnia nam inny mechanizm filtracji, ponieważ możemy wyeliminować strategie, które nie spełniają naszych potrzeb w zakresie wydajności.

Modelowanie

Testowanie wsteczne pozwala nam (bezpiecznie!) Testować nowe modele określonych warunków rynkowych.

W próbie i poza próbką

Podczas testowania pomysłu na danych historycznych dobrze jest zarezerwować okres danych historycznych do celów testowych. Początkowe dane historyczne, na których pomysł jest testowany i optymalizowany, nazywane są danymi z próby. Zestaw danych, który został zarezerwowany, jest znany jako dane poza próbą. Ta konfiguracja jest ważną częścią procesu oceny, ponieważ zapewnia sposób przetestowania pomysłu na danych, które nie były składnikiem modelu optymalizacji. W rezultacie dane nieobjęte próbą w żaden sposób nie wpłyną na ten pomysł, a handlowcy będą mogli określić, jak system może sobie radzić z nowymi danymi, tj. W prawdziwym handlu.

Optymalizacja algorytmicznej strategii handlowej

Chociaż optymalizacja strategii jest obarczona błędami, testowanie wsteczne pozwala nam zwiększyć wydajność strategii poprzez modyfikację wartości parametrów związanych z tą strategią i ponowne obliczenie jej wydajności. Przeregulowanie (dopasowanie krzywej) jest poważnym problemem we wszystkich obszarach związanych z eksploracją danych i należy zachować ostrożność przy stosowaniu prawidłowych zestawów sprawdzania poprawności i testów. Z tego powodu można zaimplementować różne metody, takie jak ponowne testowanie przy różnych ustawieniach, symulacje Monte-Carlo, macierz Walk-Forward, optymalizacja Walk-Forward, wiele okresów poza próbą.

Wczesne testy wydajności

Handel demonstracyjny lub papierowy zapewnia handlowcom kolejny zestaw danych pozapróbowych, na podstawie których można ocenić system. Forwardowe testy wydajności są symulacją faktycznego handlu i obejmują przestrzeganie logiki systemu na rynku na żywo. Ważnym aspektem przyszłych testów wydajności jest dokładne przestrzeganie logiki systemu; w przeciwnym razie dokładna ocena tego etapu procesu staje się trudna, jeśli nie niemożliwa. Wielu brokerów, a także RoboMarkets, oferuje symulowane konto handlowe, na którym można umieszczać transakcje i obliczać odpowiedni zysk i stratę. Korzystanie z konta handlowego w wersji demonstracyjnej może stworzyć pół-realistyczne środowisko, w którym można ćwiczyć handel i dalej oceniać system.

Picture: backtesting. A chart in Python.
Zdjęcie: testowanie wsteczne. Wykres w Pythonie.
Backtesting. Historical trades in R Trader Strategy Builder.
Zdjęcie: testowanie wsteczne. Historyczne transakcje w R Trader Strategy Builder.

Na koniec chciałbym omówić narzędzia, które będą pomocne w tej dziedzinie.

Import

Oprogramowanie do badań i automatycznego handlu

Konstruktor strategii Excel, R Trader (https://rtrader.umstel.com - wolne oprogramowanie), StrategyQuant (opłata licencyjna), MultiCharts (opłata licencyjna), TradeStation (opłata licencyjna), Wealth-lab (opłata licencyjna).

Kod

Matlab, Python, R, C #

Dane

  1. Dane dotyczące nastrojów społecznościowych (z Twittera i innych mediów społecznościowych, patrz ISentium, TickerTags)
  2. Dane pozyskiwane z tłumu (patrz Szacowanie)
  3. Dane behawioralne (patrz Cabot Research)
  4. Zdjęcia satelitarne i lotnicze (patrz Orbital Insight)
  5. Dane behawioralne konsumentów (patrz Lojalność wobec marki)
  6. Nietradycyjne zasoby online (patrz Knowsis)
  7. OTAS (dane techniczne)

Inni dostawcy

TIM Group, Discern, Essentia, Kensho, RavenPack, SocialMediaAnalytics, Ayasdi, TheySay Analytics, Quid, Rage Frameworks, Dataminr.

Książki (po angielsku)

  1. Handel ilościowy: jak zbudować własny biznes handlu algorytmicznego - Ernest Chan
  2. Handel algorytmiczny: zwycięskie strategie i ich uzasadnienie - Ernest Chan
  3. Handel maszynami: Wdrażanie algorytmów komputerowych w celu podboju rynków - Ernest Chan
  4. Handel algorytmiczny i DMA: Wprowadzenie do strategii handlu bezpośredniego dostępu - Barry Johnson
  5. Handel i wymiana: mikrostruktura rynku dla praktyków - Larry Harris

1. arXiv http://arxiv.org/archive/q-fin
2. SSRN https://www.ssrn.com/en/
3. Dziennik strategii inwestycyjnych https://www.risk.net/journal-of-investment-strategies
4. Journal of Computational Finance https://www.risk.net/journal-of-computational-finance
5. Finanse matematyczne https://onlinelibrary.wiley.com/journal/14679965

Podsumowanie

Jak widać, istnieją różne podejścia do tworzenia algorytmicznych strategii handlowych. Możesz wybrać dowolny, który odpowiada Twojemu poziomowi wiedzy i możliwościom. Także testy przeszłości i dalszy rozwój, po którym tylko my możemy przejść do praktyki.

Jeśli masz jakieś pytania, chętnie odpowiem na nie w komentarzach poniżej.

Otwórz konto handlowe




Komentarze

Poprzedni artykuł

Tydzień na rynku (01/13 - 01/19): statystyki i decyzje banków centralnych

Nowy tydzień stycznia wygląda całkiem normalnie. Mamy statystyki, politykę, a także kilka decyzji monetarnych. Wydaje się, że po świętach Bożego Narodzenia i Nowego Roku globalne gospodarki i rynki kapitałowe działają na pełną skalę.

Następny artykuł

3 zapasy do kupienia w 2020 r .: Delta Air Lines, HP, Morgan Stanley

Trwa 12-letni cykl wzrostu gospodarki USA. To najdłuższy okres bez kryzysu. Początek 2020 r. Wciąż kibicuje inwestorom, akcje wciąż wznawiają rekordowe maksima. Ci, którzy kupili je wcześniej, stają się szczęśliwsi.