Forex trading machine learning


Handel i uczenie maszynowe Dołączył do grudnia 2006 Status: Członek 3,845 Posty to wątek dyskusyjny dotyczący uczenia maszynowego i sposobu, w jaki będzie kształtował przyszłość handlu dla zysków. Po przeczytaniu tego, nad czym aktualnie pracują naukowcy (tworzenie chipów przypominających mózg) i przerabianiu oprogramowania do uczenia maszynowego, myślę, że może to przebiegać w obie strony - albo mamy wysoce wydajny rynek, albo będziemy mieć częstsze awarie flash, takie jak nowsze prymitywne algorytmy. Jednak myślę, że im lepiej te sztuczne inteligencje się dostaną i im więcej mocy komputerowej będzie łatwo dostępne, handlowcy ludzcy nie będą w stanie zaryzykować tych maszyn w dłuższej perspektywie. Teraz wyobrażam sobie, że komputer kwantowy D-Waves jest wykorzystywany do takiego zadania z 2000 Qubits, co daje 102000 scenariuszy, które komputer mógłby analizować jednocześnie (więcej scenariuszy, niż są atomy w znanym wszechświecie). Jak można konkurować z tym, co myślicie, że dołączyli do zespołu Jan 2017 Status: Członek 34 Postów Witam, to wątek dyskusji na temat uczenia maszynowego i jak będzie kształtował przyszłość handlu dla zysków. Po przeczytaniu tego, nad czym aktualnie pracują naukowcy (tworzenie chipów przypominających mózg) i przerabianiu oprogramowania do uczenia maszynowego, myślę, że może to przebiegać w obie strony - albo mamy wysoce wydajny rynek, albo będziemy mieć częstsze awarie flash, takie jak nowsze prymitywne algorytmy. Jednak myślę, że im lepsza jest ta sztuczna inteligencja i tym więcej mocy komputerowej jest łatwo dostępna, handlowcy ludzcy ją znajdą. Jeśli tak zwane sztuczna inteligencja może działać na naszą korzyść, to nie ma problemu, ale jedno jest pewne, że maszyna zawsze byłaby maszyną. Czasami mogą po prostu działać nieprawidłowo i sprawić, że zestresujesz się. Uczenie się maszyn w handlu Forex: dlaczego wielu pracowników akademickich robi to wszystko źle Budowanie strategii uczenia maszynowego, które mogą uzyskać przyzwoite wyniki w warunkach rynkowych, zawsze było ważnym wyzwaniem w handlu algorytmicznym. Pomimo dużego zainteresowania i niesamowitych potencjalnych zysków, wciąż nie ma publikacji naukowych, które byłyby w stanie pokazać dobre modele uczenia maszynowego, które mogą skutecznie rozwiązać problem handlu na prawdziwym rynku (według mojej najlepszej wiedzy, zamieścić komentarz, jeśli masz jeden i będzie z przyjemnością go przeczytać). Chociaż wiele opublikowanych artykułów wydaje się przynosić obiecujące wyniki, często zdarza się, że artykuły te podlegają różnym problemom statystycznym, które sprawiają, że prawdziwy sukces rynkowy ich strategii uczenia maszynowego jest wysoce nieprawdopodobny. W dzisiejszym numerze 8217 zamierzam porozmawiać o problemach, które widzę w badaniach akademickich związanych z uczeniem maszynowym na rynku Forex oraz o tym, jak uważam, że te badania mogłyby zostać ulepszone w celu dostarczenia znacznie bardziej przydatnych informacji zarówno społecznościom akademickim, jak i handlowym. Większość pułapek w projektowaniu strategii uczenia maszynowego podczas handlu na rynku Forex jest nieuchronnie dziedziczona ze świata deterministycznych problemów z nauką. Podczas budowania algorytmu uczenia maszynowego na potrzeby rozpoznawania twarzy lub rozpoznawania liter istnieje dobrze zdefiniowany problem, który się nie zmienia, co jest ogólnie rozwiązywane poprzez budowanie modelu uczenia maszynowego na podzbiorze danych (zestaw treningowy), a następnie testowanie, czy model był w stanie poprawnie rozwiązać problem za pomocą przypomnienia danych (zestaw testowy). Właśnie dlatego masz kilka znanych i dobrze ugruntowanych zestawów danych, które można wykorzystać do ustalenia jakości nowo opracowanych technik uczenia maszynowego. Kluczową kwestią jest jednak to, że problemy rozwiązywane początkowo przez uczenie maszynowe były w większości deterministyczne i niezależne od czasu. W przypadku wprowadzenia do obrotu zastosowanie tej samej filozofii daje wiele problemów związanych zarówno z częściowo niedeterministycznym charakterem rynku, jak iz zależnością czasową. Sama próba wyboru zestawów treningowych i testowych wprowadza znaczną ilość stronniczości (nastawienie wyboru danych), które stwarza problem. Jeśli wybór zostanie powtórzony, aby poprawić wyniki w zbiorze testowym 8211, który należy założyć, dzieje się w co najmniej niektórych przypadkach 8211, to problem ten dodaje również dużą ilość błędów w eksploracji danych. Cały problem związany z wykonaniem pojedynczego ćwiczenia dotyczącego walidacji szkoleń generuje również problem związany z zastosowaniem tego algorytmu podczas handlu na żywo. Z definicji obrót na żywo będzie inny, ponieważ wybór zestawów testów treningowych musi zostać ponownie zastosowany do różnych danych (ponieważ teraz zestaw testowy jest naprawdę nieznanym danymi). Nieodłączne cechy początkowej selekcji próbek próbek i brak sprawdzonych reguł handlu w oparciu o nieznane dane powodują, że takie techniki często zawodzą w handlu na żywo. Jeśli algorytm został przeszkolony z danymi z okresu 2000-2017 i został zweryfikowany krzyżowo z danymi z lat 2017-2018, nie ma powodu, by wierzyć, że taki sam sukces nastąpi, jeśli zostanie przeszkolony w danych z lat 2003-2018, a następnie będzie sprzedawany na żywo w latach 2018-2017, zbiory danych mają bardzo różny charakter. Sukces algorytmu pomiarowego jest tu również bardzo istotnym problemem. Nieuchronnie algorytmy uczenia maszynowego stosowane w handlu powinny być mierzone pod względem merytorycznym poprzez ich zdolność do generowania pozytywnych zwrotów, ale w niektórych publikacjach mierzy się zalety nowych technik algorytmicznych, próbując porównać ich zdolność do uzyskania prawidłowych prognoz. Prawidłowe prognozy niekoniecznie są równe zyskownemu handlowi, jak łatwo zauważyć podczas budowania klasyfikatorów binarnych. Jeśli spróbujesz przewidzieć następny kierunek świecy, możesz stracić, jeśli w większości będziesz mieć małe świece i źle na większych świecach. W rzeczywistości większość tego typu klasyfikatorów 8211 większość z tych, które działają 8211, kończy się przewidywaniem kierunkowości z ponad 50 dokładnością, ale nie powyżej poziomu wymaganego do przekroczenia prowizji, które pozwoliłyby na opłacalny handel opcjami binarnymi. Aby budować strategie, które w większości nie zawierają powyższych problemów, zawsze opowiadałem się za metodologią, w której algorytm uczenia maszynowego zostanie przeszkolony przed podjęciem jakiejkolwiek decyzji dotyczącej treningu. Używając poruszającego się okna do treningu i nigdy nie podejmując więcej niż jednej decyzji bez przekwalifikowania całego algorytmu, możemy pozbyć się błędu selekcji, który jest nieodłączny przy wyborze pojedynczego zestawu próbek w próbce. W ten sposób cały test jest serią ćwiczeń szkoleniowych, które kończą się zapewnieniem, że algorytm uczenia maszynowego działa nawet w bardzo różnych zestawach danych treningowych. Opowiadam się również za pomiarem rzeczywistej wydajności analizy historycznej, aby zmierzyć zalety algorytmu uczenia maszynowego, a ponadto posunąłbym się do stwierdzenia, że ​​żaden algorytm nie jest wart swojej soli bez sprawdzenia w warunkach rzeczywistych poza próbą. Opracowanie algorytmów w ten sposób jest znacznie trudniejsze i nie znalazłem ani jednego dokumentu akademickiego, który podąża za tego typu podejściem (jeśli przeoczyłem, nie krępuj się opublikować link, aby móc dołączyć komentarz). Nie oznacza to, że ta metodologia jest całkowicie bezproblemowa, jednak wciąż podlega klasycznym problemom związanym z wszystkimi ćwiczeniami budowania strategii, w tym odchyleniem dopasowującym krzywą i odchyleniem danych. Dlatego ważne jest również wykorzystanie dużej ilości danych (używam 25 lat do testowania systemów, zawsze przekwalifikowania po każdej decyzji dotyczącej uczenia maszynowego) i do przeprowadzenia odpowiednich testów oceny odchylenia danych w celu określenia zaufania, z którym możemy twierdzą, że wyniki nie pochodzą z przypadkowej szansy. Mój przyjaciel AlgoTraderJo 8211, który również jest członkiem mojej społeczności handlowej 8211, obecnie rozwija wątek w ForexFactory, kierując się tym samym rodzajem filozofii rozwoju uczenia maszynowego, ponieważ pracujemy nad nowymi algorytmami uczenia maszynowego dla mojej społeczności handlowej. Możesz odnieść się do jego wątku lub wcześniejszych postów na moim blogu z kilku przykładów algorytmów uczenia maszynowego opracowanych w ten sposób. Jeśli chcesz dowiedzieć się więcej o naszych postępach w uczeniu maszynowym i jak również możesz rozwijać własne strategie uczenia maszynowego za pomocą frameworka F4, rozważ dołączenie do Asirikuy. strona internetowa wypełniona filmami edukacyjnymi, systemami transakcyjnymi, rozwojem oraz zdrowym, uczciwym i przejrzystym podejściem do automatycznego handlu. Nauczanie na maszynie z algoTraderJo Dołączył grudzień 2017 Status: Członek 383 Posty Witajcie koledzy handlowcy, zaczynam ten wątek mając nadzieję, że podzielę się z Wami trochę moich osiągnięć w dziedzinie uczenia maszynowego. Chociaż mogę nie udostępnić Ci dokładnych systemów lub implementacji kodowania (nie spodziewaj się, że uzyskasz cokolwiek do wypowiedzenia i zdobycia bogactwa z tego wątku) podzielę się z Wami pomysłami, wynikami mojego eksperymentu i ewentualnie innymi aspektami mojej pracy. Rozpoczynam ten wątek w nadziei, że będziemy mogli dzielić się pomysłami i pomagać sobie nawzajem w ulepszaniu naszych implementacji. Zacznę od prostych strategii uczenia maszynowego, a następnie przejdę do bardziej skomplikowanych zadań w miarę upływu czasu. Mam nadzieję, że podoba ci się przejażdżka Dołączył grudzień 2017 Status: Członek 383 Posty Chciałbym zacząć od wypowiedzenia kilku podstawowych rzeczy. Przykro mi, jeśli struktura moich postów pozostawia wiele do życzenia, nie mam żadnego doświadczenia z publikowaniem na forum, ale mam nadzieję, że dostanę trochę czasu. W uczeniu maszynowym chcemy jedynie wygenerować prognozę przydatną dla naszego handlu. Aby dokonać tej prognozy generujemy model statystyczny za pomocą zestawu przykładów (znanych wyników i niektórych danych wejściowych mamy moc predykcyjną do prognozowania tych wyników), następnie wykonujemy prognozę nieznanego wyniku (nasze najnowsze dane), korzystając z modelu, który stworzyliśmy przykłady. Podsumowując, jest to niewielki proces, w którym wykonujemy następujące czynności: Wybierz to, co chcemy przewidzieć (to będzie nasz cel (e)) Wybierz kilka zmiennych wejściowych, które według nas mogą przewidywać nasze cele Zbuduj zestaw przykładów, korzystając z przeszłych danych z naszymi danymi wejściowymi i naszymi celami Utwórz model, korzystając z tych przykładów. Model jest po prostu mechanizmem matematycznym, który wiąże dane wejściowe. Dokonaj prognozy celu przy użyciu ostatnich znanych danych wejściowych. Handel przy użyciu tej informacji. Chcę od początku powiedzieć, że bardzo ważne jest unikanie tego, co robi wiele prac naukowych na temat uczenia maszynowego. która ma na celu zbudowanie modelu z bardzo dużymi tablicami przykładów, a następnie podjęcie próby długoterminowej prognozy na zestawie quotout-of-samplequot. Budowanie modelu z 10-letnimi danymi, a następnie testowanie go na dwóch ostatnich, jest pozbawione sensu, podlega wielu typom statystycznych błędów, które omówimy później. Ogólnie zobaczysz, że modele uczenia maszynowego, które buduję, są wyszkolone na każdym pasku (lub za każdym razem, gdy muszę podjąć decyzję) przy użyciu ruchomego okna danych do budowania przykładów (tylko ostatnie przykłady są uważane za istotne). Oczywiście, takie podejście nie jest obce niektórym typom statystycznych uprzedzeń, ale usuwamy quotelephant w teście pokojowym, gdy używamy szerokiej metody próbkowania w większości przypadków akademickich (co nie jest zaskoczeniem, często prowadzi do podejść, które nie są rzeczywiście przydatne do handlu). Zbudowanie modelu uczenia maszynowego wymaga przede wszystkim trzech rzeczy: Co przewidzieć (jaki cel) Czego można przewidzieć (jakie dane wejściowe) Jak odnieść cel i dane wejściowe (jaki model) Większość z tego, co wymieniłem na tym wątku skupimy się na odpowiadaniu na te pytania, wraz z rzeczywistymi przykładami. Jeśli chcesz napisać jakiekolwiek pytania, a ja postaram się udzielić ci odpowiedzi lub po prostu powiadomię cię, jeśli odpowiem ci później. Dołączył grudzień 2017 Status: Członek 383 Postów Przejdźmy teraz do rzeczy. Prawdziwy przykład praktyczny z wykorzystaniem uczenia maszynowego. Załóżmy, że chcemy zbudować bardzo prosty model za pomocą bardzo prostego zestawu inputstargets. Dla tego eksperymentu są to odpowiedzi na pytania: Co przewidzieć (jaki cel) - gt Kierunek następnego dnia (zwyżkowy lub niedźwiedzi) Co przewidzieć (wprowadzając) - gt Kierunek poprzednich 2 dni Jak aby powiązać cel i dane wejściowe (jaki model) - gt Klasyfikator mapy liniowej Ten model będzie próbował przewidzieć kierunkowość następnego dziennego słupka. Aby zbudować nasz model, bierzemy 200 ostatnich przykładów (kierunek dni jako cel i poprzednie dwudniowe kierunki jako dane wejściowe) i szkolimy liniowy klasyfikator. Robimy to na początku każdego codziennego baru. Jeśli mamy przykład, w którym dwa dni zwyżkowe prowadzą do niedźwiedzia, to dane wejściowe będą wynosić 1,1, a cel będzie wynosił 0 (0bishish, 1bullish), używamy 200 z tych przykładów, aby wyszkolić model na każdym pasku. Mamy nadzieję, że będziemy w stanie zbudować relację, w której kierunek dwóch dni daje pewne powyżej losowe prawdopodobieństwo prawidłowego przewidywania kierunku dni. Używamy stoploss równej 50 z 20-dniowego okresu Średni zakres rzeczywisty dla każdej transakcji. Załączony obraz (kliknij, aby powiększyć) Symulacja tej techniki z lat 1988-2017 na EURUSD (dane przed 1999 r. To DEMUSD) powyżej pokazuje, że model nie ma stabilnego generowania zysków. W rzeczywistości model ten jest oparty na negatywnym odchyleniu losowego spaceru, co powoduje, że traci on pieniądze w funkcji spreadu (3 pipsy w mojej sim). Spójrzmy na pozornie imponującą wydajność, jaką mamy w latach 1993-1995 oraz w latach 2003-2005, gdzie najwyraźniej mogliśmy z powodzeniem przewidzieć kierunkowość następnego dnia za pomocą prostego modelu liniowego i dwóch ostatnich kierunków w ciągu dnia. Ten przykład pokazuje kilka ważnych rzeczy. Na przykład w krótkich ramach czasowych (które mogą być kilka lat) możesz łatwo dać się zwieść losowości --- możesz myśleć, że masz coś, co działa, a tak naprawdę nie działa. Pamiętaj, że model jest przebudowywany na każdym pasku, używając poprzednich 200 przykładów inputtarget. Jakich innych rzeczy możesz się nauczyć z tego przykładu Opublikuj swoje myśli Cóż. więc przewidywałeś, że wkroczyją kupujący lub sprzedający. Hmm, ale co to ma wspólnego z ceną rosnącą lub spadającą o 100 pipsów Cena może reagować na różne sposoby - może się po prostu zatankować przez jakiś czas (podczas gdy wszystkie zlecenia z limitem są wypełnione) i dalej idź dalej. Może również odtwarzać 5, 10, 50 lub nawet 99 pipsów. We wszystkich tych przypadkach miałeś rację co do kupujących lub sprzedających, ale musisz zrozumieć, że ta analiza nie ma wiele wspólnego z twoją wymianą z 90 na 100. Tak, masz rację Jest to duża część powodów, dla których uzyskujemy słabe wyniki podczas korzystania z algorytmu mapowania liniowego. Ponieważ nasza rentowność jest słabo powiązana z naszymi prognozami. Przewidywanie, że te dni są zwyżkowane, ma ograniczone zastosowanie, jeśli nie wiesz, ile cena zostanie przesunięta. Być może twoje prognozy są poprawne tylko w dniach, które dają ci 10 pipsów i dostajesz wszystkie dni, które mają 100 nieprawidłowych kierunków. Co uważasz za lepszy cel dla metody uczenia maszynowego? Tak, masz rację. Jest to duża część powodów, dla których uzyskujemy słabe wyniki przy korzystaniu z algorytmu mapowania liniowego. Ponieważ nasza rentowność jest słabo powiązana z naszymi prognozami. Przewidywanie, że te dni są zwyżkowane, ma ograniczone zastosowanie, jeśli nie wiesz, ile cena zostanie przesunięta. Być może twoje prognozy są poprawne tylko w dniach, które dają ci 10 pipsów i dostajesz wszystkie dni, które mają 100 nieprawidłowych kierunków. Co byś uważał za lepszy cel dla metody uczenia maszynowego Powiedzmy, że jeśli masz 100 pip TP i SL, chciałbym przewidzieć, co jest pierwsze: TP lub SL Przykład: TP była pierwsza 1 SL była pierwsza 0 (lub -1, jakkolwiek to odwzorujesz)

Comments

Popular Posts