Napisał 238w temu Upvoted przez Vladimir Novakovski zaczął zespół nauki maszyn Quora w latach 2017-2017. Przede wszystkim skoncentrujesz się na gromadzeniu jak największej ilości danych i umieszczeniu w jednym dużym formularzu tabeli Byłoby to historyczny cennik Może to wspomnieć o artykułach prasowych, posty na blogu, sekwencje papierowe zamienione na wektory liczenia słów itd przy użyciu naturalnych technik przetwarzania języków Szkolenie algorytmu nadzorowanego dla decyzji kupna sprzedaży Odpowiednie algorytmy to regresja logistyczna najszybsze i najbardziej przypadkowe laski Najważniejsze są inne, takie jak maszyny wektora wsparcia, drzewa decyzyjne, trzywarstwowe sieci neuronowe, ale te don t oferują taką samą dokładność, jak losowe lasy, a często wolniej jak i szybciej niż regresja logistyczna. Moim zdaniem najlepszy wybór to po prostu regresja logistyczna, a najlepsza implementacja wobbowa wachlarzowa - bardzo szybka, może obsłużyć ogromne ilości danych - 1 terabajt na godzinę na jednej maszynie, szybciej w klastrze - i otwórz tak urce Pozwala to również na jasne określenie, które kolumny wskaźników w tabeli są predykcyjne. Możesz też dodać artykuły z gazety itp bezpośrednio jako tekst do tego przy użyciu skryptu mieszania Jest to również zaimplementowane w wobbowę vowpal, dzięki czemu można obsługiwać bardzo dużych artykułów tekstowych w jednym rzędzie, jak również. Pomyśl o tym, że nie można już zbierać więcej źródeł danych, nadszedł czas, aby przejść do etapu projektowania funkcji. Zrobiłeś to już wtedy, gdy zrobiłeś nlp rzeczy, ale używałeś standardowych technik - tzn. nie myślałeś, aby wymyślić własne metody. Są dwie możliwości wyboru w tym punkcie - ręczne i automatyczne. Zwykle ludzie w tym momencie wymyślają własne funkcje To, co handlowcy spędzają większość czasu robiąc to - tak zwane strategie lub zasady Są testowane w oparciu o dane zwane testami wstecznymi. Inna, nowsza, autentyczna metoda również została niedawno udostępniona - bez nadzoru głębokie uczenie się Bez nadzoru było istotnie wcześniej, ale to było z on płytkie odmiany i nie działał dobrze w praktyce Głęboka nauka sieci neuronowych używających automatycznych koderów to nowa metoda wynaleziona zaledwie 6 lat temu, która działa naprawdę dobrze Ten artykuł jest demonstracją tego. Przede wszystkim, rzucając mnóstwo komputerów na problem, możliwe do automatycznego tworzenia strategii Im większa sieć neuronowa, tym lepiej to robi - ale w konsekwencji więcej komputerów jest wymaganych To moim zdaniem jest lepsze tańsze niż staranie o wynajęcie dużej ilości twórczych analitycznych ciężko pracujących ludzi.18k Odsłon Wyświetl Upvotes Not do reprodukcji. Jestem naprawdę na początku tworzenia mojego zautomatyzowanego systemu handlowego, odpowiedź na Twoje pytanie brzmi: jak chcesz zarabiać pieniądze, czy chcesz dzieńować lub kupić i trzymać się w czasie, jakie są twoje metryki? biorąc pod uwagę dobrą inwestycję handlową Musisz wiedzieć o rynku, który zamierzasz służyć, w Twoim przypadku na giełdzie Jeśli zamierzasz uczynić algo na trasie dla ciężarówek, powinieneś wiedzieć, ile możesz ible zmiennych związanych z transportem ciężarówek i potencjalnych pułapek, na które wpadniesz. Możesz uzyskać wszystkie odpowiedzi na świecie, ale chyba że jesteś bardzo inteligentnym koderem, który może przybrać prawie infinatę zmiennych i opisać ich znaczenie i relacje między sobą. Data to również uwagę, ile zapasów zamierzasz śledzić Jakiego rodzaju dane potrzebujesz Te kanały zostaną uruchomione w tysiącach miesięcy potencjalnie. Po przejściu tej ścieżki przez ostatni rok, jej wielka praca i bariera wejścia Trzeba zdobyć wiedzę i zaplanować strategię.4 2k Views View Upvotes Nie dla reprodukcji. Tad Slaff studiował na University of Colorado Boulder. Here jest prosty prosty krok po kroku przewodnik po użyciu algorytmu Machine-Learning do handlu It jest podstawowym przeglĘ ... dem i powinien dostarczyć informacji potrzebnych do zbudowania własnego widoku.5k Views View Upvotes Nie dla reprodukcji. Ta post bę dzie szczegółowo co zrobić, aby około 500k z handlu wysokimi czę stotliwoś ciami od 2009 do 2017 Odkód byłem t radując się całkowicie niezależnie i nie jestem już w stanie uruchomić mojego programu Cieszę się, że mogę powiedzieć wszystko Mój handel przeważnie dotyczył kontraktów futures Russel 2000 i DAX. Kluczem do mojego sukcesu uważałem, że nie byłem w wyrafinowanym równaniu finansowym, a raczej w ogólnym algorytmie projekt, który łączył wiele prostych komponentów i wykorzystywał naukę maszynową, aby zoptymalizować maksymalną rentowność Nie potrzebujesz wiedzieć jakiejkolwiek zaawansowanej terminologii tutaj, ponieważ podczas instalacji mojego programu wszystko opierało się na intuicji Andrew Ng s niesamowity kurs nauki maszyn nie był jeszcze dostępny - btw jeśli klikniesz ten link, zostaniesz przekierowany do mojego obecnego projektu CourseTalk, stronę przeglądu dla MOOCs. First, chcę tylko pokazać, że mój sukces nie był po prostu wynikiem szczęścia Mój program wykonał 1000-4000 transakcji dziennie na pół długiej , połowa krótka i nigdy nie dostała się na pozycje o więcej niż kilku kontraktach w tym czasie Oznaczało to, że szczęście losowe z jednego konkretnego handlu wyniosło dość szybko Wynik był nigdy nie straciłam 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 z API wkrótce miałem 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. Od samego początku moim celem było stworzenie 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 4-tygodniowych danych rynkowych w celu wyszukania i testowania mojego systemu na. Z podstawowej ramie na miejscu wciąż miałem zadanie dowiedzieć się, jak zrobić korzystny system handlowy Jak okazuje się mój algorytm rozbiłby się na dwa odrębne komponenty, które będę zbadać z kolei. Przedmiotowe zmiany cen. handel. Przedyżanie ruchów cen. Prawdopodobnie oczywistym elementem każdego 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 i wyznaczam cel przewidywania, gdzie cena będzie w ciągu najbliższych 10 sekund Mój algorytm musiałby wystąpić z tym przewidywaniem 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, jeśli 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 przewidywalnych możliwości jakiegokolwiek wskaźnika miałem więc byłem w stanie 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 Zauważ, ż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 moim pośrednikom, jak i wymianę. Różnica między najwyższą ofertą a najniższą ofertą oznaczała, ż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 najlepiej, jak to tylko możliwe. Oto kilka kwestii, 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 złożył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 określonym poziomie cen był powyżej pewnego 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 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 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 czy 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ąłem 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 to miało właściwą równowagę między pozyskaniem najnowszych trendów zachowań rynkowych a ubezpieczeniem mojego algorytmu było wystarczające dane, aby ustalić znaczące wzorce W miarę treningu zaczęło się coraz częściej rozdzielić go 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, co próbowałem, nie pomogło dużo. 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 popularnych pytań, jakie otrzymałem od przedsiębiorców na ten temat. Nauka systemów obrotu. SPDR SP 500 ETF SPY jest jednym z powszechnie sprzedawanych produktów ETF na rynku, a około 200 miliardów aktywów rocznie, a średni obrotów na poziomie poniżej 200 milionów akcji codziennie prawdopodobieństwo stworzenia systemu wymiany pieniądza z wykorzystaniem publicznie dostępnych informacji może okazać się niewielkie Brak więc, aby dać szanse na walkę, skoncentrujemy się na próbie przewidywania ruchu nocnego w SPY, używając dane z sesji poprzedniej sesji. Poza otwartymi bardzo niskimi i ścisłymi cenami sesji poprzedzającej dzień, wybraliśmy wiele innych wiarygodnych zmiennych w celu zbudowania wektora funkcji, który będziemy używać w naszym modelu uczenia się maszyną. Na dobowej objętości. Następna cena zamknięcia. Zachowania 200-dniowe, 50-dniowe i 10-dniowe ceny zamknięcia. 252-dniowe wysokie i niskie ceny serii SPY. We spróbuje zbudować model, który przewiduje powrót w ETF w ciągu jednego dnia, tj. O t 1 t C t. W tym ćwiczeniu używamy danych z początku serii SPY aż do końca 2017 r., aby zbudować model, które następnie przetestujemy na podstawie danych z próbek, które będą uruchamiane od stycznia 2018 r. do sierpnia 2018 r. W kontekście wysokich częstotliwości użyjemy znacznej ilości czasu na ocenę, czyszczenie i normalizację danych W tym przypadku mamy do czynienia z mniejszymi problemami tego typu wystandaryzowałoby dane wejściowe w celu wyrównywania wpływu zmiennych, które mogą być mierzone na skalę bardzo różnych rzędów wielkości. W tym przykładzie wszystkie zmienne wejściowe, z wyjątkiem objętości, mierzone są w tej samej skali, a zatem standaryzacja jest arguably niepotrzebne. Pierwsze dane w próbce to loa dedykowane i wykorzystywane do stworzenia zestawu treningowego reguł, które odwzorowują wektor funkcji na zmienną zainteresowania, zwrot z nocą. W Mathematica 10 Wolfram wprowadził zestaw algorytmów uczenia maszyn, obejmujących regresję, najbliższy sąsiad, sieci neuronowe i losowe lasy, razem z funkcjonalnością do oceny i wyboru najlepszej techniki uczenia maszyn Te obiekty ułatwiają tworzenie klasyfikatora lub modelu przewidywania przy użyciu algorytmów uczenia maszyn, takich jak ten przykład rozpoznawania pisma ręcznego. Tworzymy model predykcyjny w szkoleniu SPY, pozwalając Mathematica na wybrać najlepszy algorytm uczenia się maszyn. Istnieje wiele opcji dla funkcji Predict, która może być użyta do sterowania wyborem obiektów, typem algorytmu, typem wydajności i celem, a nie tylko akceptowaniem domyślnych wartości, jak to zrobiliśmy tutaj. nasz model uczenia maszynowego, załadujemy dane z próbek od stycznia 2018 r. do sierpnia 2018 r. i tworzymy zestaw testów następnie utwórz obiekt PredictionMeasurement, używając modelu najbliższego sąsiedztwa, który może być użyty do dalszej analizy. Nie ma dużo dyspersji w modelowych prognozach, które mają pozytywną wartość. Wspólną techniką w takich przypadkach jest odjęcie średniej z każdej z prognoz i możemy je również ujednolicić przez podzielenie przez odchylenie standardowe. Scatterplot rzeczywistych lub prognozowanych zwrotów w SPY wygląda teraz tak. Jest to nadal oczywisty brak dyspersji w prognozowanych wartościach, w porównaniu do rzeczywistych zwrotów w ciągu nocy, które może poprawić standaryzację W każdym razie wydaje się, że istnieje mała, nieliniowa zależność pomiędzy wartościami prognozowanymi a rzeczywistymi, co daje pewną nadzieję, że model może okazać się użyteczny. Z prognozowania handlu. Istnieją różne metody rozmieszczania modelu prognozowania w kontekście stworzenia systemu handlowego Najprostszą drogą, którą zajmiemy, jest zastosowanie bramy progowej i przekształcenie przefiltrowanych prognoz bezpośrednio do sygnału handlowego Możliwe są inne podejścia, przykładowo prognozy z wielu modeli do utworzenia zespołu predykcyjnego. Wykorzystanie prognoz jako danych wejściowych do modelu programowania genetycznego. Doprowadzenie prognoz do warstwy wejściowej modelu sieci neuronowej zaprojektowanej specjalnie do generowania zamiast prognoz. W tym przykładzie stworzymy model handlowy, stosując prosty filtr do prognoz, zbierając tylko te wartości, które przekraczają określony próg Jest to standardowa sztuczka służąca do izolowania sygnału w modelu od hałas tła Akceptujemy tylko pozytywne sygnały, które przekraczają poziom progowy, tworząc długi system handlu, tzn. ignorujemy prognozy, które spadają poniżej poziomu progowego. Kupujemy SPY na końcu, gdy prognoza przekracza próg i wyjdzie z długiej pozycji na następny dzień otwarty Ta strategia generuje następujące wyniki pro-forma. System ma kilka bardzo atrakcyjnych funkcji, w tym szybkość wygrywania powyżej 66 lat, a CAGR powyżej 10 lat w okresie braku próbek. Oczywiście, jest to bardzo podstawowa ilustracja, którą chcemy uwzględnić w komisjach handlowych, a poślizg, jaki wystąpił w trakcie wchodzenia i opuszczania stanowisk w okresie poprzedzającym i poprzednim, okresy rynkowe, które negatywnie wpłyną na wydajność, oczywiście Z drugiej strony ledwo zaczynamy podrapać powierzchnię w kategoriach zmiennych, które mogłyby zostać uwzględnione w celu uwzględnienia wektora charakteru, a które mogą zwiększyć moc wyjaśniającą modelu Innymi słowy, w rzeczywistości jest to dopiero początek długiego i żmudnego procesu badawczego. Niemniej jednak ten prosty przykład powinien wystarczyć, aby czytelnik miał smak tego, co jest zaangażowane w budowanie modelu predykcyjnego handlu za pomocą algorytmów uczenia maszyn.
Comments
Post a Comment