Thursday 23 November 2017

Automatyzowane forex trading algorytmy przykłady


Podstawy handlu algorytmicznego: pojęcia i przykłady Algorytm jest określonym zestawem jasno zdefiniowanych instrukcji przeznaczonych do realizacji zadania lub procesu. Handel algorytmiczny (zautomatyzowany handel, handel na czarno lub po prostu algo-trading) to proces korzystania z komputerów zaprogramowanych podążać za określonym zestawem instrukcji dotyczących wprowadzania handlu w celu osiągnięcia zysków z prędkością i częstotliwością niemożliwą do ludzkim przedsiębiorcą. Określone zestawy reguł opierają się na czasie, cenie, ilości lub modelu matematycznym. Oprócz możliwości zysku dla przedsiębiorcy, algorytm handlu sprawia, że ​​rynki są bardziej płynne i sprawiają, że handel jest bardziej systematyczny, wykluczając emocjonalny wpływ człowieka na działalność handlową. Załóżmy, że przedsiębiorca postępuje zgodnie z tymi prostymi kryteriami handlowymi: Kup 50 udziałów w akcji, gdy średnia 50-dniowa średnia ruchoma przekracza 200-dniową średnią ruchową Sprzedaj akcje, gdy średnia 50-dniowa średnia ruchoma spadnie poniżej 200-dniowej średniej ruchomej Używając tego zestawu dwóch prostych instrukcji, łatwo jest napisać program komputerowy, który automatycznie monitoruje cenę akcji (i średnie wskaźniki ruchome) i umieści zamówienia kupna i sprzedaży, gdy spełnione zostaną określone warunki. Przedsiębiorca nie musi już trzymać zegarka na żywe ceny i wykresy, lub ręcznie złożyć zamówienie. Algorytmiczny system obrotu automatycznie to robi dla niego, poprawnie identyfikując szansę handlową. Algo-trading oferuje następujące korzyści: transakcje wykonywane w najlepszych cenach natychmiastowe i dokładne umieszczenie zleceń handlowych (dzięki temu duże szanse na realizację na pożądanym poziomie) transakcje handlowe poprawne i natychmiastowe ustalenie terminów, aby uniknąć znacznych zmian cen Zmniejszone koszty transakcji (patrz przykład niedoboru implementacji poniżej) Jednoczesne automatyczne sprawdzanie wielu warunków rynkowych Zmniejszone ryzyko ręcznych błędów w wprowadzaniu transakcji Sprawdzić algorytm, oparty na dostępnych danych historycznych i czasie rzeczywistym Redukcja możliwość popełnienia błędu przez handlarzy w oparciu o czynniki emocjonalne i psychologiczne Największą częścią handlu algobierczego jest handel wysokonakładowy (HFT), który stara się wykorzystać duże ilości zamówień z dużą szybkością na wielu rynkach i podejmować wiele decyzji parametrów, w oparciu o zaprogramowane instrukcje. (Więcej informacji na temat handlu wysokonapięciowego można znaleźć pod adresem: Strategie i tajemnice firm z zakresu handlu wysokimi częstotliwościami (HFT)) Algo-trading jest używany w wielu formach handlowych i inwestycyjnych, w tym: inwestorzy średnio - i długoterminowi lub firmy zajmujące się zakupem (fundusze emerytalne , fundusze inwestycyjne, firmy ubezpieczeniowe), które kupują w dużych ilościach, ale nie chcą wpływać na ceny akcji z dyskretnymi, wielkogabarytowymi inwestycjami. Krótkoterminowe podmioty handlowe i sprzedające strony uczestniczące w rynku (specjaliści zajmujący się sprawami rynku, spekulanci i arbitraże) również korzystają z zautomatyzowanej realizacji handlowej, a takŜe pomocy handlowej w celu zapewnienia wystarczającej płynności dla sprzedawców na rynku. Systematyczni handlarze (zwolennicy trendów, par handlowcy, fundusze hedgingowe itd.) Uważają, że programowanie reguł handlowych jest o wiele bardziej efektywne i niech program handlu się automatycznie. Handel algorytmiczny zapewnia bardziej systematyczne podejście do aktywnego handlu niż metody oparte na intuicji czy instynktie dla ludzi. Algorytmiczne strategie handlowe Każda strategia handlu algorytmicznego wymaga zidentyfikowanej możliwości, która jest korzystna pod względem poprawy zarobków lub redukcji kosztów. Poniżej wymieniono wspólne strategie handlowe stosowane w handlu algorytmem handlu: najczęstsze algorytmiczne strategie handlowe są zgodne z trendami w średnich krokach. kanały. zmian poziomu cen i powiązanych wskaźników technicznych. Są to najprostsze i najprostsze strategie wdrażania poprzez algorytmiczny handel, ponieważ te strategie nie wymagają przewidywania ani prognoz cen. Transakcje są inicjowane w oparciu o pojawienie się pożądanych trendów. które są łatwe i łatwe do zaimplementowania za pomocą algorytmów, nie wchodząc w złożoność analizy predyktywnej. Powyższy przykład 50 i 200-dniowej średniej ruchowej jest popularną tendencją po strategii. (Więcej informacji na temat strategii handlowych, patrz: Proste strategie na rzecz wykorzystania trendów). Kupowanie podwójnego zapasu notowanego na giełdzie po niższej cenie na jednym rynku, a jednocześnie sprzedaż go po wyższej cenie na innym rynku, zapewnia różnicę cen jako zysk bez ryzyka lub arbitrażu. Ta sama operacja może być powtórzona w odniesieniu do zapasów w porównaniu z instrumentami terminowymi, ponieważ różnice czasowe istnieją od czasu do czasu. Wdrożenie algorytmu umożliwiającego identyfikację takich różnic cenowych i wprowadzanie zleceń umożliwia skuteczne zyskowne możliwości. Fundusze indeksowe określiły okresy ponownego bilansowania, aby ich udziały były porównywalne z ich odpowiednikami. Stwarza to rentowne możliwości dla podmiotów zajmujących się algorytmem, którzy wykorzystują spodziewane transakcje, które oferują 20-80 punktów bazowych zyski w zależności od liczby zasobów w funduszu indeksowym, tuż przed reorganizacją funduszy indeksowych. Takie transakcje są inicjowane za pomocą algorytmicznych systemów handlowych dla terminowej realizacji i najlepszych cen. Wiele sprawdzonych modeli matematycznych, takich jak delta-neutralna strategia handlowa, które umożliwiają handel połączeniami i zabezpieczeniami. gdzie transakcje są umieszczane w celu zrównoważenia dodatnich i ujemnych delt, tak aby delta portfela utrzymywana była na poziomie zera. Średnia strategia rewersji opiera się na założeniu, że wysokie i niskie ceny aktywów są zjawiskiem przejściowym, które co jakiś czas wracają do wartości średniej. Identyfikacja i definiowanie zakresu cen oraz algorytm implementacji polegający na tym, że transakcje mogą być umieszczane automatycznie, gdy cena aktywów przechodzi w i poza określony zakres. Średnia strategia cen ważona woluminem łamie duży porządek i uwalnia dynamicznie określone mniejsze kawałki zlecenia na rynek, używając szczegółowych profili wielkości magazynowych. Celem jest zrealizowanie zamówienia blisko średniej ceny ważonej (VWAP), a tym samym skorzystanie ze średniej ceny. Strategia średniej ważonej według średniej ceny powoduje zerwanie dużego zlecenia i uwalnia dynamicznie określone mniejsze kawałki zlecenia na rynek przy użyciu równomiernie rozstawionych szczelin czasowych między początkiem a końcem. Celem jest zrealizowanie zlecenia blisko średniej ceny między początkiem a końcem, minimalizując tym samym wpływ na rynek. Dopóki nie zostanie w pełni wypełniony zlecenie handlowe, ten algorytm nadal wysyła częściowe zlecenia, zgodnie z określonym współczynnikiem partycypacji i według wielkości obrotu na rynkach. Strategia powiązanych kroków wysyła zamówienia w zdefiniowanym przez użytkownika procentie wolumenu rynku i zwiększa lub zmniejsza ten udział, gdy cena akcji osiągnie poziom zdefiniowany przez użytkownika. Strategia niedoboru wdrożenia ma na celu zminimalizowanie kosztu realizacji zleceń przez zerwanie z rynkiem w czasie rzeczywistym, a tym samym zaoszczędzenie na kosztach zamówienia i korzystanie z kosztu możliwości opóźnienia w realizacji. Strategia zwiększy ukierunkowaną stopę partycypacji, gdy cena akcji wzrośnie korzystnie i spadnie, gdy kurs akcji spadnie negatywnie. Istnieje kilka specjalnych klas algorytmów, które próbują zidentyfikować wydarzenia z drugiej strony. Te algorytmy wąchania, używane na przykład przez producenta strony sprzedającego, mają wbudowaną inteligencję w celu zidentyfikowania istnienia algorytmów po stronie kupna dużego zamówienia. Takie wykrycie za pomocą algorytmów pomogą animatorowi zidentyfikować duże możliwości zlecenia i umożliwić mu skorzystanie z zamówień po wyższej cenie. Jest to czasami identyfikowane jako front-high-tech. (Więcej informacji na temat handlu i fałszywych praktyk o wysokiej częstotliwości można znaleźć pod adresem: Jeśli kupujesz zapasy online, jesteś zaangażowany w transakcje typu HFT). Wymagania techniczne dotyczące handlu algorytmicznego Wdrażanie algorytmu przy użyciu programu komputerowego jest ostatnią częścią, połączoną z kontrolą wsteczną. Wyzwaniem jest przekształcenie zidentyfikowanej strategii w zintegrowany skomputeryzowany proces, który ma dostęp do konta handlowego do składania zamówień. Potrzebne są następujące informacje: znajomość programowania komputerowego w celu zaprogramowania wymaganej strategii handlowej, wynajętych programistów lub gotowych oprogramowania handlowego Połączenie sieciowe i dostęp do platform transakcyjnych w celu składania zleceń Dostęp do danych danych rynkowych, które będą monitorowane przez algorytm możliwości umieszczania zamówień Zdolność i infrastruktura do testowania systemu po jego zbudowaniu, zanim pojawi się na rynku rzeczywistym Dostępne dane historyczne dotyczące testów wstecznych, w zależności od złożoności reguł implementowanych w algorytmie Oto przykładowy przykład: Royal Dutch Shell (RDS) jest notowany w Amsterdamie Giełda Papierów Wartościowych (AEX) i Giełda Papierów Wartościowych w Londynie (LSE). Pozwala zbudować algorytm identyfikujący możliwości arbitrażu. Oto kilka interesujących obserwacji: transakcje AEX w euro, podczas gdy transakcje LSE w funtach szterlinga Ze względu na jednoroczną różnicę czasu, AEX otwiera godzinę wcześniej niż LSE, a następnie obie giełdy handluje jednocześnie na kilka godzin, a następnie tylko w handlu LSE ostatnia godzina zamknięcia AEX Czy możemy zbadać możliwość arbitrażu handlowego na Royal Dutch Shell notowanego na tych dwóch rynkach w dwóch różnych walutach Program komputerowy, który potrafi odczytywać aktualne ceny rynkowe Kanały z ceny LSE i AEX A Kurs walutowy GBP-EUR Możliwość wprowadzania zamówień, które mogą kierować kolejnością do prawidłowej wymiany Zdolność do testowania wstecznego w przypadku historycznych cen towarów Program komputerowy powinien spełniać następujące wymagania: Przeczytaj nadchodzący kanał cenowy zasobów RDS z obu transakcji Korzystając z dostępnych kursów walut . przelicz cenę jednej waluty na inną Jeśli istnieje wystarczająco duża rozbieżność cen (dyskontowanie kosztów maklerskich), co prowadzi do zyskownej możliwości, a następnie złożyć zamówienie na niższą cenę wymiany i zlecenia sprzedaży na wyższej cenie wymiany Jeśli zlecenia są wykonywane jako pożądane, zysku arbitrażu będzie postępować prosty i łatwy Jednak praktyka handlu algorytmicznego nie jest tak proste w utrzymaniu i realizacji. Pamiętaj, że jeśli możesz umieścić handel algorytmem, to też inni uczestnicy rynku. W konsekwencji ceny wahają się w mili lub nawet mikrosekundach. W powyższym przykładzie, co się stanie, jeśli twój zakup kupuje się, ale sprzedaj handel nie robi, ponieważ ceny sprzedaży zmieniają się o czas, kiedy Twoje zamówienie uderza w rynek. Skończysz na pozycji otwartej. sprawiając, że strategia arbitrażu jest bezwartościowa. Istnieje dodatkowe ryzyko i wyzwania: na przykład ryzyko awarii systemu, błędy połączeń sieciowych, opóźnienia czasowe między zamówieniami handlowymi a wykonywaniem, a co najważniejsze, niedoskonałe algorytmy. Im bardziej złożony algorytm, tym bardziej rygorystyczne testowanie wsteczne jest potrzebne przed jego wprowadzeniem w życie. Ilościowa analiza wyników algorytmów odgrywa ważną rolę i powinna być zbadana krytycznie. Jego ekscytujące, aby przejść do automatyzacji wspomaganej przez komputery z myślą, aby zarabiać bez wysiłku. Musimy jednak upewnić się, że system jest dokładnie testowany i wymagane limity są ustawione. Przedsiębiorcy analityczni powinni rozważyć samodzielne programowanie programów nauczania i budowanie systemów, aby mieć pewność, że wdrażanie właściwych strategii w sposób niezawodny. Ostrożne użycie i dokładne testowanie algo-tradingu może przynosić opłacalne możliwości. Strategie dla handlu algorytmami Forex W wyniku niedawnych kontrowersji, rynek forex został pod ścisłą kontrolą. Cztery największe banki zostały uznane za winne manipulacji kursami walut obcych, co obiecuje znaczne przychody ze znacznym przychodem ze średnio niskim ryzykiem. W szczególności największe na świecie banki zgodziły się manipulować ceną dolara i euro w USA od 2007 r. Do 2017 r. Rynek walutowy jest znacznie nieregulowany pomimo obsługi 5 bilionów transakcji każdego dnia. W rezultacie organy nadzoru wezwały do ​​przyjęcia handlu algorytmicznego. system, który wykorzystuje modele matematyczne na elektronicznej platformie do wykonywania transakcji na rynku finansowym. Ze względu na dużą liczbę codziennych transakcji handel algorytm forex zapewnia większą przejrzystość, efektywność i eliminuje ludzkie nastawienie. Szereg różnych strategii może prowadzić przedsiębiorcy lub przedsiębiorstwa na rynku forex. Na przykład hedging automatyczny odnosi się do stosowania algorytmów w celu zabezpieczenia ryzyka portfela lub skutecznego wyrównywania pozycji. Oprócz automatycznego hedgingu strategie algorytmiczne obejmują transakcje statystyczne, algorytmiczną realizację, bezpośredni dostęp do rynku i handel wysokonakładowy, z których wszystkie mogą być stosowane do transakcji forex. Automatyczne zabezpieczanie Inwestowanie, zabezpieczenie to po prostu sposób na zabezpieczenie aktywów przed znacznymi stratami, zmniejszając kwotę, którą można stracić, jeśli coś się nie wydarzy. W handlu algorytmicznym zabezpieczenie może być zautomatyzowane w celu zmniejszenia narażenia przedsiębiorcy na ryzyko. Te automatycznie generowane zlecenia zabezpieczające są zgodne z określonymi modelami w celu zarządzania i monitorowania poziomu ryzyka portfela. Na rynku walutowym podstawowymi metodami transakcji zabezpieczających są kontrakty terminowe i opcje walutowe. Kontrakty typu Spot to zakup lub sprzedaż waluty obcej z natychmiastową dostawą. Rynek spotowy fprex znacznie wzrósł od wczesnych lat dwudziestych z powodu napływu platform algorytmicznych. W szczególności gwałtowna proliferacja informacji, odzwierciedlona w cenach rynkowych, umożliwia pojawienie się arbitrażu. Możliwości arbitrażu występują, gdy kursy walut stają się niezgodne. Trójkątny arbitraż. jak wiadomo na rynku walutowym, jest procesem konwersji jednej waluty na siebie poprzez wiele różnych walut. Przedsiębiorcy z algorytmem i wysokoczęstotliwością mogą zidentyfikować te możliwości za pomocą automatycznych programów. Jako pochodna. opcje walutowe działają w podobny sposób jak opcja na innych rodzajach papierów wartościowych. Opcje walut obcych umożliwiają nabywcy prawo do zakupu lub sprzedaży pary walutowej przy określonym kursie wymiany w pewnym momencie w przyszłości. Programy komputerowe mają zautomatyzowane opcje binarne jako alternatywny sposób na zabezpieczenie transakcji walutowych. Opcje binarne są rodzajem opcji, w przypadku gdy wypłaty przyjmują jeden z dwóch wyników: handel rozlicza się do zera lub w ustalonej cenie strajkowej. Analiza statystyczna W przemyśle finansowym analiza statystyczna pozostaje ważnym narzędziem do pomiaru ruchów cenowych w czasie. Na rynku walutowym wskaźniki techniczne służą do identyfikacji wzorców, które mogą pomóc w przewidywaniu przyszłych zmian cen. Zasadą powtarzania historii jest fundamentalna analiza techniczna. Ponieważ rynki walutowe działają 24 godziny na dobę, duża ilość informacji zwiększa statystycznie znaczenie prognoz. Ze względu na rosnące wyrafinowanie programów komputerowych algorytmy zostały wygenerowane zgodnie ze wskaźnikami technicznymi, w tym średnią ruchomą MACD i względny indeks siły (RSI). Programy algorytmiczne sugerują konkretne czasy, w jakich walutach należy kupować lub sprzedawać. Algorytmiczne wykonanie Algorytmiczne transakcje wymagają strategii wykonywalnej, którą zarządzający funduszami mogą wykorzystać do kupowania lub sprzedaży dużej ilości aktywów. Systemy transakcyjne są zgodne z określonym zestawem reguł i są zaprogramowane do realizacji zleceń pod określonymi cenami, ryzykiem i horyzontem inwestycyjnym. Na rynku walutowym bezpośredni dostęp do rynku pozwala podmiotom kupującym na realizację zleceń na rynku forex. Bezpośredni dostęp do rynku odbywa się za pośrednictwem platform elektronicznych, co często obniża koszty i błędy handlowe. Zazwyczaj handel na rynku ogranicza się do maklerów i animatorów rynku, jednak bezpośredni dostęp do rynku zapewnia firmom kupującym dostęp do infrastruktury po stronie sprzedaży, dając klientom większą kontrolę nad transakcjami. Ze względu na handel algorytmiczny i rynki walutowe, realizacja zlecenia jest bardzo szybka, co pozwala przedsiębiorcom na wykorzystanie krótkotrwałych możliwości handlowych. Handel wysokimi częstotliwościami Jako najbardziej rozpowszechniony podzestaw handlu algorytmicznego, handel wysokonakładowy staje się coraz bardziej popularny na rynku forex. W oparciu o złożone algorytmy, handel wysoką częstotliwością jest realizacją dużej liczby transakcji z dużą szybkością. Gdy rynek finansowy będzie się rozwijać, szybsze tempo realizacji umożliwi przedsiębiorcom korzystanie z rentownych możliwości na rynku forex, wiele strategii handlu wysokiej częstotliwości ma na celu rozpoznawanie dochodowych sytuacji arbitrażowych i płynnościowych. Dostarczone zlecenia są wykonywane szybko, przedsiębiorcy mogą wykorzystać arbitraż, aby zablokować zyski bez ryzyka. Ze względu na szybkość handlu wysokimi częstotliwościami, arbitraż może być również dokonany w miejscu i przyszłych cenach tych samych par walutowych. Zwolennicy handlu na wysokiej częstotliwości na rynku walutowym podkreślają rolę w tworzeniu wysokiego stopnia płynności i przejrzystości transakcji i cen. Płynność ma tendencję do konkurowania i koncentracji, ponieważ istnieje ograniczona liczba produktów w porównaniu do akcji. Na rynku walutowym strategie dotyczące płynności mają na celu wykrycie nierównowagi w rynku i różnice cen pomiędzy poszczególnymi parami walutowymi. Nierównowaga zamówień występuje wtedy, gdy występuje dalsza liczba zamówień kupna lub sprzedaży określonego składnika aktywów lub waluty. W tym przypadku handlowcy o wysokiej częstotliwości działają jako dostawcy płynności, uzyskując rozłożenie, rozróżniając różnicę między ceną kupna i sprzedaży. Dolna linia Wiele osób wzywało do większej regulacji i przejrzystości na rynku walutowym w świetle ostatnich skandali. Rosnące przyjęcie algorytmicznych systemów handlu forex może skutecznie zwiększyć przejrzystość na rynku walutowym. Poza przejrzystością ważne jest, aby rynek walutowy był płynny z niską niestabilnością cen. Algorytmiczne strategie handlowe, takie jak auto hedging, analiza statystyczna, realizacja algorytmiczna, bezpośredni dostęp do rynku i handel wysoką częstotliwością, mogą narazić niezgodności cenowe, które stanowią korzystne możliwości dla przedsiębiorców. Algorytm genetyczny NovaCron w systemach obrotu FOREX za pomocą algorytmu genetycznego w celu stworzenia rentownego obrotu forex Strategia. Algorytm genetyczny w sieci neuronowych Cortex Oprogramowanie wspomagające wsteczną propagandę sieci neuronowych Aplikacja do obliczania opartego na genetycznych bazach danych na rynku Forex. W tym przykładzie użyto pojęć i pomysłów z poprzedniego artykułu, więc najpierw przeczytaj algorytm genetyczny w sieci neuronowej w systemie FOREX Trading Systems, chociaż nie jest to obowiązkowe. O tym tekście Przede wszystkim zapoznaj się z zastrzeżeniem. Jest to przykład wykorzystania funkcjonalności algorytmów genetycznych Cortex Neuron Networks, a nie przykładu, jak to prowadzić do zyskownego obrotu. Nie jestem twoim guru, ani nie powinienem być odpowiedzialny za twoje straty. Oprogramowanie neuronowe Cortex Neuro posiada w swoich sieciach neuronowych, a FFBP, o których rozmawialiśmy, jest tylko jednym ze sposobów wyboru strategii handlu forex. Jest to dobra technika, potężna i stosowana poprawnie, bardzo obiecująca. Ma jednak problem - nauczanie sieci neuronowej. musimy znać pożądane wyjście. Jest dość łatwe do zrobienia, gdy dokonujemy aproksymacji funkcji, po prostu wziąć prawdziwą wartość funkcji, ponieważ wiemy, co należy. Kiedy wykonujemy prognozy sieci neuronowych. wykorzystujemy technikę (opisaną w poprzednich artykułach) do nauczania sieci neuronowej w historii, a jeśli przewidziemy, powiedzmy, kurs wymiany, wiemy (podczas treningu), jakie jest prawidłowe przewidywanie. Jednakże, gdy budujemy system handlowy, nie mamy pojęcia, jaka jest prawidłowa decyzja o transakcji, nawet jeśli znamy kurs walutowy. W rzeczywistości mamy wiele strategii handlu forex, z których możemy korzystać w dowolnym momencie i musimy znaleźć dobrą - jak to, co powinniśmy pasować jako pożądane rezultaty naszej sieci neuronowej Jeśli poszłaś za naszym poprzednim artykułem, wiesz, że oszukiwaliśmy, aby poradzić sobie z tym problemem. Uczyliśmy sieci neuronowej, aby przeprowadzić kurs walutowy (lub wskaźnik oparty na kursie walutowym), a następnie wykorzystywano tę prognozę do obrotu. Następnie, poza częścią sieci neuronowej, podjęliśmy decyzję o tym, która sieć neuronowa jest najlepsza. Algorytmy genetyczne mogą radzić sobie bezpośrednio z tym problemem, mogą rozwiązać problem stwierdzony jako najlepsze sygnały handlowe. W tym artykule będziemy używać oprogramowania Cortex Neural Networks do utworzenia takiego programu. Algorytm genetyczny Algorytmy genetyczne są bardzo dobrze rozwinięte i bardzo zróżnicowane. Jeśli chcesz się o nich dowiedzieć, proponuję skorzystanie z Wikipedii, ponieważ ten artykuł dotyczy tylko tego, co Cortex Neural Networks Software może zrobić. Posiadając oprogramowanie Cortex Neural Networks. możemy utworzyć sieć neuronową, która zajmuje pewien wkład, powiedzmy, wartości wskaźnika i generuje pewne dane wyjściowe, powiedzmy, sygnały handlowe (kupuj, sprzedaj, trzymaj) i zatrzymaj stratę, aby zyskać poziomy zysku na otwarciu pozycji. Oczywiście, jeśli siewniemy te wagi sieci neuronowej losowo, wyniki handlowe będą straszne. Powiedzmy jednak, że stworzyliśmy kilkanaście takich NN. Następnie możemy przetestować wyniki każdego z nich i wybrać najlepszy, zwycięzcę. To było pierwsze pokolenie NN. Aby kontynuować generowanie drugiego pokolenia, musimy umożliwić naszym zwycięzcom zaradzenie, ale aby uniknąć uzyskania identycznych kopii, dodaj do nich losową liczbę dźwięków. W drugiej generacji mamy zwycięzcę pierwszej generacji i jego niedoskonałe (zmutowane) kopie. Pozwala sprawdzić ponownie. Będziemy mieli kolejnego zwycięzcę, który jest BARDZIEJ niż jakakolwiek inna sieć neuronowa w pokoleniu. I tak dalej. Po prostu pozwalamy zwycięzcom rasować i wyeliminować przegranych, podobnie jak w ewolucji w rzeczywistym życiu, a my dostaniemy naszą najlepszą sieć handlową Neural Network. bez wcześniejszej wiedzy o tym, jak powinien wyglądać system handlowy (algorytm genetyczny). Algorytm genetyczny sieci neuronowej: przykład 0 Jest to pierwszy przykład algorytmu genetycznego. i bardzo prosty. Przejdziemy po niej krok po kroku, aby nauczyć się wszystkich sztuczek, które będą używać przykładów. Kod ma wbudowane komentarze, więc po prostu skoncentruj się na kluczowych momentach. Po pierwsze stworzyliśmy sieć neuronową. Wykorzystuje losowe wagi i jeszcze nie uczy. Następnie w cyklu robimy 14 kopii, używając fumtu MUTATIONNN. Ta funkcja tworzy kopię źródłowej sieci neuronowej. dodając losowe wartości od 0 do (w naszym przypadku) 0,1 do wszystkich ciężarów. Trzymamy uchwyty do otrzymanych 15 NN w tablicy, możemy to zrobić, ponieważ uchwyt jest tylko liczbą całkowitą. Powodem, dla którego używamy 15 NN nie ma nic wspólnego z handlem: Cortex Neural Networks Software może drukować do 15 linii jednocześnie na wykresie. Możemy wykorzystać różne podejścia do testów. Po pierwsze, możemy użyć zestawu uczenia się, wszystkiego na raz. Po drugie, możemy przetestować, powiedzmy, 12000 resords (na 100000) i przejdź przez zestaw do nauki, od początku do końca. To sprawi, że nauczanie będzie się różnić, ponieważ będziemy szukać sieci neuronowych, które są opłacalne w danej dacie, a nie tylko na całym zbiorze. Drugie podejście może dać nam problemy, jeśli dane ulegną zmianie, od początku do końca. Wtedy sieć będzie się rozwijać, uzyskując możliwość handlu na końcu zbioru danych i utratę zdolności do handlu na początku. Aby rozwiązać ten problem, będziemy losowo zbierać fragmenty 12000 rekordów z danych i przekazać je do sieci neuronowej. jest po prostu cyklem bez końca, ponieważ 100000 cykli nigdy nie zostanie osiągniętych z naszą prędkością. Poniżej dodajemy jedno dziecko do każdej sieci, o nieco innej gramaturze. Zauważ, że 0,1 dla mutacji mutacji nie jest jedynym wyborem, bo w istocie 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 kolejny cykl testów i zabijemy przegranych, z obu pokoleń. Aby przeprowadzić testy, używamy sieci neuronowej do naszych danych, aby uzyskać dane wyjściowe, a następnie wywołać funkcję Test, która wykorzystuje te dane do symulacji obrotu. Wyniki handlu są używane do określenia, które NN są najlepsze. Używamy odstępu od rekordów nLearn, od nStart do nStart nLearn, gdzie nStart jest losowym punktem w ramach zestawu uczenia się. Oto poniższy kod. Powodem, dla którego go wykorzystujemy jest zilustrowanie faktu, że algorytm genetyczny może tworzyć algorytm genetyczny. ale niekoniecznie będzie to najlepsze, a także sugerować, że możemy poprawić wynik, jeśli sugerujemy pewne ograniczenia w procesie uczenia się. Możliwe jest, że nasz system handlowy działa bardzo dobrze na długich obrotach, a bardzo krótko, lub na odwrót. Jeśli długie interesy są bardzo dobre, ten algorytm genetyczny może wygrać nawet przy dużych stratach na krótkich obrotach. Aby tego uniknąć, przypisujemy większą wagę do długich transakcji w dziwnych i krótkich transakcjach nawet w cyklach. To tylko przykład, nie ma gwarancji, że coś poprawi. Więcej na ten temat w dyskusji na temat korekt. Technicznie nie musisz tego robić, lub może to zrobić inaczej. Dodaj zysk do sortowanej tablicy. Zwraca pozycję wstawiania, a następnie używamy tej pozycji w celu dodania uchwytu sieci neuronowej, uczenia się i testowania zysków na niezaplanowanych tablicach. Teraz mamy dane dla bieżącej sieci neuronowej z tym samym indeksem tablicy co jego zysk. Chodzi o przybycie do szeregu NN, posortowane według rentowności. Ponieważ tabela jest sortowana przez zysk, aby usunąć 12 sieci, które są mniej dochodowe, musimy tylko usunąć NN-ów od 0 do 14 Decyzje handlowe oparte są na wartości sygnału sieci neuronowej, z tego punktu widzenia program jest identyczny z przykładami poprzedni artykuł. Strategia handlowa FOREX: Omówienie przykładu 0 Przede wszystkim spójrz na wykresy. Pierwszy wykres zysku podczas pierwszej iteracji nie jest w ogóle dobry, jak należy się spodziewać, Sieć neuronowa traci pieniądze (obraz evolution00gen0.png skopiowany po pierwszej iteracji z folderu zdjęć): obraz dla zysku w cyklu 15 jest lepszy, czasami , algorytm genetyczny może się nauczyć naprawdę szybko: zauważ jednak nasycenie na krzywej zysku. Interesujące jest również spojrzenie na zmianę indywidualnych zysków, pamiętając o tym, że liczba krzywych, powiedzmy, 3 nie zawsze dotyczy tej samej sieci neuronowej. ponieważ rodzą się i kończą przez cały czas: Należy zauważyć, że niewiele zautomatyzowanego systemu obrotu handlu emituje złe na krótkich obrotach i znacznie lepiej na długie, które mogą być związane z faktem, że dolar spadał w porównaniu z euro w tym okresie. Może mieć to również związek z parametrami naszego wskaźnika (być może potrzebujemy innego okresu dla szortów) lub wyboru wskaźników. Oto historia po 92 i 248 cyklach: Ku naszemu zdziwieniu, algorytm genetyczny zakończył się niepowodzeniem. Pozwól spróbować zrozumieć, dlaczego i jak pomóc sytuacji. Przede wszystkim, nie każde pokolenie powinno być lepsze niż poprzednie. Odpowiedź nie ma, przynajmniej nie w modelu. Gdybyśmy wzięli NAJBARDZIEJ naukę od razu i wielokrotnie ją używaliśmy, aby nauczyć naszych NN, to tak, poprawią się w każdym pokoleniu. Ale zamiast tego wzięliśmy przypadkowe fragmenty (12000 rekordów w czasie) i wykorzystaliśmy je. Dwa pytania: dlaczego system nie powiódł się na losowych fragmentach zestawu szkoleniowego i dlaczego brakowało nam całego zestawu nauki? Aby odpowiedzieć na drugie pytanie, zrobiłem to. NN wykonywały bardzo dużo - na zestawie do nauki. I nie udało się na zestawie testowym, z tego samego powodu nie powiedzie się, kiedy korzystaliśmy z nauki FFPB. Inaczej mówiąc, nasi NNs dostali się nadmiernie, nauczyli się, jak przetrwać w środowisku, do którego przyzwyczajeni są, ale nie na zewnątrz. To się dzieje w naturze. Podejście, które przyjęliśmy zamiast tego miało na celu zrekompensowanie tego, zmuszając NN do dobrego działania na dowolnym losowym fragmencie zbioru danych, więc miejmy nadzieję, że mogliby również wykonać na nieznanym zestawie testowym. Zamiast tego, nie zdołały one zarówno na testach, jak i na szkoleniach. Wyobraź sobie zwierzęta, żyjące na pustyni. Dużo słońca, w ogóle nie ma śniegu. Jest to metafor racjonowania rynku, podobnie jak w przypadku naszych danych NNS rola środowiska. Zwierzęta nauczyły się żyć na pustyni. Wyobraź sobie zwierzęta, które żyją w zimnym klimacie. Śnieg i bez słońca w ogóle. Cóż, poprawili się. Jednak w naszym eksperymencie losowo umieściliśmy nasze NN na pustyni, na śniegu, w wodzie, na drzewach. przedstawiając je różnym fragmentom danych (losowo wznosząc, opadając, płasko). Zwierzęta zmarły. Lub, inaczej mówiąc, wybraliśmy najlepszą sieć neuronową dla zbioru danych przypadkowych 1, co, jak mówiono, dotyczyło wzrostu rynku. Potem przedstawiliśmy zwycięzcom i ich dzieciom dane o spadających rynkach. Niewłaściwe działania NNS zrobiły słabsze wyniki, być może jeden z zmutowanych dzieci, które utraciły zdolność do handlu na wzrastającym rynku, ale dostali jakąś umiejętność radzenia sobie z upadkiem. Potem obróciliśmy stół, a znów mamy najlepszego wykonawcę - ale najlepiej wśród ubogich wykonawców. Po prostu nie daliśmy naszym NN szansy na uniwersalność. Istnieją techniki umożliwiające algorytm genetyczny poznawanie nowych informacji bez utraty wydajności ze starych informacji (w końcu zwierzęta mogą żyć latem i zimą, tak więc ewolucja jest w stanie obsłużyć powtarzające się zmiany). Możemy omówić te techniki później, choć w tym artykule jest więcej o użyciu oprogramowania Cortex Neural Networks. niż o budowaniu udanego systemu handlu zautomatyzowanego forex. Algorytm genetyczny sieci neuronowej: przykład 1 Teraz nadszedł czas, aby porozmawiać o korektach. Prosty algorytm genetyczny, jaki stworzyliśmy w poprzednim kroku, ma dwa główne wady. Po pierwsze, nie zysk z zyskiem. Dobrze, możemy spróbować skorzystać z częściowo wyszkolonego systemu (na początku było to opłacalne). Druga wada jest poważniejsza: nie mamy kontroli nad rzeczami, że system ten robi. Na przykład, może nauczyć się zyskać, ale z ogromnymi wypłatami. Dobrze znanym faktem jest, że w prawdziwym życiu ewolucja może zoptymalizować więcej niż jednego parametru jednocześnie. Na przykład możemy dostać zwierzę, które może działać szybko i być odporne na zimno. Dlaczego nie spróbować robić tego samego w naszym automatycznym systemie handlu forex. To jest, gdy używamy poprawek, które są tylko zestawem dodatkowych kar. Powiedzmy, że nasz system działa z wyciągnięciem 0.5, podczas gdy chcemy potwierdzić, że jest to 0-3.0. Aby powiedzieć system, że popełnił błąd, zmniejszamy swój zysk (jeden używany do określenia, który algorytm genetyczny wygrał) do stopnia, który jest proporcjonalny do rozmiaru DD. Następnie algorytm ewolucyjny zajmuje się resztą. Jest jeszcze kilka czynników, które chcemy wziąć pod uwagę: chcemy mieć mniej lub bardziej taką samą liczbę operacji kupna i sprzedaży, chcemy mieć więcej zyskownych operacji, a następnie niepowodzeń, możemy chcieć, aby wykres zysków być liniowym i tak dalej. W evolution01.tsc wprowadzamy prosty zestaw korekt. Przede wszystkim używamy dużej liczby dla początkowej wartości korekcji. Mnożymy je do małych (zazwyczaj od 0 do 1) wartości, w zależności od kary, którą chcemy zastosować. Potem mnożymy nasz zysk do tej korekty. W rezultacie zysk jest korygowany, aby odzwierciedlić, ile algorytm genetyczny odpowiada innym kryteriom. Następnie wykorzystujemy wynik, aby znaleźć zwycięzcę Neural Network. Strategia handlowa FOREX: Omówienie przykładu 1 Przykład 1 działa znacznie lepiej, niż przykład 0. W ciągu pierwszych 100 cykli dowiedział się dużo, a wykresy zyskują na uspokojenie. Jednakże, jak w przykładzie 0, długie transakcje są dużo bardziej opłacalne, co najprawdopodobniej oznacza, że ​​w naszym podejściu występuje problem. Niemniej jednak system znalazł równowagę pomiędzy dwoma sprzecznymi warunkami wstępnymi: istnieje pewna pozytywna dynamika zarówno w zestawie uczenia się, jak i - co ważniejsze - w zestawie testowym. As for further learning, at cycle 278 we can see, that our system got overtrained. It means, we still have progress on learning set: But testing set shows weakness: This is a common problem with NNs: when we teach it on learning set, it learns to deal with it, and sometimes, it learns too well - to the degree, when it looses performance on testing set. To deal with that problem, a traditional solution is used: we keep looking for the Neural Network . that performs best on testing set, and save it, overwriting previous best one, every time new peak is reached. This is the same approach, we used in FFBP training, except, this time we have to do it ourselves (adding code, that looks for a best Neural Network on a testing set, and calling SAVENN, or exporting weights of Neural Network to a file). This way, when you stop your training, youll have the best performer ON TESTING SET saved and waiting for you. Note also, that it is not the max. profit you are after, but optimal performance, so consider using corrections, when looking for a best performer on a testing set. Genetic Algorithm for FOREX Technical Analysis: Where now After you got your winner Neural Network . you can follow the steps, described in previous article, to export weights of that Neural Network . and then to use them in your real time trading platform, like Meta Trader, Trade Station and so on. Alternatively, you can focus on other ways of optimizing the Neural Network . unlike with FFBP algorithm, here you can get avay from using learning and testing sets, and move sequential learning. Download Cortex Order Cortex View Price List Visibility is very important for this site. If you like it please link to this URL

No comments:

Post a Comment