Monday 13 November 2017

Machine Learning Options Trading


Ten wpis pokaże szczegółowo to, co zrobiłem, aby dokonać transakcji z dużą częstotliwością w latach od 2009 do 2010 r. W związku z tym, że byłem całkowicie niezależny i nie prowadziłem już swojego programu, chętnie odpowiem wszystkim moim transakcjom głównie na kontrakty futures Russel 2000 i DAX. Kluczem do mojego sukcesu, jak sądzę, nie było w wyrafinowanym równaniu finansowym, a raczej w ogólnym algorytmie projektowania, które łączyło wiele prostych elementów i wykorzystywało naukę maszyn do optymalizacji pod kątem maksymalnej rentowności. Wygrałeś nie potrzebując tu żadnych zaawansowanych terminologii, ponieważ kiedy Konfiguracja mojego programu była oparta na intuicji Andrew Ng s niesamowity kurs nauki maszyn nie był jeszcze dostępny - btw jeśli klikniesz ten link zostanie przeniesiony do mojego obecnego projektu CourseTalk, przegląd witryny MOOCs. First, chcę tylko że mój sukces nie był po prostu wynikiem szczęścia Mój program robił 1000-4000 transakcji dziennie pół długie, pół krótkie i nigdy nie dostał się na pozycje o więcej niż kilka umów w czasie T jego los oznaczał, że szczęście losowe z jednego konkretnego handlu wyniosło dość szybko Wynik był nigdy nie stracił więcej niż 2000 w jednym dniu i nigdy nie miał miesiąca, który stracił. EDIT Te liczby są po wypłaceniu prowizji. I tutaj jest wykres, aby dać poczucie codziennej odmiany Uwaga, że ​​wyklucza to przez ostatnie 7 miesięcy, ponieważ - jak postacie przestały wchodzić - straciłem moją motywację, aby wejść do nich. Moje tło handlowe. Prior do założenia mojego zautomatyzowanego programu handlowego I d miał 2 lata doświadczenia jako handel ręczny dzień To było w 2001 roku - to były wczesne dni handlu elektronicznego i nie było możliwości dla skalperów, aby zarabiać pieniądze Mogę tylko opisać to, co robiłem jak na przykład grając w gry wideo z domniemaną krawędzią Udane osiągnięcie oznacza szybkie, bycie zdyscyplinowanym i posiadanie dobrego intuicyjnego rozpoznawania wzorców, dzięki któremu mogłem zrobić około 250 tys., spłacić moje pożyczki studenckie i pieniądze pozostawione przez firmę Win. Over w ciągu najbliższych pięciu lat chciałbym uruchomić dwa starty, podnosząc umiejętności programowania po drodze Nie byłoby aż do końca 2008 roku, że wrócę do handlu Z pieniędzmi na niskim poziomie ze sprzedaży mojego pierwszego uruchomienia, handel oferował nadzieje na szybką gotówkę, a ja zorientowałem się w moim następnym ruchu. W 2008 r. byłem ręcznie na rynku terminowym na futures przy użyciu oprogramowania o nazwie T4. Chciałbym mieć jakieś specjalne klawisze dostępu do zamówień, więc po odkryciu T4 miałem interfejs API, podjęłam wyzwanie nauki C języka programowania wymagane do korzystania z interfejsu API i poszedłem naprzód i zbudowałem się kilka klawiszy skrótu. After coraz moje stopy mokre z API wkrótce miał większe aspiracje chciałem nauczyć komputer do handlu dla mnie API dostarczył zarówno strumień dane rynkowe i prosty sposób wysyłania zamówień na wymianę - wszystko, co musiałem zrobić, to stworzenie logiki w środku. Poniżej znajduje się zeskanowanie okna handlowego T4 Co było fajne, kiedy dostałem program do pracy, byłem w stanie uważaj na handel komputerowy na tym dokładnie tym samym interfejsu Oglądanie prawdziwych zamówień, które pojawiają się i kończąc samymi pieniędzmi, było zarówno emocjonujące, jak i przerażające. Konstrukcja mojego algorytmu. Początkowo miałem na celu ustawienie takiego systemu, współ nfident I d zarabiać pieniądze przed dokonaniem jakichkolwiek transakcji na żywo Aby to osiągnąć potrzebowałem zbudować ramę symulacji handlowej, która - tak dokładnie jak to możliwe - symulować transakcje na żywo. Gdy transakcja na żywo wymaga przetworzenia, aktualizacje rynkowe przesyłane strumieniowo przez interfejs API, tryb symulacji wymagane aktualizacje rynku z pliku danych Aby zebrać te dane, skonfiguruj pierwszą wersję mojego programu, aby po prostu połączyć się z interfejsem API i zapisywać aktualizacje rynkowe z znacznikami czasu. Skończyłem korzystanie z ostatnich danych rynkowych na 4 tygodnie w celu wyszukania i testowania mojego systemu na. Z podstawowej ramie na miejscu wciąż miałem zadanie, aby dowiedzieć się, jak zarabiać na handlowym systemie Jak się okazuje, mój algorytm rozdzieliłby się na dwa odrębne składniki, które zbadam z kolei. Dokonując zmian cen i osiągając zyskiem handel. Przedyżanie ruchów cen. Prawdopodobnie oczywistym składnikiem jakiegokolwiek systemu handlowego jest możliwość przewidzenia, gdzie ceny będą się przemieszczać I moje nie było wyjątkiem Wyznaczałem obecny cena jako średnia z oferty wewnętrznej i oferty wewnętrznej, a ja wyznaczam cel przewidywania, gdzie cena będzie w ciągu najbliższych 10 sekund Mój algorytm musiałby wymyślić ten przewidywany moment przez moment w ciągu dnia handlowego. Optymalizacja produkcji wskaźniki. Stworzyłem kilka wskaźników, które okazały się mieć znaczącą zdolność do przewidywania krótkoterminowych zmian cen Każdy wskaźnik wytworzył liczbę, która była dodatnia lub ujemna Wskaźnik był użyteczny, gdyby częściej niż nie dodatnia liczba odpowiadała wzrastającym rynkowi a liczba ujemna odpowiadała rynkowi zejściem. Mój system pozwalał mi szybko określić, ile wskaźnika predykcyjnego miał wskaźnik, więc mogłem eksperymentować z wieloma różnymi wskaźnikami, aby zobaczyć, co działało Wiele wskaźników miało zmienne w formułach że je wytworzyłem i udało mi się znaleźć optymalne wartości dla tych zmiennych, wykonując porównania wyników osiągniętych z różnymi wartościami. dicatory, które były najbardziej przydatne były stosunkowo proste i opierały się na ostatnich wydarzeniach na rynku byłem obrotu, a także rynków skorelowanych papierów wartościowych. Dokładne prognozy zmian cen. Wskaźniki, które po prostu przewidywały wzrost lub spadek cen nie było wystarczająco dużo Musiałem dokładnie wiedzieć, jak wiele przewidywanych ruchów cenowych przez każdą możliwą wartość każdego wskaźnika potrzebowałem formuły, która umożliwiłaby przeliczanie wartości wskaźnika na predykcję cen. Aby to osiągnąć, śledziłem prognozowane zmiany cen w 50 wiadrach, które zależały od zakresu wartość wskaźnika spadła To wydało unikalne prognozy dla każdego wiadra, który byłem w stanie wydrukować w programie Excel Jak widać oczekiwaną zmianę ceny wzrasta wraz ze wzrostem wskaźnika. Na wykresie mogłem utworzyć formułę aby dopasować się do krzywej Na początku wykonałem tą krzywą ręcznie, ale wkrótce napisałem jakiś kod, aby zautomatyzować ten proces. Zwróć uwagę, że nie wszystkie krzywe wskaźników miały takie same hape Zwróć uwagę, że wiadra były rozłożone logicznie, aby rozłożyć punkty danych równomiernie Na koniec zwróć uwagę, że ujemne wartości wskaźników i ich odpowiadające im prognozy spadku cen zostały odwrócone i połączone z wartościami dodatnimi Mój algorytm traktował w górę iw dół dokładnie te same wskaźniki dla pojedynczego że każdy wskaźnik nie był całkowicie niezależny, nie mogłem po prostu podsumować wszystkich przewidywań, które każdy wskaźnik wykonał indywidualnie. Kluczem było ustalenie dodatkowej predykcyjnej wartości, którą każdy wskaźnik wykraczał poza to, czego się spodziewano nie było trudne do wdrożenia, ale oznaczało to, że jeśli byłam krzywa dopasowana do wielu wskaźników w tym samym czasie musiałam ostrożnie zmieniać, to mogłoby to wpłynąć na przewidywania innego. Aby dopasować wszystkie wskaźniki w tym samym czasie, I skonfiguruj optymalizator, aby przejść krok 30 w stronę nowych krzywych predykcji z każdym przejściem. Z tym 30 skoku znalazłem że krzywe predykcji ustabilizują się w ciągu kilku przejazdów. Z każdym wskaźnikiem, który teraz daje nam dodatkową przewidywaną cenę, można po prostu dodać je do pojedynczego przewidywania, gdzie rynek będzie wynosić 10 sekund. Dlaczego prognozowanie cen nie wystarczy? Można by pomyśleć, że z tej przewagi na rynku byłem złoty Ale trzeba pamiętać, że rynek składa się z ofert i ofert - to nie tylko jedna cena rynkowa Sukces w handlu wysokimi częstotliwościami sprowadza się do uzyskania dobrych cen i to nie takie proste. Następujące czynniki powodują, że tworzenie zyskownego systemu jest trudne. Z każdym handlem musiałem płacić prowizje zarówno dla mojego maklera, jak i wymiany. Różnica między najwyższą ofertą a najniższą ofertą oznacza, że ​​jeśli miałbym po prostu kupić sprzedaj losowo I d być tracąc mnóstwo pieniędzy. Większości wolumenu rynku były inne boty, które tylko przeprowadzić handel ze mną, jeśli myślą, że mieli jakieś statystyczne krawędzi. Sekcja oferty nie gwarantuje, że mogłaby go kupić czas moje zamówienie kupna dotarła do wymiany było bardzo możliwe, że oferta ta została odwołana. Jak mały gracz na rynku nie było sposobu, w jaki mogłbym konkurować na szybkość sam. Budując pełną symulację handlu. Więc miałem ramy, które pozwoliły mi do testów wstecznych i zoptymalizowania wskaźników Ale musiałem wykraczać poza to - potrzebowałem ramy, które umożliwiłyby mi sprawdzenie wyników i zoptymalizowanie pełnego systemu handlowego, w którym wysyłałem zamówienia i dostając się do pozycji W tym przypadku muszę optymalizować łączny koszt PL i do pewnego stopnia przeciętnego PL na handel. Byłoby to trudniejsze i w pewnym sensie niemożliwe do dokładnego modelowania, ale zrobiłem tak, jak tylko potrafię. Oto niektóre z problemów, z którymi musiałem się zmierzyć. Kiedy zlecenie zostało wysłane na rynek w symulacji Musiałem modelować czas opóźnienia Fakt, że mój system widział ofertę, nie oznaczałby, że może ją kupić od razu System będzie wysyłał zamówienie, poczekaj około 20 milisekund, a potem tylko wtedy, gdy oferta nadal była tam uznawana za wykonany handel Było to niedokładne, ponieważ rzeczywisty czas opóźnienia był niespójny i nieudokumentowany. Kiedy składałem oferty lub oferty, musiałem przyjrzeć się strumieniom transakcji handlowej dostarczanym przez interfejs API i używać tych, aby ocenić, kiedy moje zamówienie zostanie wykonane. Aby to zrobić, musiałem śledzić pozycję mojego zamówienia w kolejce To sa pierwszy w pierwszym systemie Poza tym nie mogłem tego zrobić idealnie, ale zrobiłem najlepsze przybliżenie. Aby doprecyzować moje wykonanie zamówienia symulacji, co zrobiłem zabierał moje pliki dziennika z żyć transakcją za pośrednictwem interfejsu API i porównać je z plikami rejestracyjnymi wytworzonymi przez symulowany handel z tego samego okresu czasu byłem w stanie uzyskać moją symulację do tego stopnia, że ​​to było dość dokładne i dla części, które nie były w stanie dokładnie dokładnie modelować co najmniej wyniki, które były statystycznie podobne w metrykach myślałem, że były ważne. Making zyskiem trades. With modelu zamówienia symulacji w miejscu można teraz wysłać zamówienia w trybie symulacji i zobaczyć symulowany PL Ale jak m system y wiedzą, kiedy i gdzie kupić i sprzedawać. Prognozy dotyczące przesunięć cen były punktem wyjścia, ale nie całą historię Co zrobiłem stworzyłem system punktacji dla każdego z 5 poziomów cen w ofercie i ofercie Obejmują one jeden poziom powyżej wewnątrz stawka na zlecenie kupna i jeden poziom poniżej oferty wewnętrznej dla zlecenia sprzedaży. Jeśli wynik na jakimkolwiek poziomie cenowym był powyżej określonego progu, co oznaczałoby, że mój system powinien mieć aktywną ofertę ofertową - poniżej progu, to wszystkie aktywne zamówienia powinny być anulowane W oparciu o to nie było rzadkością, że mój system będzie błyskawicznie licytować na rynku, a następnie natychmiast go anulować Chociaż starałem się zminimalizować to, jak to irytujące jak heck dla każdego, kto patrzy na ekran z ludzkimi oczami - w tym me. The oceny na poziomie ceny zostały obliczone na podstawie następujących czynników. Prognoza przeniesienia ceny, o której mówiliśmy wcześniej. Poziom cen, o którym mowa Poziom wewnętrzny oznacza wyższe oczekiwania na przesunięcie ceny. Liczba kontraktów przed moim kolejność w kolejce Mniej było lepiej Liczbę kontraktów za moim zamówieniem w kolejce Więcej było lepsze. W zasadzie czynniki te służyły do ​​identyfikowania bezpiecznych miejsc oferowania oferty Przewidywanie przeniesienia ceny było niewystarczające, ponieważ nie uwzględniało to faktu, podczas składania oferty nie zostałem automatycznie napełniony - napełniłem tylko wtedy, gdy ktoś mi sprzedał. Rzeczywistość polegała na tym, że sam fakt sprzedania mi kogoś za pewną cenę zmienił statystyczne szanse handlu. Zmienne stosowane w tym kroku wszystkie zostały zoptymalizowane To zostało zrobione w dokładnie taki sam sposób, jak zoptymalizowane zmienne w wskaźnikach przesunięcia cen, z wyjątkiem tego, że optymalizowałem dla dolnej linii P L. W moim ignorowanym programie. Kiedy handel ludźmi często mamy potężne emocje i uprzedzenia, które mogą prowadzić do mniej niż optymalnych decyzji Jasne, że nie chcę kodyfikować tych uprzedzeń Poniżej kilka czynników, które mój system zignorował. Cena, która została wprowadzona - W biurze handlowym jest to dość powszechne aby usłyszeć rozmowę o cenie, w jakiej ktoś jest długi lub krótki, jak gdyby miało to wpływać na przyszłe podejmowanie decyzji Chociaż to ma pewną ważność w ramach strategii redukcji ryzyka, to naprawdę nie ma to wpływu na przyszły przebieg wydarzeń na rynku Dlatego moje program całkowicie zignorował te informacje To jest to samo co ignorowanie kosztów pogrążonych. Mijając krótko i wychodząc z długiej pozycji - zazwyczaj przedsiębiorca miałby inne kryteria, które decydują, gdzie sprzedać długą pozycję, a gdzie się uda. Jednak z mojego punktu widzenia algorytmów nie ma powodu, aby dokonać rozróżnienia Jeśli mój algorytm spodziewał się sprzedaży na dół był dobrym pomysłem, niezależnie od tego, czy był on obecnie długi, krótki lub płaski. Podwójna strategia - jest to wspólna strategia, w której handlowcy będą kupować więcej akcji w wydarzeniu że nie ma oryginalnego handlu się z nimi To skutkuje średnią ceną zakupu jest niższa, a to oznacza, kiedy lub jeśli towar odwraca się wokół Ciebie będzie się, aby twój mon nie w moim czasie tak naprawdę jest straszna strategia, chyba że będziesz ponownie Warren Buffet Będziesz znowu myślał, że dobrze sobie radzisz, ponieważ większość twoich transakcji będzie zwycięzcami Problem polega na tym, że stracisz strach Duży efekt jest taki sprawia, że ​​trudno jest ocenić, czy rzeczywiście masz przewagę na rynku czy po prostu czujesz się szczęśliwy Możliwość monitorowania i potwierdzania, że ​​mój program rzeczywiście miał przewagę był ważnym celem. Ponieważ mój algorytm podejmował decyzje w ten sam sposób, niezależnie od tego, gdzie to wszedł w handel lub jeśli to było obecnie długie lub krótkie od czasu do czasu siedzieć i wziąć kilka dużych transakcji, oprócz dużych wygranych transakcji, ale nie należy myśleć, nie było żadnych zarządzania ryzykiem. Aby zarządzać ryzykiem I egzekwowane maksymalnie pozycja wielkości 2 kontraktów naraz, od czasu do czasu spotykana w dużych wolnych dniach miałem również maksymalną dzienną stratę, aby zabezpieczyć się przed nieoczekiwanymi warunkami rynkowymi lub błędem w moim oprogramowaniu Te limity zostały wymuszone w moim bu bu t także w backend przez mojego pośrednika Jak to się stało nigdy nie napotkanych żadnych znaczących problems. Running algorytmu. Od chwili zacząłem pracować nad moim programem to zajęło mi około 6 miesięcy, zanim dostałem go do punktu rentowności i zaczęło go uruchomić żyć Chociaż być uczciwy znaczna ilość czasu to nauka nowego języka programowania Podczas pracy nad ulepszeniem programu widziałem większe zyski na najbliższe cztery miesiące. W każdym tygodniu będę przekwalifikował mój system w oparciu o poprzednie 4 tygodnie warte dane odkryłem, że uderzyło to we właściwą równowagę między pozyskaniem najnowszych tendencji zachowań na rynku a zapewnieniem mojego algorytmu miało wystarczającą ilość danych do ustalenia znaczących wzorców Ponieważ szkolenie zaczęło coraz więcej, rozdzieliłem je tak, że mogło być ono wykonane przez 8 wirtualnych maszyn używających amazonu EC2 Wyniki były następnie scalane na mojej maszynie lokalnej. Najwyższym punktem mojego handlu był październik 2009, kiedy to zrobiłem prawie 100 tys. Po tym czasie kontynuowałem spędzanie kolejnych czterech miesięcy t aby poprawić mój program pomimo spadku zysku każdego miesiąca Niestety na tym punkcie przypuszczam, że d zrealizowałem wszystkie moje najlepsze pomysły, ponieważ nic próciło mi się nie pomogło wiele. Z frustracją nie jest w stanie poprawić i nie mieć poczucia wzrostu I zacząłem myśleć o nowym kierunku, wysłałem e-maili do sześciu różnych firm handlowych o wysokiej częstotliwości, aby sprawdzić, czy są zainteresowani zakupem mojego oprogramowania i zatrudnianiem mnie do pracy dla nich Nikt nie odpowiedział, miałem nowe pomysły na start, na które chciałem pracować, więc nigdy nie podążałem za nim. UPDATE - Opublikowałem to na Hacker News i przyciągnęło mnóstwo uwagi Chcę tylko powiedzieć, że nie zalecam kogoś, kto próbuje zrobić coś takiego teraz Teraz potrzebujesz zespołu naprawdę inteligentnych ludzi z wieloma doświadczeniami mieć nadzieję na współzawodnictwo Nawet jeśli to robię, uważam, że bardzo rzadko zdarzało się, że jednostki osiągnęły sukces, chociaż słyszałem o innych. Na górze strony znajduje się komentarz, który wspomina manipulowanie sta tistics i odnosi się do mnie jako inwestora detalicznego, który z entuzjazmem chętnie wybiera To raczej nieszczęśliwy komentarz, który po prostu nie jest oparty na rzeczywistości Ustawienie tego na bok jest interesujące komentarze. UPDATE 2 - Znalazłem dalsze odpowiedzi na często zadawane pytania, które odpowiadają kilka typowych pytań, jakie otrzymałem od podmiotów gospodarczych na tym stanowisku. Termin statystyczny arbitraż stat-arb obejmuje wiele strategii inwestycyjnych, które zazwyczaj mają na celu wykorzystanie statystycznego stanu równowagi między dwoma lub większą liczbą papierów wartościowych. Głównym zadaniem jest to, że wszelkie rozbieżności z równowagą jest skutkiem tymczasowym i że zakłady powinny zostać umieszczone na procesie wracającym do jego równowagi. Głównym zastrzeżeniem strategii typu handlu stat-arb jest to, że gdy rozbieżność z równowagą rośnie, handel staje się bardziej pożądany, jednak w pewnym momencie rozbieżność rośnie tak duża, że ​​trzeba przyznać, że związek równowagi już nie istnieje model został zerwany Naturalnie jest pożądane do oszacowania mocy narzędzi statystycznych stosowanych do określenia tych związków oraz do zbadania czasu trwania obserwowanej równowagi z próbki. Na tym stanowisku zbada się moc testów statystycznych w odniesieniu do handlu parami dla następujących testów statystycznych ADF, BVR , HURST, PP, PGFF, JO-T i JO-E. Główną zasadą jest to, że dla dwóch zasobów i tworzą one stacjonarne, a z definicji oznacza średnią parę odwracającą, jeśli następujące równanie posiada. Jeśli jest pomiędzy i wtedy, - suma jest współczynnikiem średniej rewersji Aby sprawdzić, czy jest to test jednostkowy jednostki, czy seria zawiera jednostkę jednostkową, czy nie jest odpowiednia dla par handlu? Istnieje wiele testów podstawowych jednostek, z których każda działa inny test na proces resztkowy Można by pokusić się w celu oszacowania modelu szczątkowego AR1 i sprawdzić, czy konwencjonalna metoda regresji liniowej oblicza standardowy współczynnik t. Jak jednak wykazali Dicky i Fuller 1979, t-ratio nie jest zgodny z rozkładem t, dlatego nie są wymagane testy istotności, znane jako testy korelacji jednostkowych. W przypadku każdego modelu występują różnice przy ustalaniu rozmiaru okna treningowego, zbyt długie okno i model może zawierać nieistotny danych i powolne dostosowywanie się do najnowszych wydarzeń, zbyt krótkie okno, a model reaguje jedynie na ostatnie wydarzenia i szybko zapomina o przeszłych wydarzeniach. To zerwanie jest problematyczne w testach współzależności, zostało to wykazane w Clegg, M w styczniu 2017 r. uporczywość współbieżności w parach handlowych, że w przypadku stałego rozmiaru okna moc większości testów korelacji jednostkowych zmniejsza się, jak ma tendencję do 1 od dołu, dla 250 punktów danych z zaporą testów współ współzależności wykryje jedynie współdziałanie mniej niż 25 czasowo. Intuicyjnie to ma sens, im wolniejszy jest proces, tym więcej punktów danych będzie potrzebne, aby zobaczyć odwrócenie on bazuje na procesie, jednak nie jest wymagane, aby pomyślne handel par, że wszystkie współzależne pary są identyfikowane jako takie zmienna moc własności testów podstawowych jednostek jest w znacznej mierze nietrafne. Ciekawe jest to, że fałszywie dodatnia stopa, więc pary identyfikowane jako średnie cofając się, gdy nie są, i jak trwałe są wyniki. Zbudować 1000 wspólnych serii czasowych z równomiernie rozłożonymi w zestawie, a w zestawie według Clegg jest to podobne do typów pary zapasów napotkanych w rzeczywistości Powtarzaj to za różne serie czasu i test, aby sprawdzić, ile serii czasowych zostało prawidłowo sklasyfikowanych jako koindententne odwrócenie średnie, przy użyciu różnych testów dla różnych wartości pValues. W większości testów PP i PGFF przewyższają inne metody Gdy proces był mocno zwracany przy mniej niż 0 85 testy PP, PGFF, JO-E i JO-T prawidłowo zidentyfikowały proces jako współbieżność znoszący ponad 75 czasu w pValue 0 01 W przypadku niektórych wątków r odwracanie par z większą niż 0 95 wyników testów statystycznych jest niepożądane z zaledwie 250 punktami danych. Warto pamiętać, że 250 punktów danych jest przybliżoną liczbą dni handlowych w roku, a może wskazuje, ile potrzebne są historyczne dane w strategiach handlowych handlu towarami. Fałszywe testy pozytywne. Po następującej procedurze przedstawionej dla testu dokładności, ale wybrano w zestawie generowanie szeregów czasowych, które nie są współzależne Sprawdź, jaki procent ścieżek został fałszywie zgłoszony jako współbieżność, zintegrowany średni zwrot. Nigdy nie widziałem tego wykresu w książce tekstowej i byłem zaskoczony wynikami, zarówno HURST, jak i BVR zgłaszają więcej fałszywych alarmów jako wzrostów Im bardziej proces ten wybucha, tym bardziej prawdopodobne jest, że test wykazywał fałszywe pozytywne. inne testy zachowują się w rozsądny sposób z kilkoma fałszywymi pozytywami. Ta część samouczka na temat algorytmu NEAT wyjaśnia, jak genomy są przecinane w sposób znaczący, podtrzymując informację topologiczną a jak genom grupy specjalizującej się w gatunkach można używać do ochrony słabych genom z nowymi informacjami topologicznymi przed przedwcześnie wyeliminowanymi z puli genów, zanim ich przestrzeń wagi zostanie zoptymalizowana. Pierwsza część tego poradnika znajduje się tutaj. Numery innowacji. Part 1 wykazało dwie mutacje, mutację mutacji i mutacji węzłów, które dodawały nowe geny do genomu Za każdym razem, gdy nowy gen jest tworzony poprzez innowację topologiczną, liczba indykatywna na skalę globalną jest zwiększana i przypisywana do tego genu. śledzenie historycznego pochodzenia każdego genu Jeśli dwa geny mają ten sam numer innowacyjności, muszą one mieć tę samą topologię, chociaż waga może być różna Jest to wykorzystywane podczas przechodzenia przez gen. Genome Crossover Mating. Genomes crossover przyjmuje dwa macierzyste genomy pozwalają nazywać je A i B i tworzy nowy genom pozwala nazwać dziecko, które ma najsilniejsze geny z A i B kopiowanie dowolnej struktury topologicznej w trakcie genu genów zwrotnych z obu genomów wyznacza się za pomocą ich numeru innowacyjności Dla każdej liczby innowacji wybiera się gen i wstawia do genomu dziecku gen, jeśli oba genomy rodzicielskie są takie same, to gen losowo wybrany z jednego z rodziców z równym prawdopodobieństwem Jeśli numer innowacji jest obecny tylko u jednego z rodziców, to jest on nazywany rozłącznym lub nadmiarowym genem i stanowi innowację topologiczną, jest też wstawiany do potomka. Następny obraz przedstawia proces krzyżowania dla dwa genomy o tej samej kondycji fizycznej. Specjalizacja pobiera wszystkie genomy w danej puli genomów i próbuje je podzielić na odrębne grupy znane jako gatunki Każdy genom w każdym gatunku będzie miał podobne cechy. Potrzebny jest sposób pomiaru podobieństwa między dwoma genomami, jeśli dwa genomy są podobne są z tych samych gatunków Naturalnym środkiem do użycia byłoby suma ważona liczby rozbitych genów nadmiarowych reprezentujących ng różnic topologicznych i różnicy w gramatach pomiędzy dopasowanymi genami Jeśli suma ważona jest poniżej pewnego progu, wtedy genomy są tego samego gatunku. Zaletą dzielenia genomów na gatunki jest to, że podczas etapu ewolucji genetycznej, gdzie geny o niskiej kondycji są wyrzucane usunięty całkowicie z puli genomów, a nie mając każdego genomu walczyć o to miejsce wobec każdego innego genomu w całej puli genomowej, możemy walczyć o to miejsce przeciwko genomom tego samego gatunku W ten sposób gatunki, które tworzą się z nowej innowacji topologicznej które mogą nie mieć dużej kondycji, ale z powodu braku jej wagi zoptymalizowane będą przetrwać selektywne. Summary całego procesu. Zbioru puli genomu z n losowych genomes. Take każdego genomu i zastosować do symulacji problemu i obliczyć genom fitness. Assign każdy genom do gatunku. W każdym gatunku wydzielają genomy, usuwając niektóre z słabszych genomów. Każdy gatunek losowo wybierał genomy w gatunku do crossover lub mutate. Repeat all above. Post nawigacji. Nie jestem bardzo pewien, czy to pytanie pasuje tutaj. I niedawno zaczął, czytanie i nauka o maszynerii Czy ktoś rzucić trochę światła, jak to zrobić lub raczej czy ktokolwiek może podzielić się swoimi doświadczeniami i kilkoma podstawowymi wskazówkami na temat tego, jak iść lub przynajmniej zacząć go stosować, aby zobaczyć niektóre wyniki z zestawów danych Jakie są ambitne brzmienia. Ponadto wspomnij o standardowych algorytmach, które należy wypróbować lub przyjrzeć się podczas robienia tego. zaked 01 lutego 11 w wieku 18 35.There wydaje się być podstawowym błędem, że ktoś może przyjść i nauczyć się trochę maszynowego uczenia się lub algorytmów AI, ustawić je jako czarne pudełko, uderzyć iść, a siedzieć, a oni na emeryturę. My porady do you. Learn statystyki i nauki maszyn, a następnie martwić się, jak stosować je do danego problemu Nie ma wolnego obiad tutaj Analiza danych jest ciężka praca Czytaj Elementy statystycznego uczenia się pdf jest dostępny za darmo na stronie internetowej, a don nie próbuj skonstruuj model, dopóki nie zrozumiesz co najmniej pierwszych 8 rozdziałów. Po zrozumieniu statystyk i uczenia maszyn, musisz nauczyć się testowania wstecznego i zbudować model handlowy, uwzględniający koszty transakcji itp., czyli cały inny obszar. Po masz uchwyt zarówno do analizy, jak i do finansowania, to będzie to trochę oczywiste, jak go zastosować Cały punkt tych algorytmów stara się znaleźć sposób na dopasowanie modelu do danych i wytwarzanie niskich stronniczości i wariancji przewidywania tj. Błąd testu szkoleniowego i testowego będzie niski i podobny Oto przykład systemu handlu przy użyciu maszyny wektora wsparcia w R, ale po prostu pamiętaj, że będziesz robił sobie ogromny gniew, jeśli nie poświęsz czasu na zrozumienie podstawy przed próbą zastosowania czegoś esoterycznego. Aby dodać rozrywkową aktualizację, niedawno natrafiłem na tę pracę magisterską Algorytm algorytmiczny, zawierający ewolucję i uczenie maszyn dla optymalizacji portfela 2017 Jest to obszerny przegląd różnych metod uczenia się w maszynach w porównaniu z buy-and-hold Po prawie 200 stronach, doszli do wniosku, że żaden system handlowy nie był w stanie osiągnąć lepszych wyników niż benchmark przy używaniu kosztów transakcji Nie trzeba dodawać, że to nie oznacza nie mogę się skoncentrować Nie miałem czasu na przegląd ich metod, aby zobaczyć ważność tego podejścia, ale na pewno dostarcza więcej dowodów na korzyść z nieodwzmaconego teorii obiadowych. odpowiedzi 1 lutego 11 w 18 48. Jase Jako jeden z autorzy wspomnianej pracy magisterskiej mogę przytoczyć własną pracę i powiedzieć Jeśli ktoś faktycznie osiąga zyski, nie ma motywacji do ich podzielenia, gdyż zignorowałoby ich zaletę Chociaż nasze wyniki mogłyby podsycać hipotezę rynkową, to nie wyklucza istnienie systemów, które działają To może być jak teoria prawdopodobieństwa Spekuluje się, że przełom w dziedzinie teorii prawdopodobieństwa zdarzył się kilkakrotnie, ale nigdy się nie podzielał Może to wynikać z jego praktyczne zastosowanie w hazardu Znowu, być może to wszystko jest nowoczesna alchemia Andr Christoffer Andersen 30 kwietnia 13 w 10 01. Moje rady dla Ciebie Istnieje tam kilka oddziałów AI Sztucznej Inteligencji Wytwarzania Maszyn ML. Próbowałem tylko programów genetycznych, a niektóre sieci neuronowe , a ja osobiście uważam, że nauka z gałęzi doświadczenia zdaje się mieć najbardziej potencjalne GP GP i sieci neuronowych wydają się być najbardziej rozpowszechnionymi metodologiami w celu przewidywania na giełdzie, ale jeśli robisz pewne wydobycie danych na Predict Wall Street może być w stanie przeprowadzić trochę analizy sentymentu. Poświęć trochę czasu na naukę różnych technik AI AI, znajdź dane na temat rynku i spróbuj zastosować niektóre z tych algorytmów. Każdy będzie miał swoje mocne i słabe strony, ale możesz połączyć przewidywania każdego algorytmu w złożonym predykcie podobnym do tego, co zaszły w nagrodę NetFlix. Niektóre zasoby Oto niektóre zasoby, które można chcieć k. Głupi Ogólny konsensus pomiędzy handlowcami polega na tym, że sztuczna inteligencja jest nauką voodoo, można sprawić, że komputer przewidzie ceny akcji i upewnij się, że straci pieniądze, jeśli spróbujesz to zrobić. Niemniej jednak ci ludzie powiedzą, że tylko o jedynym sposobem na zarabianie na giełdzie jest budowanie i doskonalenie własnej strategii handlowej i śledzenie jej ściśle, co nie jest zły pomysłem. Idea algorytmów AI nie polega na budowie Chipa i niech mu handlu , ale zautomatyzowanie procesu tworzenia strategii Jest to bardzo żmudny proces i w żaden sposób nie jest łatwe. Zminimalizowanie przepełnienia Jak już słyszeliśmy wcześniej, podstawową kwestią algorytmów AI jest nadmierne odchylenie od aka datamining, biorąc pod uwagę zestaw danych, algorytm AI może znaleźć wzór, który jest szczególnie istotny dla zestawu treningowego, ale może nie być istotny w zestawie testowym. Istnieje kilka sposobów na zminimalizowanie przepełnienia. Użyj zestawu poprawek, nie przekazując informacji zwrotnej do algorytmu, ale to wszystko ws do wykrycia, gdy twój algorytm jest potencjalnie zaczyna overfit tj. można przerwać szkolenie, jeśli ponownie overfitting zbyt dużo. Użyj online nauki maszynowe to w dużej mierze eliminuje potrzebę back-testowania i jest bardzo stosowne dla algorytmów, które próbują przewidywania rynku. Ensemble Learning zapewnia sposób na wykorzystanie wielu algorytmów uczenia maszyn i łączenie ich przewidywań Założenie, że różne algorytmy mogą nadawać dane w pewnym obszarze, ale prawidłowe połączenie ich przewidywań będzie miało lepszą moc predykcyjną. Dwa aspekty statystyczne learning są użyteczne w handlu.1 Po pierwsze wspomniane wcześniej niektóre metody statystyczne koncentrowały się na pracy na zbiorach danych na żywo Oznacza to, że wiesz, że obserwujesz tylko próbkę danych i chcesz ekstrapolować Ciebie, musisz mieć do czynienia z próbką i próbą przykładowe problemy, nadmierne dopasowanie itd. Z tego punktu widzenia, wyszukiwanie danych koncentruje się bardziej na martwych zbiorach danych, tzn. można zobaczyć prawie wszystkie dane , masz problem z próbą tylko w próbie statystycznej. Ponieważ nauka statystyczna polega na pracy nad zbiorem danych na żywo, stosowane matematyki, które zajmowały się nimi, musiały skoncentrować się na problemie dwóch skal. w lewo XF theta Xn, xi L pi Xn, n koniec w prawo, gdzie X jest wielomedialną przestrzenią stanu do zbadania, w której znajduje się jej zmienna objaśniająca i te do przewidzenia, F zawiera dynamikę X, która potrzebuje pewnych parametrów theta Losowość X comes from the innovation xi , which is ii d. The goal of statistical learning is to build a methodology L ith as inputs a partial observation pi of X and progressively adjust an estimate hat theta of theta , so that we will know all that is needed on X. If you think about using statistical learning to find the parameters of a linear regression we can model the state space like this underbrace yx end right left begin ab 1 1 0 0 end right cdot underbrace x 1 epsilon end right which thus allows to observe y, xn at any n here theta a, b.Then you need to find a way to progressively build an estimator of theta using our observations Why not a gradient descent on the L2 distance between y and the regression C hat a, hat bn sum yk - hat a , xk h at b 2.Here gamma is a weighting scheme. Usually a nice way to build an estimator is to write properly the criteria to minimize and implement a gradient descent that will produce the learning scheme L. Going back to our original generic problem we need some applied maths to know when couple dynamical systems in X, hat theta converge, and we need to know how to build estimating schemes L that converge towards the original theta. To give you pointers on such mathematical results. Now we can go back to the second aspect of statistical learning that is very interesting for quant traders strategists.2 The results used to prove the efficiency of statistical learning methods can be used to prove the efficiency of trading algorithms To see that it is enough to read again the coupled dynamical system that allows to write statistical learning left M F rho Mn, xi L pi Mn , n end right. Now M are market variables, rho is underlying PnL, L is a trading strategy Just replace minimizing a criteria by max imizing the PnL. See for instance Optimal split of orders across liquidity pools a stochatic algorithm approach by Gilles Pags, Sophie Laruelle, Charles-Albert Lehalle in this paper, authors show who to use this approach to optimally split an order across different dark pools simultaneously learning the capability of the pools to provide liquidity and using the results to trade. The statistical learning tools can be used to build iterative trading strategies most of them are iterative and prove their efficiency. The short and brutal answer is you don t First, because ML and Statistics is not something you can command well in one or two years My recommended time horizon to learn anything non-trivial is 10 years ML not a recipe to make money, but just another means to observe reality Second, because any good statistician knows that understanding the data and the problem domain is 80 of the work That s why you have statisticians focusing on Physics data analysis, on genomics, on sabermetrics etc For the record, Jerome Friedman, co-author of ESL quoted above, is a physicist and still holds a courtesy position at SLAC. So, study Statistics and Finance for a few years Be patient Go your own way. Mileage may vary. answered Feb 9 11 at 4 41.I totally agree Just because you know machine learning and statistics, it does not imply that you know how to apply it to finance Dr Mike Aug 10 11 at 20 25.Also an important thing to remember is you won t be trading against people, you will be trading against other artificial intelligence algorithms who are watching your trades pile in, and are furiously calculating the odds that the collective yous would be spooked out by a manufactured decline and taking that minor loss in creating a spike dip and fool all those AI s into stopping out, and then rolling the dip back into it and ride the wave, earning your losses The stock market is a zero sum game, treat it like entering a pro boxing match, if you aren t a 20 year veteran, you re going to lo se Eric Leschinski Feb 13 16 at 1 56.One basic application is predicting financial distress. Get a bunch of data with some companies that have defaulted, and others that haven t, with a variety of financial information and ratios. Use a machine learning method such as SVM to see if you can predict which companies will default and which will not. Use that SVM in the future to short high-probability default companies and long low-probability default companies, with the proceeds of the short sales. There is a saying Picking pennies up in front of steam rollers You re doing the equivalent of selling an out-of-the-money put In this case, you ll make tiny profits for years, then get totally cleaned out when the market melts down every 10 years or so There is also an equivalent strategy that buys out-of-the-money puts they lose money for years, then make a killing when the market melts down See Talab s The Black Swan Contango Jun 5 11 at 22 20.Remember that international companies have spent hund reds of billions of dollars and man hours on the very best and brightest artificial intelligence minds over the last 40 years I ve spoken to some of the towers of mind responsible for the alphas over at Citadel and Goldman Sachs, and the hubris from novices to think they can put together an algorithm that will go toe to toe with them, and win, is almost as silly as a child telling you he s going to jump to the moon Good luck kid, and watch out for the space martians Not to say new champions can t be made, but the odds are against you Eric Leschinski Feb 13 16 at 2 00.One possibility worth exploring is to use the support vector machine learning tool on the Metatrader 5 platform Firstly, if you re not familiar with it, Metatrader 5 is a platform developed for users to implement algorithmic trading in forex and CFD markets I m not sure if the platform can be extended to stocks and other markets It is typically used for technical analysis based strategies i e using indicators based on hist orical data and is used by people looking to automate their trading. The Support Vector Machine Learning Tool has been developed by one of the community of users to allow support vector machines to be applied to technical indicators and advise on trades A free demo version of the tool can be downloaded here if you want to investigate further. As I understand it, the tool uses historical price data to assess whether hypothetical trades in the past would have been successful It then takes this data along with the historical values from a number of customisable indicators MACD, oscillators etc , and uses this to train a support vector machine Then it uses the trained support vector machine to signal future buy sell trades A better desciption can be found at the link. I have played around with it a little with some very interesting results, but as with all algorithmic trading strategies I recommend solid back forward testing before taking it to the live market. answered Dec 10 12 at 11 59.Sorr y, but despite being used as a popular example in machine learning, no one has ever achieved a stock market prediction. It does not work for several reasons check random walk by Fama and quite a bit of others, rational decision making fallacy, wrong assumptions , but the most compelling one is that if it would work, someone would be able to become insanely rich within months, basically owning all the world As this is not happening and you can be sure all the bank have tried it , we have good evidence, that it just does not work. Besides How do you think you will achieve what tens of thousands of professionals have failed to, by using the same methods they have, plus limited resources and only basic versions of their methods. answered Jun 4 15 at 7 47.Just an aside regarding your most compelling reason strategies have capacity limits, i e levels beyond which your market impact would exceed the available alpha, even assuming you had unlimited capital I m not sure what you mean by a stock ma rket prediction index futures ETF s , but certainly there are plenty of people making short-term predictions, and benefitting from them, every day in markets afekz Nov 23 15 at 13 19.I echo much of what Shane wrote In addition to reading ESL, I would suggest an even more fundamental study of statistics first Beyond that, the problems I outlined in in another question on this exchange are highly relevant In particular, the problem of datamining bias is a serious roadblock to any machine-learning based strategy.

No comments:

Post a Comment