Thursday 28 December 2017

Prognozy forex algorytm genetyczny


System handlu Forex oparty na algorytmie genetycznym Cytuj ten artykuł jako: Mendes, L. Godinho, P. Dias, J. J Heuristics (2017) 18: 627. doi: 10.1007s10732-012-9201-y W niniejszym dokumencie zostanie opisany algorytm genetyczny, którego celem jest optymalizacja zestawu reguł, które stanowią system transakcyjny na rynku Forex. Każda osoba w populacji reprezentuje zestaw dziesięciu technicznych zasad handlu (pięć, aby wejść do pozycji i pięć innych, aby wyjść). Te zasady mają łącznie 31 parametrów, które odpowiadają indywidualnym genom. Populacja będzie ewoluować w danym środowisku, zdefiniowanym przez szereg czasowy konkretnej pary walutowej. Sprawność danej osoby odzwierciedla jej zdolność do przystosowania się do otoczenia i jest obliczana przez zastosowanie odpowiednich reguł do szeregów czasowych, a następnie obliczanie stosunku między zyskiem a maksymalnym wypłatą (wskaźnik Stirlinga) . Wykorzystano dwie pary walut: EURUSD i GBPUSD. Różne dane wykorzystano do ewolucji populacji i do testowania najlepszych osób. Omówiono wyniki osiągnięte przez system. Najlepsze osoby są w stanie osiągnąć bardzo dobre wyniki w serii szkoleń. W serii testów opracowane strategie pokazują pewne trudności w osiąganiu pozytywnych wyników, jeśli weźmiesz pod uwagę koszty transakcji. Jeśli zignorujesz koszty transakcji, wyniki są w większości pozytywne, pokazując, że najlepsze osoby mają pewne możliwości prognozowania. Algorytmy genetyczne Finanse Techniczne reguły obrotu Kursy walut obcych Referencje Alvarez-Diaz, M. Alvarez, A. Prognozowanie kursów walut za pomocą algorytmów genetycznych. Appl. Econ. Łotysz. 10 (6), 319322 (2003) CrossRef Google Scholar Brabazon, A. ONeill, M. Ewolucja reguł handlu technicznego dla rynków natychmiastowych na giełdzie przy użyciu ewolucji gramatycznej. Comput. Manag. Sci. 1 (3), 311327 (2004) MATH CrossRef Google Scholar Davis, L. Handbook of Genetic Algorithms. Van Nostrand-Reinhold, New York (1991) Google Scholar Dempster, M. A.H. Jones, C. M. Adaptacyjny system handlu w czasie rzeczywistym wykorzystujący programowanie genetyczne. Quant. Finanse 1 (4), 397413 (2001) CrossRef Google Scholar Dunis, C. Harris, A. i in. Optymalizacja modeli handlu śróddziennego za pomocą algorytmów genetycznych. Neural Netw. World 9 (3), 193223 (1999) Google Scholar Eling, M. Schuhmacher, F. Czy wybór miary wyników wpływa na ocenę funduszy hedgingowych J. Bank. Finanse 31 (9), 26322647 (2007) CrossRef Google Scholar Fama, E. F. Efektywne rynki kapitałowe: przegląd teorii i pracy empirycznej. J. Finance 25 (2), 383417 (1970) CrossRef Google Scholar Goldberg, D. Algorytmy genetyczne w wyszukiwaniu, optymalizacji i uczeniu maszynowym. Addison-Wesley, Reading (1989) MATH Google Scholar Grefenstette, J. J. Algorytmy genetyczne dla zmieniających się środowisk. W: Równoległe rozwiązywanie problemów z natury 2, Bruksela (1992) Google Scholar Harding, D. Nakou, G. i in. Wady i zalety wypłaty jako statystyczna miara ryzyka dla inwestycji. AIMA Journal, kwiecień 1617 (2003) Google Scholar Hirabayashi, A. Aranha, C. et al. Optymalizacja reguły handlu w wymianie walutowej za pomocą algorytmu genetycznego. W: Materiały z 11. Dorocznej Konferencji nt. Genetycznego i Ewolucyjnego Obliczenia GECCO09 (2009) Google Scholar Hryszko, A. Downs, T. System handlu zagranicznego za pomocą algorytmów genetycznych i uczenia się wzmacniania. Int. J. Syst. Sci. 35 (13), 763774 (2004) MATH CrossRef Google Scholar Kaboudan, M. A. Prognozy programowania genetycznego cen akcji. Comput. Econ. 16 (3), 207236 (2000) MATH CrossRef Google Scholar LeBaron, B. Rentowność zasad obrotu technicznego i interwencja walutowa. J. Int. Econ. 49 (1), 125143 (1999) CrossRef Google Scholar LeBaron, B. Rentowność obrotu handlowego na rynkach walutowych w latach 90. (2002) Levich, R. M. Thomas, L. R. Znaczenie technicznych transakcji handlowych na rynku walutowym: podejście typu bootstrap. J. Int. Money Financ. 12 (5), 451474 (1993) CrossRef Google Scholar Menkhoff, L. Taylor, M. P. Uparta pasja profesjonalistów zajmujących się wymianą walut: analiza techniczna. J. Econ. Oświetlony. 45 (4), 936972 (2007) CrossRef Google Scholar Meyers, T. A. Kurs analizy technicznej. McGraw-Hill, New York (1989) Google Scholar Mitchell, M. An Introduction to Genetic Algorithms. MIT Press, Cambridge (1996) Google Scholar Neely, C. Weller, P. Intraday techniczny handel na rynku walutowym. J. Int. Money Financ. 22 (2), 223237 (2003) CrossRef Google Scholar Neely, C. Weller, P. i in. Czy analiza techniczna na rynku walutowym jest opłacalna? Genetyczne podejście do programowania. J. Financ. Quant. Analny. 32 (4), 405426 (1997) CrossRef Google Scholar Neely, C. J. Weller, P. A. et al. Hipoteza rynków adaptacyjnych: dowody z rynku walutowego. J. Financ. Quant. Analny. 44 (02), 467488 (2009) CrossRef Google Scholar Olson, D. Zyski z obrotu na rynkach walutowych spadły z czasem. J. Bank. Finanse 28 (1), 85105 (2004) CrossRef Google Scholar Osman, I. H. Kelly, J. P. Meta-Heuristics: Theory Amp Applications. Kluwer Academic, Dordrecht (1996) MATH Google Scholar Park, C.-H. Irwin, S. H. Co wiemy o opłacalności analizy technicznej J. Econ. Surv. 21 (4), 786826 (2007) CrossRef Google Scholar Pictet, O. V. Dacorogna, M. M. et al. Wykorzystanie algorytmów genetycznych do niezawodnej optymalizacji w aplikacjach finansowych. Neural Netw. World 5 (4), 573587 (1995) Google Scholar Reeves, C. R. Korzystanie z algorytmów genetycznych o małej populacji. W: Materiały z V Międzynarodowej Konferencji Algorytmów Genetycznych. Morgan Kaufmann, San Mateo (1993) Google Scholar Rothlauf, F. Goldberg, D. Redundantne reprezentacje w obliczeniach ewolucyjnych. Raport Laboratorium Algorytmów Genetycznych Illinois (IlliGAL) (2002) Schulmeister, S. Składniki opłacalności technicznego handlu walutami. Appl. Financ. Econ. 18 (11), 917930 (2008) CrossRef Google Scholar Sweeney, R. J. Pokonać rynek walutowy. J. Finance 41 (1), 163182 (1986) Google Scholar Wilson, G. Banzhaf, W. Interday, handel walutami obcymi za pomocą liniowego programowania genetycznego. W: Materiały z 12. dorocznej konferencji na temat obliczeń genetycznych i ewolucyjnych GECCO10 (2017) Google Scholar Informacje o prawach autorskich Springer ScienceBusiness Media, LLC 2017 Autorzy i afiliacje Lus Mendes 1 Pedro Godinho 2 Joana Dias 3 Autor e-maila 1. Faculdade de Economia Universidade de Coimbra Coimbra Portugalia 2. Faculdade de Economia i GEMF Universidade de Coimbra Coimbra Portugalia 3. Faculdade de Economia i Inesc-Coimbra Universidade de Coimbra Coimbra Portugalia O tym artykule Wykorzystanie algorytmów genetycznych do prognozowania rynków finansowych Burton zasugerował w swojej książce "Random Walk Down Wall Street", ( 1973), że małpa z zawiązanymi oczyma rzucająca lotkami na stronach finansowych gazet mogłaby wybrać portfel, który byłby równie dobry, jak starannie dobrany przez ekspertów. Chociaż ewolucja mogła uczynić człowieka nieinteligentnym w wybieraniu akcji, teoria Karola Darwina jest dość skuteczna, gdy jest stosowana bardziej bezpośrednio. (Aby pomóc Ci wybrać akcje, sprawdź, jak wybrać zapas). Co to są algorytmy genetyczne Algorytmy genetyczne (GA) to metody rozwiązywania problemów (lub heurystyki) naśladujące proces naturalnej ewolucji. W przeciwieństwie do sztucznych sieci neuronowych (ANNs), zaprojektowanych tak, aby funkcjonowały jak neurony w mózgu, algorytmy te wykorzystują pojęcia doboru naturalnego w celu określenia najlepszego rozwiązania problemu. W rezultacie GA są powszechnie stosowane jako optymalizatory, które dostosowują parametry w celu zminimalizowania lub zmaksymalizowania niektórych miar sprzężenia zwrotnego, które mogą być następnie wykorzystane niezależnie lub w konstrukcji SSN. Na rynkach finansowych. Algorytmy genetyczne są najczęściej używane do znajdowania najlepszych kombinacji wartości parametrów w regule handlowej i mogą być wbudowane w modele SSN przeznaczone do wybierania akcji i identyfikacji transakcji. Kilka badań wykazało, że metody te mogą okazać się skuteczne, w tym algorytmy genetyczne: Geneza oceny zasobów (2004) przez Ramy i zastosowania algorytmów genetycznych w optymalizacji wydobycia danych giełdowych (2004) Lin, Cao, Wang, Zhang. (Aby dowiedzieć się więcej o ANN, zobacz Sieci neuronowe: prognozy zysków.) Jak działają algorytmy genetyczne Algorytmy genetyczne są tworzone matematycznie za pomocą wektorów, które są wielkościami, które mają kierunek i wielkość. Parametry dla każdej reguły handlowej są reprezentowane za pomocą jednowymiarowego wektora, który można pojmować jako chromosom w kategoriach genetycznych. Tymczasem wartości stosowane w każdym parametrze można uważać za geny, które następnie modyfikuje się za pomocą doboru naturalnego. Na przykład reguła handlowa może wymagać użycia parametrów takich jak Moving Average Convergence-Divergence (MACD). Wykładnicza średnia ruchoma (EMA) i stochastyczna. Algorytm genetyczny wprowadziłby następnie wartości do tych parametrów w celu maksymalizacji zysku netto. Z biegiem czasu wprowadzono niewielkie zmiany, a te, które mają pożądany wpływ, zostały zachowane dla następnego pokolenia. Istnieją trzy rodzaje operacji genetycznych, które można następnie wykonać: Zwroty stanowią reprodukcję i biologiczny zwrot w biologii, w wyniku czego dziecko przyjmuje pewne cechy swoich rodziców. Mutacje reprezentują biologiczną mutację i są używane do zachowania różnorodności genetycznej od jednego pokolenia populacji do następnej przez wprowadzanie losowych małych zmian. Selekcje są etapem, na którym poszczególne genomy są wybierane z populacji do późniejszej hodowli (rekombinacji lub krzyżowania). Te trzy operatory są następnie używane w pięciostopniowym procesie: Inicjalizuj losową populację, gdzie każdy chromosom ma długość n, przy czym n oznacza liczbę parametrów. Oznacza to, że losowa liczba parametrów jest ustalana z każdorazowo n elementami. Wybierz chromosomy lub parametry, które zwiększają pożądane wyniki (prawdopodobnie zysk netto). Zastosuj operatorów mutacji lub crossover do wybranych rodziców i wygeneruj potomstwo. Rekombinacja potomstwa i obecnej populacji w celu utworzenia nowej populacji z operatorem selekcji. Powtórz kroki od drugiego do czwartego. Z biegiem czasu proces ten będzie skutkować coraz bardziej korzystnymi chromosomami (lub parametrami) do zastosowania w regule handlowej. Proces kończy się wtedy, gdy spełnione są kryteria zatrzymania, które mogą obejmować czas pracy, sprawność, liczbę pokoleń lub inne kryteria. (Aby uzyskać więcej informacji na temat MACD, przeczytaj Handel Rozbieżność MACD.) Korzystanie z algorytmów genetycznych w handlu Podczas gdy algorytmy genetyczne są używane głównie przez instytucjonalnych handlowców ilościowych. indywidualni przedsiębiorcy mogą wykorzystać moc algorytmów genetycznych - bez stopnia zaawansowanej matematyki - używając kilku pakietów oprogramowania na rynku. Rozwiązania te obejmują zarówno autonomiczne pakiety oprogramowania ukierunkowane na rynki finansowe, jak i dodatki Microsoft Excel, które mogą ułatwić bardziej praktyczne analizy. Podczas korzystania z tych aplikacji handlowcy mogą definiować zestaw parametrów, które są następnie optymalizowane przy użyciu algorytmu genetycznego i zbioru danych historycznych. Niektóre aplikacje mogą zoptymalizować, które parametry są używane, a wartości dla nich, podczas gdy inne koncentrują się głównie na prostej optymalizacji wartości dla danego zestawu parametrów. (Aby dowiedzieć się więcej na temat strategii pochodnych programu, zobacz Moc transakcji programowych.) Ważne wskazówki i porady dotyczące optymalizacji Dopasowanie krzywej (nad dopasowaniem), projektowanie systemu transakcyjnego wokół danych historycznych zamiast identyfikowania powtarzalnych zachowań, stanowi potencjalne ryzyko dla podmiotów gospodarczych używających algorytmy genetyczne. Każdy system handlu wykorzystujący GA powinien zostać przetestowany na papierze przed użyciem na żywo. Wybór parametrów jest ważną częścią procesu, a handlowcy powinni wyszukiwać parametry, które korelują ze zmianami w cenie danego papieru wartościowego. Na przykład wypróbuj różne wskaźniki i zobacz, czy jakaś wydaje się korelować z ważnymi zmianami na rynku. Algorytmy genetyczne to wyjątkowe sposoby rozwiązywania złożonych problemów dzięki wykorzystaniu siły natury. Stosując te metody do przewidywania cen papierów wartościowych, inwestorzy mogą zoptymalizować reguły handlowe, identyfikując najlepsze wartości dla każdego parametru dla danego zabezpieczenia. Jednak te algorytmy nie są Świętym Graalem, a inwestorzy powinni uważać, aby wybrać właściwe parametry, a nie dopasować krzywej (nad dopasowanie). (Aby dowiedzieć się więcej na temat rynku, zapoznaj się z artykułem Listen To The Market, a nie jego ekspertami). Rodzaj struktury wynagrodzenia, którą zarządzający funduszami hedgingowymi zwykle stosują, w której części wynagrodzenia jest oparty na wynikach. Ochrona przed utratą dochodu, która powstałaby w przypadku śmierci ubezpieczonego. Nazwany beneficjent otrzymuje. Miara związku między zmianą ilości żądanej danego towaru a zmianą jego ceny. Cena. Łączna wartość rynkowa w dolarach wszystkich dostępnych akcji spółki. Kapitalizacja rynkowa jest obliczana poprzez pomnożenie. Frexit krótko dla quotFrench exitquot to francuski spinoff terminu Brexit, który pojawił się, gdy Wielka Brytania głosowała. Zlecenie złożone z brokerem, który łączy w sobie funkcje zlecenia stopu z zleceniami limitów. Zamówienie stop-limit to algorytm genetyczny. SnowCron w systemach transakcyjnych FOREX wykorzystujący algorytm genetyczny do stworzenia dochodowej strategii handlowej FOREX. Algorytm genetyczny w sieci neuronowej Cortex Oprogramowanie Feedforward Backpropagation Aplikacja sieci neuronowej do obliczeń opartych na obliczeniach genetycznych Forex. W tym przykładzie wykorzystano koncepcje i pomysły z poprzedniego artykułu, dlatego proszę najpierw zapoznać się z algorytmem genetycznym sieci neuronowej w systemach handlu FOREX, choć nie jest to obowiązkowe. O tym tekście Przede wszystkim przeczytaj zrzeczenie. Jest to przykład zastosowania funkcji algorytmu genetycznego Cortex Neural Networks Software, a nie przykładu na to, jak prowadzić zyskowną działalność. Nie jestem twoim guru, nie powinienem też odpowiadać za twoje straty. Oprogramowanie Cortex Neural Networks ma sieci neuronowe, a FFBP, o którym mówiliśmy wcześniej, jest tylko jednym ze sposobów wyboru strategii handlu forex. Jest to dobra technika, mocna i odpowiednio zastosowana, bardzo obiecująca. Ma jednak problem - nauczyć Neural Network. musimy znać pożądane wyniki. Łatwo to zrobić, gdy wykonujemy aproksymację funkcji, po prostu bierzemy prawdziwą wartość funkcji, ponieważ wiemy, jaka powinna być. Kiedy wykonujemy prognozę sieci neuronowej. używamy techniki (opisanej w poprzednich artykułach) nauczania sieci neuronowej w historii, ponownie, jeśli przewidujemy, powiedzmy, kurs wymiany, wiemy (w trakcie szkolenia), co jest właściwą prognozą. Jednak, gdy budujemy system transakcyjny, nie mamy pojęcia, jaka jest prawidłowa decyzja handlowa, nawet jeśli znamy kurs wymiany. W rzeczywistości mamy wiele strategii handlu forex, z których możemy korzystać w dowolnym momencie, oraz musimy znaleźć dobrą - jak to, co powinniśmy nakarmić jako pożądany wynik naszej sieci neuronowej? Jeśli śledziłeś nasz poprzedni artykuł, wiesz, że oszukiwaliśmy, aby poradzić sobie z tym problemem. Nauczyliśmy się sieci neuronowej, aby przewidzieć kurs walutowy (lub wskaźnik oparty na kursie walutowym), a następnie wykorzystać tę prognozę do handlu. Następnie, poza częścią programu Neural Network, podjęliśmy decyzję, która sieć neuronowa jest najlepsza. Algorytmy genetyczne mogą poradzić sobie z tym problemem bezpośrednio, mogą rozwiązać problem określony jako znajdowanie najlepszych sygnałów handlowych. W tym artykule zamierzamy użyć oprogramowania Cortex Neural Networks do stworzenia takiego programu. Algorytmy genetyczne Algorytmy genetyczne są bardzo dobrze rozwinięte i bardzo zróżnicowane. Jeśli chcesz dowiedzieć się wszystkiego na ich temat, sugeruję użycie Wikipedii, ponieważ ten artykuł dotyczy tylko tego, co potrafi zrobić oprogramowanie Cortex Neural Networks. Oprogramowanie Cortex Neural Networks. możemy stworzyć sieć neuronową, która pobiera dane wejściowe, powiedzmy, wartości wskaźnika, i produkuje pewne sygnały wyjściowe, powiedzmy, sygnały transakcyjne (kup, sprzedaj, wstrzymaj) i przestań tracić poziomy zysku dla pozycji do otwarcia. Oczywiście, jeśli losowo obciążymy te sieci neuronowe, wyniki handlu będą straszne. Jednak powiedzmy, że stworzyliśmy kilkanaście takich NN. Następnie możemy przetestować wydajność każdego z nich i wybrać najlepszy, zwycięzca. To była pierwsza generacja NN. Aby przejść do drugiego pokolenia, musimy pozwolić naszemu zwycięzcy rozmnażać się, ale aby uniknąć uzyskania identycznych kopii, dodajmy losowe szumy do jego ciężaru zejścia. W drugim pokoleniu mamy zwycięzcę pierwszej generacji i jego niedoskonałe (zmutowane) kopie. Ponownie testujmy. Będziemy mieć kolejnego zwycięzcę, który jest LEPIEJ, a następnie jakakolwiek inna sieć neuronowa w pokoleniu. I tak dalej. Po prostu pozwalamy zwycięzcom na rozmnażanie i eliminujemy przegranych, tak jak w ewolucji w prawdziwym życiu, a my otrzymamy naszą najlepiej sprzedającą się Sieć Neuronową. bez uprzedniej wiedzy na temat tego, jak powinien wyglądać system transakcyjny (algorytm genetyczny). Sieci neuronowe Genetyczny algorytm: Przykład 0 Jest to pierwszy przykład algorytmu genetycznego. i bardzo prosty. Przejdziemy przez to krok po kroku, aby nauczyć się wszystkich sztuczek, których użyjemy w poniższych przykładach. Kod zawiera wbudowane komentarze, pozwala więc skupić się na najważniejszych momentach. Najpierw stworzyliśmy sieć neuronową. Używa losowych ciężarów i nie został jeszcze nauczony. Następnie, w cyklu, robimy 14 kopii tego, używając MUTATIONNN fumction. Ta funkcja tworzy kopię źródłowej sieci neuronowej. dodawanie losowych wartości od 0 do (w naszym przypadku) 0,1 do wszystkich wag. Zachowujemy uchwyty do wynikowych 15 NN w tablicy, możemy to zrobić, ponieważ uchwyt jest po prostu liczbą całkowitą. Powód, dla którego używamy 15 numerów NN, nie ma nic wspólnego z handlem: oprogramowanie Cortex Neural Networks może jednocześnie wydrukować do 15 linii na wykresie. Możemy użyć różnych podejść do testowania. Po pierwsze, możemy użyć zestawu do nauki, wszystko na raz. Po drugie, możemy przetestować na, powiedzmy, 12000 plików (na 100000) i przejść przez zestaw do nauki, od początku do końca. To sprawi, że uczenie się będzie inne, ponieważ będziemy poszukiwać sieci neuronowych, które przynoszą zyski na danej części danych, a nie tylko na całym zestawie. Drugie podejście może przysporzyć nam problemów, jeśli dane ulegną zmianie, od początku do końca. Wtedy sieć będzie ewoluować, uzyskując możliwość wymiany na końcu zbioru danych i tracąc zdolność do handlowania na samym początku. Aby rozwiązać ten problem, pobieramy losowo 12000 fragmentów rekordów z danych i przesyłamy je do sieci neuronowej. jest po prostu nieskończonym cyklem, ponieważ 100000 cykli nigdy nie zostanie osiągnięte z naszą prędkością. Poniżej dodajemy jedno dziecko dla każdej sieci, z nieco odmiennymi wagami. Zauważ, że 0.1 dla mutacji mutacji nie jest jedynym wyborem, a nawet fakt, że nawet ten parametr można zoptymalizować za pomocą algorytmu genetycznego. Nowo utworzone NN są dodawane po 15 istniejących. W ten sposób mamy 30 NN w tablicy, 15 starych i 15 nowych. Potem zrobimy następny cykl testów i zabijamy przegranych, z obu generacji. Aby wykonać test, stosujemy sieć neuronową do naszych danych, aby uzyskać wyniki, a następnie wywołujemy funkcję testową, która wykorzystuje te wyniki do symulacji handlu. Wyniki handlu są używane do deside, które NN są najlepsze. Używamy przedziału rekordów nLearn od nStart do nStart nLearn, gdzie nStart jest losowym punktem w zestawie uczącym. Poniższy kod to sztuczka. Powodem, dla którego go używamy, jest zilustrowanie faktu, że algorytm genetyczny może stworzyć algorytm genetyczny. ale niekoniecznie będzie najlepszy, a także sugerować, że możemy poprawić wyniki, jeśli implikujemy pewne ograniczenia procesu uczenia się. Jest możliwe, że nasz system transakcyjny działa bardzo dobrze na długich transakcjach, a bardzo słabo w krótkim czasie i na odwrót. Jeśli, powiedzmy, długie transakcje są BARDZO dobre, ten algorytm genetyczny może wygrać, nawet przy dużych stratach na krótkich transakcjach. Aby tego uniknąć, przypisujemy większą wagę do długich transakcji w nieparzystych i krótkich transakcjach w cyklach parzystych. To tylko przykład, nie ma gwarancji, że coś ulepszy. Więcej na ten temat poniżej, w dyskusji na temat korekt. Technicznie, nie musisz tego robić, lub możesz zrobić to inaczej. Dodaj zysk do posortowanej tablicy. Zwraca pozycję wstawienia, następnie używamy tej pozycji, aby dodać uchwyt sieci neuronowej, ucząc się i testując zyski na nie sortowanych tablicach. Teraz mamy dane dla aktualnej sieci neuronowej o tym samym indeksie tablicy co jej zysk. Chodzi o to, aby dotrzeć do tablicy NN, posortowanej według dochodowości. Ponieważ tablica jest sortowana według zysku, aby usunąć 12 sieci, które są mniej opłacalne, wystarczy usunąć NN od 0 do 14 Decyzje handlowe są oparte na wartości sygnału sieci neuronowej, z tego punktu widzenia program jest identyczny z przykładami z poprzedni artykuł. Strategia handlowa FOREX: Omówienie przykładu 0 Przede wszystkim rzućmy okiem na wykresy. Pierwszy wykres zysku w pierwszej iteracji nie jest w ogóle dobry, jak należy się spodziewać, sieć neuronowa traci pieniądze (image evolution ewg00gen0.png skopiowany po pierwszej iteracji z folderu images): obraz zysku z cyklu 15 jest lepszy, czasem algorytm genetyczny może się uczyć bardzo szybko: należy jednak zauważyć nasycenie na krzywej dochodowości. Interesujące jest również spojrzenie na zmianę indywidualnych zysków, pamiętając, że numer krzywej, powiedzmy, 3 nie zawsze jest dla tej samej sieci neuronowej. ponieważ rodzą się i znikają cały czas: Zwróć też uwagę, że mały automatyczny system transakcyjny na rynku Forex działa słabo na krótkich transakcjach, a znacznie lepiej na długich, co może lub nie może być związane z faktem, że dolara spadało w porównaniu do euro w tym okresie. Może również mieć coś wspólnego z parametrami naszego wskaźnika (może, potrzebujemy innego czasu na szorty) lub wyborem wskaźników. Oto historia po 92 i 248 cyklach: ku naszemu zaskoczeniu, algorytm genetyczny zakończył się niepowodzeniem. Spróbujmy dowiedzieć się, dlaczego i jak pomóc w tej sytuacji. Po pierwsze, nie każde pokolenie powinno być lepsze niż poprzednie. Odpowiedź brzmi nie, przynajmniej nie w modelu, którego używaliśmy. Gdybyśmy wzięli komplet ENTIRE na raz i użyli go wielokrotnie, aby uczyć nasze NN, to tak, poprawią się w każdym pokoleniu. Zamiast tego wzięliśmy losowe fragmenty (12000 rekordów w czasie) i użyliśmy ich. Dwa pytania: dlaczego system zawiódł na losowych fragmentach zestawu uczącego i dlaczego nie użyliśmy całego zestawu uczącego. Aby odpowiedzieć na drugie pytanie, zrobiłem. NNs wykonali bardzo wiele - na zestawie do nauki. I nie udało im się ustalić zestawu testów, z tego samego powodu, który zawodzi, kiedy używaliśmy uczenia FFPB. Mówiąc inaczej, nasze NN zostały zbyt mocno wyspecjalizowane, nauczyły się, jak przetrwać w środowisku, do którego są przyzwyczajeni, ale nie na zewnątrz. Dzieje się to z natury. Podejście, które podjęliśmy, miało na celu zrekompensowanie tego, zmuszając NN do wykonywania dobrych wyników na dowolnym losowym fragmencie zbioru danych, tak więc, miejmy nadzieję, mogliby również wykonać na nieznanym zestawie testów. Zamiast tego zawiodły one zarówno w testowaniu, jak i w zestawie do nauki. Wyobraź sobie zwierzęta żyjące na pustyni. Dużo słońca, bez śniegu. Jest to metafora dla rynku rosnącego, ponieważ dane NNs odgrywają rolę środowiska. Zwierzęta nauczyły się żyć na pustyni. Wyobraź sobie zwierzęta żyjące w zimnym klimacie. Śnieg i nie ma słońca. Cóż, dostosowali się. Jednak w naszym eksperymencie losowo umieściliśmy nasze NN na pustyni, w śniegu, w wodzie, na drzewach. przedstawiając im różne fragmenty danych (losowo wschodzące, opadające, płaskie). Zwierzęta umarły. Lub, inaczej mówiąc, wybraliśmy najlepszą sieć neuronową dla losowego zestawu danych 1, który, powiedzmy, był dla rosnącego rynku. Następnie przedstawiliśmy zwycięzcom i ich dzieciom dane o spadających rynkach. NN działały słabo, wzięliśmy najlepsze ze słabych wykonawców, być może, jednego z zmutowanych dzieci, które straciło zdolność do handlowania na rosnącym rynku, ale dostało pewną umiejętność radzenia sobie z upadkiem. Potem znów przewróciliśmy stół i znów osiągnęliśmy najlepsze wyniki - ale najlepsze wśród słabych wykonawców. Po prostu nie daliśmy naszym NN szans na uniwersalizację. Istnieją techniki pozwalające algorytmowi genetycznemu na uczenie się nowych informacji bez utraty wydajności na starych informacjach (w końcu zwierzęta mogą żyć latem i zimą, tak, więc ewolucja jest w stanie poradzić sobie z powtarzającymi się zmianami). Możemy omawiać te techniki później, chociaż w tym artykule chodzi bardziej o używanie oprogramowania Cortex Neural Networks. niż budowanie skutecznego automatycznego systemu handlu forex. Algorytm genetyczny sieci neuronowej: Przykład 1 Teraz pora mówić o poprawkach. Prosty algorytm genetyczny, który stworzyliśmy podczas poprzedniego kroku, ma dwie główne wady. Po pierwsze, nie udało mu się handlować z zyskiem. Jest ok, możemy spróbować użyć częściowo wyszkolonego systemu (na początku był opłacalny). Druga wada jest poważniejsza: nie mamy kontroli nad rzeczami, które ten system robi. Na przykład może się nauczyć być opłacalnym, ale z ogromnymi wypłatami. Jest dobrze znanym faktem, że w rzeczywistości ewolucja może zoptymalizować więcej niż jeden parametr jednocześnie. Na przykład możemy zdobyć zwierzę, które może biec szybko I być odporne na zimno. Dlaczego nie spróbować zrobić tego samego w naszym systemie zautomatyzowanym handlu forex. Jest tak, kiedy używamy poprawek, które są niczym innym, jak zestawem dodatkowych kar. Powiedzmy, nasz system handluje z wypłatą 0,5, a my chcemy potwierdzić to przedziałem 0 - 0.3. Aby powiedzieć systemowi, że popełnił błąd, zmniejszamy jego zysk (jeden używany do określenia, który algorytm genetyczny wygrał) w stopniu, który jest proporcjonalny do wielkości DD. Następnie algorytm ewolucji zajmie się resztą. Jest jeszcze kilka czynników, które chcemy wziąć pod uwagę: możemy chcieć mieć mniej więcej taką samą liczbę operacji kupna i sprzedaży, chcemy mieć więcej rentownych operacji, potem niepowodzeń, możemy chcieć wykres zysków być liniowe i tak dalej. W evolution01.tsc implementujemy prosty zestaw poprawek. Przede wszystkim używamy dużej liczby dla początkowej wartości korekty. Powielamy je do małych (zwykle od 0 do 1) wartości, w zależności od kary, którą chcemy zastosować. Następnie pomnożymy nasz zysk do tej korekty. W rezultacie zysk zostaje skorygowany, aby odzwierciedlić, jak bardzo algorytm genetyczny odpowiada naszym innym kryteriom. Następnie używamy wyniku, aby znaleźć zwycięzcę sieci neuronowej. Strategia transakcyjna FOREX: Omówienie przykładu 1 Przykład 1 działa znacznie lepiej niż przykład 0. Podczas pierwszych 100 cykli wiele się nauczyło, a wykresy zysków wyglądają uspokajająco. Jednakże, jak w przykładzie 0, długie transakcje są dużo bardziej opłacalne, co najprawdopodobniej oznacza, że ​​istnieje problem w naszym podejściu. Niemniej jednak, system znalazł równowagę między paroma sprzecznymi warunkami początkowymi: Istnieje pewna pozytywna dynamika zarówno w zestawie uczącym, jak i, co ważniejsze, w zestawie testowym. Jeśli chodzi o dalsze uczenie się, w cyklu 278 widać, że nasz system został przetrenowany. Oznacza to, że wciąż mamy postęp w zakresie uczenia się: ale zestaw testów wykazuje słabość: jest to powszechny problem z NN: kiedy uczymy go na zestawie do nauki, uczy się radzić sobie z nim, a czasami zbyt dobrze się uczy - do stopień, kiedy traci wydajność w zestawie testowym. Aby poradzić sobie z tym problemem, stosuje się tradycyjne rozwiązanie: wciąż poszukujemy sieci neuronowej. który najlepiej sprawdza się w zestawie testowym i zapisuje go, zastępując poprzednią najlepszą, za każdym razem, gdy osiąga nowy szczyt. To jest to samo podejście, które stosowaliśmy w szkoleniu FFBP, ale tym razem musimy to zrobić sami (dodając kod, który szuka najlepszej sieci neuronowej na zestawie testowym i wywołując SAVENN lub eksportując wagi sieci neuronowej do plik). W ten sposób, gdy przerwiesz trening, będziesz miał najlepszego wykonawcę na SET TESTOWANIA zapisanego i czekającego na ciebie. Zauważ też, że to nie jest maksimum. zysk, którego szukasz, ale optymalna wydajność, więc rozważ użycie korekt, gdy szukasz najlepszego wykonawcy na zestawie testowym. Genetyczny algorytm analizy FOREX: Gdzie teraz Po zdobyciu zwycięzcy sieci neuronowej. możesz wykonać kroki opisane w poprzednim artykule, aby wyeksportować wagi tej sieci neuronowej. a następnie użyć ich na platformie transakcyjnej w czasie rzeczywistym, takiej jak Meta Trader, Trade Station i tak dalej. Możesz także skupić się na innych sposobach optymalizacji sieci neuronowej. w odróżnieniu od algorytmu FFBP, możesz pobrać test z zestawu do nauki i testowania, a także przenieść sekwencyjne uczenie się. Pobierz Cortex Order Cortex Zobacz cennik Widoczność jest bardzo ważna dla tej witryny. Jeśli Ci się spodoba, połącz się z tym adresem URL

No comments:

Post a Comment