Monday 18 December 2017

Forex neural network ea


Oświadczenie o odpowiedzialności i ostrzeżenie o ryzyku. Proszę przeczytaj. Ostrzeżenie o ryzyku. Handel walutami obarczonymi ryzykiem ma wysoki poziom ryzyka i może nie być odpowiedni dla wszystkich inwestorów. Wysoki stopień dźwigni może działać zarówno przeciwko tobie, jak i dla Ciebie. Przed podjęciem decyzji o inwestowaniu w walutę obcą należy dokładnie rozważyć cele inwestycyjne, poziom doświadczenia i apetyt na ryzyko. Istnieje prawdopodobieństwo, że można podtrzymać stratę jakiejś lub całości inwestycji początkowej i dlatego nie należy inwestować pieniędzy, których nie stać na stracenie. Powinieneś być świadom wszystkich ryzyk związanych z obrotem dewizowym i zasięgnąć porady niezależnego doradcy finansowego, jeśli masz jakiekolwiek wątpliwości. Oświadczenie Wszystkie informacje zamieszczone na tej stronie internetowej są naszą opinią i opinią naszych gości i mogą nie odzwierciedlać prawdy. Proszę korzystać z własnego dobrego wyroku i zasięgnąć porady wykwalifikowanego konsultanta przed wiarą i akceptacją wszelkich informacji zamieszczonych na tej stronie. Zastrzegamy sobie także prawo do usuwania, edytowania, przenoszenia lub zamykania dowolnego posta z jakiegokolwiek powodu. Reklamy Ostrzeżenia Linki reklamowe są wyświetlane w całej witrynie. Niektóre strony w witrynie mogą zawierać linki do produktów. Te reklamy i linki nie odzwierciedlają opinii, poparcia lub zgody tej strony internetowej lub stron powiązanych. Opinie FPA nigdy nie są pod wpływem reklamy. Niektóre reklamy mogą zawierać informacje o potencjalnie mylących i niezgodnych z prawdą roszczeń i informacje, które mogą nie ujawnić ryzyka i innych ważnych kwestii związanych z obrotem spekulatywnym. Spamerzy są ostrzeżeni Jeśli spamujesz fora FPA lub recenzje, zastrzegamy sobie prawo do edycji swojego posta w jakikolwiek sposób, aby się z tobą bawić. Poprzez spamowanie nas zgadzasz się na wszelkie wprowadzone przez nas zmiany i nie podejmujemy żadnych działań prawnych ani innych przeciwko FPA lub jego współpracownikom za cokolwiek, co robimy ze spamem. Warunki Polityka prywatności Reklama Kontakt O ForexPeaceArmy ma powiązania z reklamami i partnerami z niektórymi firmami wymienionymi na tej stronie i może być zrekompensowana, jeśli czytelnicy będą śledzić linki i zarejestrować się. Jesteśmy zobowiązani do sprawiedliwego traktowania recenzji i postów, niezależnie od takich relacji. kopiuj Copyright ForexPeaceArmy. Wszelkie prawa zastrzeżone.8482Forex Army Peace, ForexPeaceArmy, FPA i Logo Shield FPA są znakami towarowymi Army of Peace Forex. Wszelkie prawa zastrzeżone przez prawo amerykańskie i międzynarodowe. Forex Army Armii polega na reklamie banerowej, aby utrzymać ją za darmo dla wszystkich. Możesz też pomóc - rozważaj wyłączenie AdBlocker podczas przeglądania naszej witryny. Dziękujemy z naszej społeczności handlowej :-) MetaTrader 4 - Przykłady korzystania z sieci neuronowych W programie MetaTrader Wprowadzenie Wiele osób prawdopodobnie rozważyło możliwość wykorzystania sieci neuronowych w swoim EA. Ten temat był bardzo gorący, zwłaszcza po 2007 Automated Trading Championship i spektakularne zwycięstwo przez Better w swoim systemie opartym na sieciach neuronowych. Wiele forów internetowych zalało tematy dotyczące sieci neuronowych i handlu walutami. Niestety pisanie natywnej implementacji NNM MQL4 nie jest łatwe. Wymaga to pewnych umiejętności programowania, a wynik nie byłby bardzo wydajny, jeśli chcesz przetestować swój ostateczny wynik testera na dużej liczbie danych. W tym artykule pokażę, jak możesz używać bezpłatnie (pod LGPL), znanej szybkiej sztucznej sieci neuronowej biblioteki (FANN) w kodzie MQL4, unikając pewnych przeszkód i ograniczeń. Dalej myślę, że czytelnik jest zaznajomiony z sztucznymi sieciami neuronowymi (ann) i terminologią związaną z tym tematem, więc skupię się na praktycznych aspektach stosowania szczególnej implementacji ann w języku MQL4. Funkcje FANN Aby w pełni zrozumieć możliwości wdrożenia FANN, trzeba zapoznać się z jego dokumentacją i najczęściej używanymi funkcjami. Typowe wykorzystanie FANN polega na stworzeniu prostej sieci przesyłania danych, przeanalizowaniu danych i uruchomieniu. Utworzona i wyszkolona sieć może być następnie zapisana do pliku i przywracana później do dalszego użycia. Aby utworzyć anonimową, należy użyć funkcji fanncreatestandard (). Pozwala zobaczyć jego składnię: Gdzie numlayery reprezentują całkowitą liczbę warstw łącznie z warstwą wejściową i wyjściową. LNnum i następne argumenty reprezentują liczbę neuronów w każdej warstwie począwszy od warstwy wejściowej i kończąc na warstwie wyjściowej. Aby utworzyć sieć z jedną ukrytą warstwą z 5 neuronami, 10 wejść i 1 wyjście, trzeba by to nazwać następująco: Gdy utworzona zostanie następna, następna operacja polega na szkoleniu jej pewnymi danych wejściowych i wyjściowych. Najprostszą metodą treningową jest szkolenie przyrostowe, które można osiągnąć za pomocą następującej funkcji: Ta funkcja powoduje przejście wskaźnika do struct fann zwracanego wcześniej przez fanncreatestandard () oraz wektora danych wejściowych i wyjściowego wektora danych. Wektory wejściowe i wyjściowe są typu typu fanntype. Ten typ jest w rzeczywistości typu podwójnego lub typu float, w zależności od sposobu sporządzania FANN. W tej implementacji wektory wejściowe i wyjściowe będą układami podwójnymi. Gdy trenowana jest ann, następna pożądana funkcja to uruchomienie tej sieci. Implementacja funkcji jest zdefiniowana następująco: Ta funkcja ma wskaźnik do struct fann reprezentujący wcześniej utworzoną sieć i wektor wejściowy zdefiniowanego typu (podwójna tablica). Zwracana wartość to tablica wektora wyjściowego. Ten fakt jest ważny, podobnie jak w przypadku jednej sieci utput, otrzymujemy jedną macierz elementu z wartością wyjściową, a nie wartością wyjściową. Niestety większość funkcji FANN używa wskaźnika do struct fann reprezentującego ann, który nie może być bezpośrednio obsługiwany przez MQL4, który nie obsługuje struktur jako typów danych. Aby uniknąć tego ograniczenia musimy owinąć to w jakiś sposób i ukryć się z MQL4. Najprostszą metodą jest utworzenie tablicy wskaźników struct fann zawierających odpowiednie wartości i odniesienie do nich indeksu reprezentowanego przez zmienną int. W ten sposób możemy wymienić nieobsługiwany typ zmiennej na obsługiwaną i utworzyć bibliotekę opakowania, która może być łatwo zintegrowana z kodem MQL4. Owijanie FANN wokół W mojej najlepszej wiedzy MQL4 nie obsługuje funkcji z listą zmiennych argumentów, więc musimy sobie z tym poradzić. Z drugiej strony, jeśli wywołanie funkcji C (o długości zmiennych argumentów) jest wywoływane za pomocą zbyt wielu argumentów, nic się nie dzieje, więc możemy przyjąć stałą maksymalną liczbę argumentów w funkcji MQL4 przekazanej do biblioteki C. Powstała funkcja owijania wyglądałaby następująco: Zmieniliśmy wiodący fann z f2M (co oznacza FANN TO MQL), używano statycznej liczby argumentów (4 warstwy), a wartość zwracana jest teraz indeksem do wewnętrznej tablicy anns trzymającej struct fann dane wymagane przez FANN do obsługi. W ten sposób możemy łatwo wywołać taką funkcję z poziomu kodu MQL. To samo dotyczy: Ostatnim, ale nie mniej ważnym jest fakt, że należy zniszczyć utworzone przez Ciebie ann przez wywołanie: Aby zwolnić uchwyty, należy zniszczyć sieci w odwrotnej kolejności, niż zostały stworzone. Alternatywnie można użyć: Jednak jestem pewien, że niektórzy z was mogą chcieć zapisać wyszkoloną sieć do późniejszego użycia z: Oczywiście zapisana sieć może być później załadowana (lub raczej nowo wyrejestrowana): Kiedy znamy podstawowe funkcje, możemy spróbować użyj tego w naszej EA, ale najpierw musimy zainstalować pakiet Fann2MQL. Instalacja Fann2MQL Aby ułatwić użycie tego pakietu, utworzyłem instalatora msi, który zawiera cały kod źródłowy, a także prekompilowane biblioteki i plik nagłówkowy Fann2MQL. mqh, który deklaruje wszystkie funkcje Fann2MQL. Procedura instalacji jest dosyć prosta. Po pierwsze otrzymasz informację, że Fann2MQL jest objęta licencją GPL: Instalacja Fann2MQL, krok 1 Następnie wybierz folder do zainstalowania pakietu. Możesz użyć domyślnego Program FilesFann2MQL lub zainstalować bezpośrednio w katalogu Meta Traderexperts. Później umieścisz wszystkie pliki bezpośrednio w swoich miejscach, w przeciwnym wypadku będziesz musiał je ręcznie skopiować. Instalacja Fann2MQL, krok 2 Instalator umieszcza pliki w następujących folderach: jeśli zdecydujesz się zainstalować w dedykowanym folderze Fann2MQL, skopiuj zawartość jego podfolderów zawierających i bibliotek do odpowiedniego katalogu Meta Trader. Instalator instaluje także bibliotekę FANN w folderze bibliotek systemowych (w większości przypadków Windowssystem32). Folder src zawiera cały kod źródłowy Fann2MQL. Możesz przeczytać kod źródłowy, który jest ostateczną dokumentacją, jeśli potrzebujesz więcej informacji na temat internals. Możesz również poprawić kod i dodać dodatkowe funkcje, jeśli chcesz. Zachęcam do wysłania mi swoich plasterek, jeśli zastosujesz coś ciekawego. Korzystanie z sieci neuronowych w EA Po zainstalowaniu Fann2MQL można rozpocząć pisanie własnego EA lub wskaźnika. Istnieje wiele możliwości wykorzystania NN. Możesz ich używać do prognozowania przyszłych zmian cen, ale jakość takich przewidywań i możliwość ich rzeczywistego wykorzystania jest wątpliwa. Możesz spróbować napisać własną strategię przy użyciu technik uczenia się zbrojenia, powiedz Q-Learning lub coś podobnego. Możesz próbować użyć NN jako filtra sygnału dla heurystycznej EA lub połączyć wszystkie te techniki z tym, czego naprawdę chcesz. Jesteś ograniczony jedynie wyobraźnią. Tutaj pokażę przykład wykorzystania NN jako prostego filtra dla sygnałów generowanych przez MACD. Nie uważaj go za cenną EA, ale jako przykładową aplikację Fann2MQL. Podczas wyjaśniania przykładu EA: działa NeuroMACD. mq4 Ill pokazuje, w jaki sposób Fann2MQL może być skutecznie wykorzystywany w MQL. Pierwszą rzeczą dla każdej EA jest deklaracja zmiennych globalnych, definiuje i zawiera sekcję. Oto początek NeuroMACD zawierający te rzeczy: Polecenie include zawiera polecenie załadowania pliku nagłówkowego Fann2MQL. mqh zawierającego deklarację wszystkich funkcji Fann2MQL. Następnie wszystkie funkcje pakietu Fann2MQL są dostępne do użycia w skrypcie. Stała ANNPATH definiuje ścieżkę do przechowywania i ładowania plików za pomocą wyszkolonych sieci FANN. Musisz utworzyć ten folder tj. C: ANN. Stała NAME zawiera nazwę tej EA, która jest używana później do ładowania i zapisywania plików sieciowych. Parametry wejściowe są raczej oczywiste, a te, które zostaną opisane później, oraz zmienne globalne. Punktem wejścia każdej EA jest jego funkcja init (): najpierw sprawdza, czy EA jest stosowana w celu skorygowania okresu ramki czasowej. Zmienna AnnInputs zawiera liczbę wejść sieci neuronowych. Użyj 3 zestawów różnych argumentów, abyśmy podzielili się na 3. AnnPath oblicza się, aby odzwierciedlić EA NAME i MagicNumber. która jest obliczana z SlowMA. Argumenty wejściowe FastMA i SignalMA, które są później wykorzystywane do sygnalizacji wskaźników MACD. Gdy znasz AnnPath, EA próbuje załadować sieci neuronowe z wykorzystaniem funkcji annload (), którą opisałem poniżej. Połowa załadowanych sieci jest przeznaczona do filtrowania długich pozycji, a druga połowa przeznaczona jest do szortów. Zmienna AnnsLoaded jest używana do wskazania faktu, że wszystkie sieci zostały prawidłowo zainicjowane. Jak zapewne zauważyłeś ten przykład EA próbuje załadować wiele sieci. Wątpię, że jest to naprawdę konieczne w tej aplikacji, ale chciałem pokazać pełny potencjał Fann2MQL, który obsługuje wiele sieci w tym samym czasie i może je przetwarzać równolegle, korzystając z wielu rdzeni lub procesorów. Aby umożliwić Fann2MQL korzystanie z technologii Intel Threading Building Blocks. Do zainicjowania tego interfejsu służy funkcja f2Mparallelinit (). Oto sposób inicjowania sieci: Jak widać, czy f2Mcreatefromfile () nie powiedzie się, co oznacza wartość ujemnej wartości zwrotu, sieć jest tworzona za pomocą funkcji f2Mcreatestardard () z argumentami wskazującymi, że utworzona sieć powinna mieć 4 warstwy (łącznie z wejściem i wyjściem), wejściami AnnInput, neuronami AnnInput w pierwszej ukrytej warstwie, neuronami AnnInput21 w drugiej warstwie ukrytej i 1 neuronem w warstwie wyjściowej. f2Msetactfunctionhidden () jest używana do ustawiania funkcji aktywacji ukrytych warstw na SIGMOIDSYMMETRICSTEPWISE (patrz dokumentacja FANN z fannactivationofuncenum), a to samo dotyczy warstwy wyjściowej. Następnie jest wywołanie funkcji f2mrandomizeweights (), która służy do inicjowania obciążenia neuronów w sieci. Tutaj wykorzystałem zakres lt-0.4 0.4gt, ale możesz użyć innego w zależności od aplikacji. W tym momencie prawdopodobnie zauważyłeś funkcję debug (), którą używałem parę razy. Jest to jeden z najprostszych sposobów na zmianę verbose poziomu EA. Razem z nim oraz parametr wejściowy DebugLevel można dostroić sposób, w jaki kod generuje wyjście debugowania. Jeśli pierwszy argument funkcji debug (), poziom debugowania jest wyższy niż DebugLevel, funkcja nie generuje żadnych danych wyjściowych. Jeśli jego dolny jest równy ciąg tekstowy zostanie wydrukowany. Jeśli poziomem debugowania jest 0, łańcuch ERROR: zostanie dołączony do początku. W ten sposób można rozdzielić debuger, który jest produkowany przez kod na wiele poziomów. Najważniejsze są prawdopodobnie błędy, które są przypisane do poziomu 0. Zostaną wydrukowane, chyba że obniży się poziom DebugLevel poniżej 0 (co nie jest zalecane). Na poziomie 1 wydrukowane zostaną ważne informacje, takie jak potwierdzenie skutecznego ładowania lub tworzenia sieci. Na poziomie 2 lub wyższym znaczenie drukowanych informacji stopniowo maleje. Przed szczegółowym wyjaśnieniem funkcji start (), która jest dość długa, muszę pokazać kilka dodatkowych funkcji mających na celu przygotowanie wejścia sieciowego i uruchamianie rzeczywistych sieci: Funkcja annprepareinput () służy do przygotowania nazwy wejściowej dla sieci (czyli nazwa). Jest to dość proste, ale muszę pamiętać, że dane wejściowe muszą być odpowiednio znormalizowane. W tym przypadku nie ma wyrafinowanej normalizacji, po prostu używałem wartości głównej i sygnału MACD, które nigdy nie przekraczają wymaganego zakresu na danych rozliczanych. W prawdziwym przykładzie warto zwrócić większą uwagę na ten problem. Jak zapewne podejrzewasz wybranie odpowiednich argumentów wejściowych do wprowadzania danych sieciowych, ich kodowanie, dekompozycja i normalizowanie jest jednym z najważniejszych czynników w przetwarzaniu sieci neuronowych. Jak wspomniałem wcześniej, Fann2MQL ma możliwość rozszerzania normalnej funkcjonalności MetaTradera, czyli równoległego przetwarzania wielowątkowego sieci neuronowych. Argument globalny Parallel kontroluje to zachowanie. Funkcja runanns () uruchamia wszystkie zainicjowane sieci i pobiera je i zapisuje w tablicy AnnOutput. funkcja wielozakresowa jest odpowiedzialna za obsługę zadania w sposób wielowątkowy. Nazywa się f2mrunparallel (), który przyjmuje jako pierwszy argument liczbę sieci do przetworzenia, drugi argument to tablica zawierająca uchwyty do wszystkich sieci, które mają zostać uruchomione, dostarczając wektor wejściowy jako trzeci argument. Wszystkie sieci muszą być uruchamiane na tych samych danych wejściowych. Uzyskanie danych wyjściowych z sieci odbywa się przez wiele połączeń do f2mgetoutput (). Teraz zobaczymy funkcję start (): krótko opisuję to jako całkiem dobrze komentowane. Tradeallowed () sprawdza, czy jest dozwolone handel. Zasadniczo sprawdza zmienną AnnsLoaded wskazującą, że wszystkie anns zostały zainicjowane prawidłowo, a następnie sprawdza, czy w odpowiednim okresie ramki okres minimalny saldo konta i na samym końcu pozwala na handel tylko na pierwszym zaznaczeniu nowego paska. Następna dwie funkcje służące do przygotowania wejścia sieciowego i uruchomienia przetwarzania sieci zostały opisane zaledwie kilka wierszy powyżej. Następnie obliczamy i wprowadzamy do zmiennych, aby później przetwarzać wartości MACD sygnału i głównej linii ostatniego paska narastającego i poprzedniego. Aktualny pręt jest pominięty, ponieważ nie jest jeszcze budowany i prawdopodobnie będzie redrawed. SellSignal i BuySignal są obliczane odpowiednio do sygnału MACD i głównej crossover. Obydwa sygnały są używane do długiego i krótkiego przetwarzania pozycji, które są symetryczne, więc Ill opisuje tylko przypadek długich. Zmienna LongTicket posiada numer biletu aktualnie otwartej pozycji. Jeśli jego pozycja jest równa -1 nie jest otwarta, więc jeśli ustawiona jest BuySignal, która może wskazywać dobrą okazję, aby otworzyć długą pozycję. Jeśli zmienna NeuroFilter nie jest ustawiona, otwiera się długą pozycję i tak jest bez filtrowania sieci neuronowych - zamówienie jest wysyłane do zakupu. W tym momencie zmienna LongInput ma zapamiętać InputVector przygotowany przez annprepareinput () do późniejszego wykorzystania. Jeśli zmienna LongTicekt posiada ważny numer biletu, firma EA sprawdza, czy jest nadal otwarta lub została zamknięta przez StopLoss lub TakeProfit. Jeśli zamówienie nie jest zamknięte, nic się nie zdarzy, jednakże jeśli zamawianie jest zamknięte, wektor obliczeniowy, który ma tylko jedną otput, oblicza się, aby utrzymać wartość -1, jeśli zlecenie zostało zamknięte z utratą lub 1, jeśli zlecenie zostało zamknięte z zyskiem . Wartość ta jest następnie przekazywana do funkcji anntrain (), a wszystkie sieci odpowiedzialne za obsługę długiej pozycji są z nim szkolone. Jako wektor wejściowy wykorzystywana jest zmienna LongInput, która trzyma InputVector w chwili otwarcia pozycji. W ten sposób dowiaduje się, która sieć przynosi zyski, a która nie. Gdy masz już przeszkoloną sieć, przełączanie NeuroFilter na prawdziwe przekręci filtrowanie sieci. Annwiselong () używa sieci neuronowej rozliczonej jako średnia wartości zwracanych przez wszystkie sieci przeznaczone do obsługi długiej pozycji. Parametr Delta jest używany jako wartość progowa wskazująca, że ​​filtr jest prawidłowy lub nie. Jak wiele innych wartości uzyskano dzięki procesowi optymalizacji. Teraz kiedy już wiemy, jak to działa Ill show you, jak można go używać. Para testowa jest oczywiście EURUSD. Użyłem danych Alpari. przeliczone na ramy czasowe M5. Użyłem okresu od 2007.12.31 do 2009.01.01 dla szkoleniaoptimizing i 2009.01.01-2009.03.22 dla celów testowania. W pierwszej kolejności próbowałem uzyskać najkorzystniejsze wartości dla argumentów StopLoss, TakeProfit, SlowMA, FastMA i SignalMA, które następnie zostały zakodowane w pliku NeuroMACD. mq4. NeuroFilter został wyłączony, a także SaveAnn. liczba AnnsNumber została ustawiona na 0, aby uniknąć przetwarzania nerwowego. Użyłem algorytmu genetycznego do optymalizacji. Po otrzymaniu wartości otrzymany raport wyglądał następująco: Raport o danych szkoleniowych po optymalizacji parametrów podstawowych. Jak widzisz, uruchomiłem tę EA na mini-konto o wielkości partii 0,01 i początkowym bilansie 200. Możesz jednak dostroić te parametry odpowiednio do ustawień konta lub preferencji. W tym momencie mamy wystarczająco dużo zysków i przegranych transakcji, abyśmy mogli włączyć SaveAnn i ustawić AnnsNumber na 30. Kiedy to zrobię, ponownie uruchomię testera. Wynik był dokładnie taki sam, z wyjątkiem faktu, że proces był znacznie wolniejszy (w wyniku przetwarzania nerwowego), a folder C: ANN został zaludniony wyszkolonymi sieciami, jak pokazano na poniższym obrazku. Upewnij się, że folder C: ANN był obecny przed tym uruchomieniem Folder C: ANN. Kiedy już wyszkolimy sieci, zbadajmy, jak się zachowuje. Najpierw spróbuj tego na danych szkoleniowych. Zmień NeuroFilter na true i SaveAnn na false i uruchom tester. Uzyskany wynik jest pokazany poniżej. Zauważ, że może się to różnić w zależności od przypadku, ponieważ w sieciach neuronowych w procesie inicjowania sieci występuje pewna losowość sieci wewnętrznych (w tym przykładzie użyto jawnego wywołania do f2Mrandomizeweights () wewnątrz annload ()). Wynik uzyskany podczas szkolenia danych z włączonym filtrem neuronowym sygnału. Zysk netto jest niewiele większy (20,03 w porównaniu z 16,92), ale współczynnik zysku jest o wiele wyższy (1,25 w porównaniu z 1,1). Liczba transakcji jest znacznie mniejsza (83 vs 1188), a średnia liczba kolejnych strat jest obniżona z 7 do 2. Jednak tylko pokazuje, że filtrowanie sygnałów neuronowych działa, ale nie mówi nic o tym, jak działa na dane, które nie były wykorzystywane podczas treningu. Wynik uzyskany z okresu testowania (2009.01.01 - 2009.30.28) jest pokazany poniżej: Wynik uzyskany z testowania danych z włączonym filtrem neuronowym. Liczba wykonanych transakcji jest dosyć niska i trudna do określenia jakości tej strategii, ale nie pokażę ci jak napisać najlepszą EA, ale wyjaśnić, jak możesz używać sieci neuronowych w kodzie MQL4. Prawdziwy efekt wykorzystania sieci neuronowych w tym przypadku można zauważyć tylko w porównaniu z wynikami EA w odniesieniu do danych testowych z włączonym i wyłączonym urządzeniem NeuroFilter. Poniżej znajduje się wynik uzyskany w wyniku testowania okresu bez filtrowania sygnałów neuronowych: wyniki testowania danych bez filtrowania nerwowego. Różnica jest dość oczywista. Jak widać filtrowanie sygnałów neuronowych obróciło utratę EA w korzystny sposób Podsumowanie Mam nadzieję, że dowiedziałeś się, z tego artykułu, jak korzystać z sieci neuronowych w programie MetaTrader. Za pomocą prostego, darmowego i opensourceowego pakietu Fann2MQL można łatwo dodać warstwę sieci neuronowej do praktycznie dowolnego Doradcy ds. Ekspertów lub rozpocząć pisanie własnych, które są w pełni lub częściowo oparte na sieciach neuronowych. Unikalna zdolność wielokrotnego kopiowania może przyspieszyć przetwarzanie wiele razy, w zależności od liczby rdzeni procesora, szczególnie przy optymalizacji niektórych parametrów. W jednym przypadku skrócono optymalizację mojego przetwarzania z wykorzystaniem Zbrojenia w EA od około 4 dni do zaledwie 28 godzin w czterordzeniowym procesorze Intela. Podczas pisania tego artykułu postanowiłem umieścić Fann2MQL na swojej stronie internetowej: fann2mql. wordpress. Znajdziesz tam najnowszą wersję Fann2MQL i ewentualnie wszystkich przyszłych wersji oraz dokumentację wszystkich funkcji. Obiecuję, że oprogramowanie to będzie objęte licencją GPL dla wszystkich wersji, więc jeśli wyślij mi jakieś komentarze, żądania dotyczące funkcji lub poprawki, które interesuję się, sprawdź je w następnych wersjach. Należy zauważyć, że w tym artykule przedstawiono tylko bardzo podstawowe zastosowanie Fann2MQL. Ponieważ ten pakiet nie jest dużo większy niż FANN, możesz używać wszystkich narzędzi przeznaczonych do zarządzania sieciami FANN, takich jak: I o wiele więcej o FANN na stronie głównej Szybkiej Sztucznej Sieci Neuronowej: leenissen. dkfann Post Scriptum Po tym artykule znalazłem artykuł nieznaczny błąd w NeuroMACD. mq4. Funkcja OrderClose () dla pozycji krótkiej była karmiona długą liczbą pozycji. Prowadziło to do przekręconej strategii, która najprawdopodobniej zawierała szorty i długie dreszcze: w poprawnej wersji skryptu rozwiązałem ten błąd i usunęłem strategię OrderClose (). To nie zmieniło ogólnego obrazu wpływu filtracji nerwowej na EA, a kształt krzywej równowagi był zupełnie inny. Wszystkie te wersje tej EA można znaleźć w tym artykule. Darmowy Sieć Neuronowa dla MT4 - Metaneural EA Weve używał sieci neuronowych i zastosował je do skutecznego obrotu Forex w przeszłości i postanowił przetłumaczyć tę metodę na system Metatrader. Powszechnie wiadomo, że największe firmy handlowe i fundusze hedgingowe wykorzystują wyrafinowaną sztuczną inteligencję i systemy sieci nerwowych, aby zyskać na rynkach finansowych z dużą trafnością. Pomyśleliśmy, dlaczego żałuj, że ta moc jest dla nas dostępna - inwestorzy z małych bankrutów Więc zerwałem sobie przerwę z wszelkich innych działań i ciężko pracowałem nad Metaneural, aby opracować ten system, który uważam za jedyną realną sieć neuronową EA. W rzeczywistości to nawet nie musi być EA, kod można napisać w języku C, aby działał w taki sam sposób jak tradestation, esignal, neuroshell lub dowolna platforma umożliwiająca importowanie i gromadzenie danych przez DLL, ponieważ tworzenie sieci neuronowych dzieje się w Neuropsycha. Pierwszym krokiem w tworzeniu sztucznej sieci neuronowej jest zgromadzenie danych, wokół których zostanie utworzona struktura mózgu. Ponieważ staramy się stworzyć mózg, który będzie wiedział, jak handlować rynkami, musimy zbierać dane rynkowe. Nie możemy jednak po prostu zebrać masy danych i zrzucić ją do naszego neuronowego silnika, aby stworzyć strukturę naszego mózgu. Musimy zebrać dane w formacie, który chcemy, aby mózg przetwarza te dane i ostatecznie ten sam format, który chcemy, aby stworzył on dane. Innymi słowy, nie tylko informowaliśmy nasz mózg, co myśleć, dając surowe dane, ale musimy to powiedzieć JAK myśleć, formułując te surowe dane w inteligentną konfigurację. W tym przypadku naszą zrozumiałą konfiguracją są wzory. Zbieramy dane w segmentach, każdy segment składa się z kilku słupków ustalonych przez przedsiębiorcę w naszym własnym wskaźniku kolekcji, który pochodzi ze wszystkich naszych pakietów. To zgrupowanie słupków jest zbierane w stosunku do następnego paska, który pochodzi po zgrupowaniu - nazywamy to przyszłym paskiem. Zbierając dane rynkowe jest znany przyszły pasek, ponieważ są to wszystkie historyczne dane, jest to następny pasek po grupowaniu. Idea polega na tym, że mózg sieci neuronowej znajdzie złożone wzorce w grupowaniu paska i wykorzysta gromadzone informacje, w tym kolejny pasek po grupowaniu, w celu ustalenia, które złożone wzorce przebiegają przed następnym paskiem. Podczas rzeczywistego handlu wynik będzie przyszłym paskiem, który w efekcie pozwala z dużą precyzją kierować się rynkiem zanim to nastąpi. Zebrane dane są wyodrębniane w arkuszu kalkulacyjnym, który wyświetla dane o cenach jako otwarte, wysokie, niskie, zamknięte (OHLC). OHLC każdego pręta zbiera się osobno i umieszcza w swojej własnej kolumnie. W powyższym przykładzie każdy wiersz reprezentuje łącznie 3 bary. W związku z tym kolumny reprezentują setki lub tysiące słupków gromadzonych w historii. Oprócz OHLC można również zbierać wartości z niemal każdego wskaźnika, który wybierzesz, co w istocie da wskaźnik tego zdolność do myślenia na podstawie zmieniających się warunków rynkowych i przewidywania następna wartość. Budowanie sieci neuronowych i szkolenie Teraz, gdy zebrane dane zostały wyodrębnione do pliku arkusza kalkulacyjnego w zrozumiałej konfiguracji, możemy go załadować do naszego neuronowego silnika sieciowego, który stworzy strukturę sztucznego mózgu, pociągnie ją i przetestuje jego dokładność przed oszczędność struktury. Gdy zebrane dane zostaną zaimportowane do programu budowy sieci, możesz wybrać, które fragmenty danych chcesz wykorzystać do zbudowania mózgu. Jest to ważna cecha, ponieważ umożliwia użytkownikowi tworzenie wielu różnych strategii opartych na dowolnym fragmencie danych, które uważa za konieczne. To, co zasadniczo robi w tym kroku, decyduje o tym, co silnik użyje do stworzenia złożonych wzorców wspomnianych wcześniej, co ostatecznie określi zdolność projekcji sieci neuronowej EA. Powiedzmy, że chcesz powiedzieć, aby sieć neuronowa szukać wzorców w otwartych cenach prętów w stosunku do wartości wskaźników z ulubionego wskaźnika. Następnie wybierz wskaźnik w kolektorze i wybierz tylko otwarte i wprowadzane dane w opisanym powyżej oprogramowaniu do budowy. Można również wybrać wszystkie wejścia, z wyjątkiem kolumny output1, która oznacza wartość wyjściową - wybór wszystkich wejść pozwoli stworzyć najbardziej złożony wzór uczenia się, a tym samym umożliwić mózgowi reagowanie na wiele różnych scenariuszy. Po wybraniu żądanych wejść i wyjść program utworzy strukturę mózgu sieci neuronowej i zaczniesz ją szkolić. Część zebranych danych jest odkładana na bok i używana do szkolenia i testowania dokładności swojego sztucznego mózgu, zobaczysz, że pożądane dane wyjściowe zaczynają odpowiadać danymi testowymi, gdy się uczy. Po zakończeniu tego procesu będziesz mógł eksportować ustrukturowany sztuczny mózg w postaci DLL, który będzie używany przez EA MetaNeural. Kiedy mózg zostanie zbudowany, przeszkolony, przetestowany i wyeksportowany jako biblioteka DLL, możesz rozpocząć handel zautomatyzowanym mózgiem sieci neuronowej, który będzie zawierał złożone wzorce niemożliwe do osiągnięcia przez człowieka. Ive przyłączył EA do tego postu, aby użyć tego wszystkiego musisz zrobić, to zarejestrować się na konto FinFX za pomocą łącza w sekcji wyceny naszej witryny, finansować konto dowolną kwotę chcesz i korzystać z naszego kopiarki handlowej, która będzie odzwierciedlają nasze wygrane zawody. Po 50 lotach będziemy wysyłane EA. Trzeba zarabiać, a otrzymasz nową technologię. PiNNacle - sieć neuronowa EA Jest to trójwarstwowa transmisja NN EA. Dołącz do każdego wykresu, polecam 15 minut swojej ulubionej pary walutowej. Działa na każdym kresce danych. Działa w jednym czasie danych, na którym jest dołączony wykres. Jeśli używasz go na więcej niż jednym wykresie na raz, zmień MagicNumber na coś unikalnego. Jest tylko jedna rzecz, którą polecam - progi otwarcia nowego zamówienia: 0.680, 0.780, 1.000 (Pomimo, że zanim przystąpisz do korekty, spróbuj najpierw ustalić ustawienie na 0,680). Standardowe ustawienie to 0,680, nie polecam niższe niż w przypadku otwarcia nowego zamówienia. Im wyższa liczba to silniejsze transakcje, ale rzadziej będzie handlować. Możesz obserwować NN w pracy, obliczając progi dla Ciebie, ponieważ w panelu informacyjnym dodałem małe podsumowanie. Dodałem obraz jak zaprojektowałem NN. Nie używałem programu komputerowego ani kreatora ani niczego podobnego. Użyłem pustego kawałka papieru do drukarki i ołówka. To zamknęło się na 29 pip po zysku rozprzestrzeniania podczas gdy ja właśnie próbowałem zrobić ten zrzut ekranu dla was, heh. W każdym razie, baw się dobrze

No comments:

Post a Comment