Wednesday 27 December 2017

Neural sieć forex wskaźniki


GLOBAL TRADING SYSTEMS FOREX PREDYCJA FOREX ROBOT BINARY OPTIONS ROBOT BINARY OPTIONS SYGNAŁY ZABEZPIECZENIA STOCKOWEGO ROBOT STOCK PREDYCJA Forex Scalper Profit Processor Robot EA jest prawdziwym robotem wielu rynków: trendem, non-trendowym, lotnym i nieulotnym. Zajmuje się wszystkimi ważnymi parami walutowymi. 50-100 transakcji dziennie. Zysk 250 na miesiąc. Z tym skomplikowanym EA Forex Scalper EA powinien osiągnąć solidny stały zysk. Bardzo bezpieczne dla konta. Dla początkujących forex lub zaawansowanych przedsiębiorców, jak również. Wskaźniki Forex Sygnały 3D - Sygnały Forex Nowa generacja Nowe, zaawansowane wskaźniki jakości 3D-Forex. Wskaźnik Forex oparty jest na analizach sieci neuronowych w wymiarze 3D i generuje statystycznie wiarygodne i dokładne sygnały handlu forex w czasie rzeczywistym. Sygnały są intuicyjne, łatwe w użyciu i utrzymują wyjątkową wygraną. 500 pipsów średnio zysk za miesiąc. 60 sekundowy wskaźnik opcji wskaźników binarnych (oparty na metatraderze). 90 dziennych wygranych. 100 sygnałów dziennie. 100 zysków za 1 godzinę Nieprzeznaczenie Łatwy w użyciu, współpracuje z dowolnym brokerem, dowolnymi aktywami. Dokładność zweryfikowana z prawdziwym kontem handlowym. Na podstawie zaawansowanych algorytmów sieci neuronowych. Przetestowali ponad 200 Binarnych Brokerów Brokerów i wykazali stabilny wysoki zysk. Opcje binarne Auto Trader 300 zysk miesięcznie 100 Binary Auto Trader dla brokerów bazujących na metadaderach, takich jak Rynki płynności, NoaFX, GDMFX, GoMarkets, Grandcapital, WForex i inne. Na podstawie algorytmu sieci neuronowych. Wbudowany system ochrony kont i zarządzania ryzykiem. 300 zysku miesięcznie 100 transakcji na dzień 100 Automatyczne opcje binarne Robot dla brokerów sieciowych Działy 60 sekund i 30 sekund Opcje binarne. Posiada wbudowaną ochronę depozytów, system zarządzania pieniędzmi. Automatycznie wykonuje transakcje bezpośrednio do połączonego konta brokera. 1500 ZA 1 ROK SUBSKRYPCJA Szukasz tanich sygnałów opcji binarnych i autotraderów Istnieje niewiarygodne sygnały optyczne BINARY OPTION, które przyczyniają się do sukcesu. Wskaźniki sygnału opcji binarnych (Metatrader 5). 90 dziennych wygranych. 50 sygnałów dziennie. Non-Repainting Działa z dowolnym brokerem. Na podstawie sieci neuronowych. 60 sekundowy wskaźnik opcji wskaźników binarnych (NinjaTrader based). 90-dniowa wygrana, wiarygodne i skuteczne sygnały handlowe. 70 sygnałów dziennie. Niepowtarzalny Super dokładny Łatwy w użyciu, współpracuje z dowolnym brokerem, wszelkimi aktywami. Synchronizacja z dowolnymi opcjami binarnymi. Na podstawie sieci neuronowych. Wskaźnik sygnału wyś wietlania i prognozowania indeksu binarnego dla Metatrader. Generuje 90 dokładnych, wiarygodnych i wygrywających sygnałów handlowych. Niepowtarzalność opartą na algorytmie sieci neuronowych. Współpracuje z dowolnym brokerem i dowolnym terminem. Może wysyłać powiadomienia na urządzenia przenośne, po czym następuje sygnał handlowy. 10 i 15 minut Opcje binarne Wskaźniki sygnałów handlowych dla Metatrader (MT4). 83 dzienne obroty 30 sygnałów handlowych dziennie 100 NAPRAWY 100 NIEZBIERZNE Wskaźnik wskaźników binarnych opcji (BO) doradzi, kiedy pojawią się wysokiej jakości możliwości handlowe. Pokazuje stabilny wysoki zysk. Zrelaksuj się, a IQ Option Trade Copier Plugin przetwarza Twoją firmę. IQ Option Trade Copier kopiuje transakcje z Metatrader bezpośrednio do Platformy Opcji IQ. Automatyzuje wszelkie zyskowne strategie i umożliwia handel pełnym pilotem samochodowym. Kopiuje transakcje natychmiast i niezawodnie. Binarny Opcje Copier Trade. Kopiuje transakcje z Metatrader bezpośrednio do platformy Binary Options i realizuje transakcje na swoim koncie pośrednika. Natychmiastowy. Niezawodny. Automatyzuje wszelkie zyskowne strategie i umożliwia handel pełnym pilotem automatycznym bezpośrednio z Metatrader. Sieć neuronowa - wskaźnik predykcji walutowej dla Metatrader. Generuje 90 dokładnych sygnałów handlowych. Do 250 zysków miesięcznie Przewiduje wysokie, niskie, bliskie ceny, kierunek zmian cen. 100 Non-Repainting Działa z dowolnymi parami walutowymi, dowolnymi ramkami czasowymi. Jest to najlepszy robot do skalpowania forex, który można wykorzystać i może rozwijać nawet najmniejsze konta handlowe na konta HUGE w bardzo krótkim czasie, bez konieczności rzucić palca Forex Scalper w ciągu dnia EA analizuje rynek Forex, aby znaleźć najlepszy wpis i punkty wyjścia. 250 zysków miesięcznie. Maksymalny wyciąg 3.5. 100 zautomatyzowany handel. Inteligentny robot handlowy forex (robot forex lub EA) dla Metatrader oparty na sieciach neuronowych i algorytm genetyczny. Samouczenie i samodoskonalenie Robot otwiera pozycje z 90 prawdopodobieństwem sukcesu. Metatrader - interaktywne brokery Trader Copier Bridge to programowalne rozszerzenie dla Workers Trader Workstation (TWS), które umożliwia handel ręcznie lub automatycznie bezpośrednio z Metatrader (MT4, MT5). Zautomatyzuj strategie handlowe za pośrednictwem interaktywnych brokerów. 300 zysków miesięcznie. Max drawdown 7. 90 udanych transakcji. 100 zautomatyzowany handel. Inteligentny robot handlowy forex (robot forex lub EA) dla Metatrader na bazie sieci neuronowych. Forex Robot Scalper pokazuje dużą liczbę transakcji dziennie, przy minimalnych stratach. Dukascopy Opcje binarne Robot 50 transakcji dziennie 100 Automatyczne opcje binarne Robot dla pośredników Dukascopy Handel 60 sekund i 15 minut Opcje binarne. Posiada wbudowaną ochronę depozytów, system zarządzania ryzykiem. 75-90 Wygraj nagrodę. 1500 ZA 1 ROK SUBSKRYPCJA Metatrader Nadex Trade Copier kopiuje transakcje z MT4 bezpośrednio do Nadex Trading Platform i realizuje transakcje. Natychmiastowy. Niezawodny. Pozwala przetestować i zautomatyzować dowolną strategię handlową oraz wykupić pełny pilot automatyczny bezpośrednio z Metatrader. Działa na każdy składnik aktywów. Nadex Trading Robot jest w pełni zautomatyzowanym oprogramowaniem handlowym przeznaczonym specjalnie do handlu z opcjami Nadex Binary Options. 100 transakcji dziennie 100 Automatyka Wbudowana ochrona depozytów, system zarządzania pieniędzmi. Opierając się na strategii niskoemisyjnej sieci neuronowych. 1500 ZA 1 ROK SUBSKRYPCJA Nadex Signals i Prediction Indicator jest specjalnie zaprojektowany do handlu z zyskiem z Nadex Binary Options. 90 sygnałów ITM Nadex. 50 sygnałów dziennie. Zgodność z najlepszymi i najbardziej niezawodnymi wskaźnikami sygnałów Nadex. 90 dokładny wskaźnik predykcji Bitcoin dla Metatrader na podstawie algorytmu sieci neuronowych. Generuje strumieniowe prognozy w czasie rzeczywistym i sygnały handlowe. Wskaźnik nie jest pomalowany. Przewiduje cenę, kierunek ruchu ceny, wykrywa punkty odwracania. Opcja IQ Option Robot obsługuje opcje binarne 100 zautomatyzowane. 75-90 dziennie wygranych 50-100 transakcji dziennie. Na podstawie algorytmu sieci neuronowych. Inteligentny IQ Option Robot automatycznie generuje sygnały, ustawia wielkość partii, posiada system ochrony kont. Kopiuj transakcje w sposób pewny i niezawodny pomiędzy różnymi komputerami za pośrednictwem Internetu na całym świecie oraz pomiędzy różnymi terminalami MT4 działającymi na tym samym komputerze. Kompatybilny z dowolną platformą MT4 z dowolnym brokerem Forex. Kopiuj wszystkie typy zamówień na rynek. Złoty Robot handlowy został opracowany dla GOLD 1H i SILVER 1H. 360 zysku za miesiąc. Maksymalny wypłat 10. 90 zwycięskich zawodów. 100 zautomatyzowany handel. Strategia długoterminowa. Każde zlecenie jest chronione przez Stop Loss i Take Profit. W pełni zoptymalizowane ustawienia. 90 dokładne. Generuje sygnały handlu strumieniowego w czasie rzeczywistym. Zainstalował strumieniowy przesył danych strumieniowych na żywo dla wszystkich ram czasowych. Przewiduje cenę, kierunek zmian cen, trend, generuje sygnały handlowe. Nie musisz instalować. Nowe sygnały są dostarczane dynamicznie do wykresu w czasie rzeczywistym. 260 NA 1 MIESIĄCE SUBSKRYPCJA 90 dokładnych transakcji strumieniowych w czasie rzeczywistym przewidywania cen i sygnałów handlowych Oprogramowanie. Każdego miesiąca gwarantuje 300 pułapów. Nie wymazywanie czasu na bazie algorytmu sieci neuronowych. W pełni zautomatyzowany internetowy predykator Forex online dla urządzeń stacjonarnych i mobilnych. 260 NA 1 KOLEJNOŚĆ SUBSKRYPCJI 95 dokładne. Prognoza cenowa, kierunek ruchu cen, tendencja, generuje sygnały buysell. Non-repainting Generuje sygnały handlu strumieniowego w czasie rzeczywistym. Zainstalował transmisję strumieniową transmisji danych na żywo. Interfejs internetowy. Dla komputerów stacjonarnych i przenośnych. 260 ZA 1 MIESIĘCIE SUBSKRYPCJA Trader Recovery Trader Robot (EA) 100 automatycznie naprawi swoje konto forex i odzyska swoje utracone pozycje, pomoże Ci zmniejszyć, a nawet wyeliminować utratę transakcji. Wystarczy umieścić swój handel, a nasz Robot Odzyskiwania Odpadów zrobi resztę dla Ciebie. Opcje binarne Copier Trade Copier Kopiuj wygrane transakcje, sygnały opcji binarnych między platformą opcji binarnych. Instant Reliable 100 Automated Obsługuje statyczny rozmiar partii, dynamiczny rozmiar partii, martingale. Kopiuj transakcje z opłacalnej strategii profesjonalnego przedsiębiorcy i zarabiaj. 75-80 dziennych wygranych 200 sygnałów dziennie. Sygnały handlu strumieniowego w czasie rzeczywistym. Każda para walutowa, upłynie. Na podstawie sieci neuronowych. Interfejs internetowy. Nie musisz instalować. Nowe sygnały są dostarczane dynamicznie do wykresu w czasie rzeczywistym. 260 ZA SUBSKRYBIE 1 MIESIĄCEGO Wielokrotne Forex Scalper EA jest 100 automatycznym robotem handlowym może wybrać najlepsze transakcje z 28 symboli. Opierając się na strategii niskiego ryzyka. Zapewnia, że ​​transakcje są wprowadzane w jak najlepszym czasie. Wykonuje transakcje kupna po niższych cenach i sprzedaje po wyższej cenie. Kopiuj zyskowne sygnały handlowe z największej sieci społecznościowej dla przedsiębiorców. Dołącz do globalnej społeczności handlowców, znajdź pomysły, które lubisz i skopiuj najlepsze pomysły i sygnały bezpośrednio do konta handlowego i skorzystaj z naszego narzędzia do kopiowania sygnałów Tradingview. Opis: Dwa sieciowe sieci neuronowe - wskaźnik bezpośredni (sieć neuronowa feedforward), która jest nauka przez powrót propagacji błędów (backpropagation). Sieć jest ładowana przez plik DLL, dołączony kod źródłowy C. Sieć neuronowa jest niczym więcej niż nieliniowymi modelami wyjściowymi w funkcji wejść. W wejściach wyświetlane były dane użytkownika, takie jak przykładowa seria czasowa. Znaczenie wyjścia jest również ustawiane przez użytkownika, na przykład sygnały 1 buy 0 sell. Struktura sieci, ponownie ustalona przez użytkownika. Sieć składa się z bezpośredniej dystrybucji - warstwy wejściowej (warstwy wejściowej), której elementami są wejścia, ukrytych warstw (ukrytych warstw), składających się z węzłów obliczeniowych zwanych neuronami i warstwą wyjściową (warstwą wyjściową), która składa się z jednego lub więcej neurony, plony są rentownościami w sieci. Wszystkie węzły sąsiednich warstw są połączone. Połączenia te nazywane są synapsami. Każdy synaps ma masę (w w i, j, k), które są mnożone przez dane przesyłane przez synapsy. Dane przesuwają się od lewej do prawej, czyli dane wejściowe z sieci do jej wyjść. Stąd nazwa bezpośrednia sieć dystrybucyjna. Całkowita próbka tej sieci jest przedstawiona na poniższym obrazku Dane są przetwarzane neuronami w dwóch krokach: 1. 1. Wszystkie wejścia pomnożone przez odpowiednią masę, dodaje się 2. 2. Następnie, uzyskana kwota obsługiwa aktywację neuron funkcji (funkcja aktywacji lub strzelania) oraz (funkcja aktywacji lub strzelania) i wysłana do jedynego wyjścia. Znaczenie funkcji aktywacji neuronu, podobnie jak neuron pracy mózgowej i mózgu: neuron jest wyzwalany dopiero po osiągnięciu pewnego progu. W aspektach matematycznych daje to jedynie sieć nielinearności. Bez tego, strata netto neuronu byłaby liniowym modelem autoregresji (model predykcji liniowej). Najczęstszą funkcją aktywacji jest neuron sigmoidalny f (x) 1 (1exp (-x)) f (x) 1 (1 exp (-x)) Próg aktywacji tej funkcji wynosi 0. Próg ten można przesunąć na osi poziomej kosztem dodatkowego neuronu wejściowego (wejściowe stronniczości) i nazywany skurczem wejściowym (wejście stronniczości), któremu przypisano pewną masę w taki sam sposób jak inne neurony wejściowe. W ten sposób liczba wejść, warstw, neuronów w każdej warstwie i wagi wejściowych neuronów obejmuje całą sieć neuronową, tj. Model nieliniowy, który tworzy. Aby skorzystać z tego modelu, musisz znać ciężar. Wagi są obliczane przez szkolenie sieci w przeszłych danych, tzn. Z poprzednimi danymi wejściowymi były znane wartości sygnału wyjściowego. Wagi sieci są zoptymalizowane tak, aby odpowiadały jej wynikom z testowym rozwiązaniem. Zazwyczaj dane wejściowe do sieci zawierały kilka zestawów danych wejściowych i odpowiadających im danych wyjściowych oraz obliczone średnie odchylenie błędów danych wyjściowych z testowania sieci. Sieć szkoleniowa ma na celu zmniejszenie tego problemu poprzez optymalizację ciężaru. Istnieje kilka metod optymalizacji, wśród których główny sposób propagowania błędów (ALO) i metoda poprawy genetycznej. Dołączone pliki: Train () Test (). Plik biblioteki BPNN. cpp zawiera dwie funkcje: Train () i Test (). Train () jest przeznaczony do szkolenia sieci w celu dostarczenia danych wejściowych i wyjściowych. Test () służy do obliczania danych wyjściowych w oparciu o wagi uzyskane po uruchomieniu Train (). Parametry wejściowe (zielone) i wyjściowe (niebieskie) funkcji Train () to: podwójna inpTrain - wejście (starsze pierwsze) double outTarget - Imprint (najstarsze pierwsze) double outTrain - wyjście z sieci po treningu int int - liczba treningów zestawy wejść i wyjść int UEW - zarządzanie kluczowymi wartościami zewnętrznymi w celu zainicjowania odważników (1 użyj extInitWt, 0 użyj liczb losowych) extInitWt - oryginalne wartości odważników podwójnie trenowanychWt - wartości wag po szkoleniu int NumLers - liczba warstw w sieci włączając dane wejściowe, ukryte i wyjściowe int lSz - rozmiary tablicy numLayers, które utrzymywały liczbę neuronów w każdej warstwie. lSz0 lSz 0 określa liczbę wejść sieciowych int OAF - kluczowa funkcja aktywacji neuronów wyjściowych (włączona 1 funkcja, 0 nie) podwójna LR - podwójna prędkość treningowa MF - moment uczenia się int nep - maksymalna liczba kroki szkoleniowe (epoki). Epoch polega na sprawdzeniu wszystkich zestawów szkoleniowych. double maxMSE - średni błąd, w którym przestaje się uczyć. Parametry wejściowe (zielone) i wyjściowe (niebieskie) funkcji Test () to: double inpTest - dane wejściowe (starsze pierwsze) double outTest - Imprint int ntt - zestawy danych wejściowych i wyjściowych double extInitWt - oryginalne wartości ciężarów numLayers - liczba warstw w sieci, w tym wejściowych, ukrytych i wyjściowych int lSz - tablic wielkości numLayers, które utrzymywały liczbę neuronów w każdej warstwie. lSz 0 określa liczbę wejść sieciowych int OAF - kluczowa funkcja aktywacji neuronów wyjściowych (włączona 1 funkcja, 0 nie). Użycie aktywacji neuronów wyjściowych zależy od charakteru wyjścia. Jeśli sygnały wyjściowe sieci są dwumianowe (0 1), musisz użyć funkcji aktywacji (OAF 1). Jeśli wyjście jest predykcją ceny, funkcja aktywacji w warstwie wyjściowej nie jest wymagana (OAF 0). Przykłady wskaźników neuronu Sieć: BPNN Predictor. mq4 - przewidywanie przyszłych cen. Parametry wejściowe sieci są względnymi przyrostami cen: x i Otwórz pasek testowy Otwórz opóźnienie testera i -1.0, przy czym opóźnienie z serii Fibonacciego. Wydajność sieci przewiduje relatywny wzrost przyszłych cen. Funkcja aktywacji w warstwie wyjściowej jest wyłączona. Parametry wejściowe są wskaźnikiem extern int lastBar - numer ostatniego paska z danymi intBBars - liczba przyszłych przewidywanych bajtów z zewnętrznych numerów - liczba warstw w sieci, w tym wejścia, liczby ukrytych i wyjściowych extern int numInputs - liczba wejść sieciowych zewnętrznych int numNeurons1 - liczba neuronów w warstwie 1 liczba zewnętrzna numNeurons2 - liczba neuronów w warstwie numer 2 extern int numNeurons3 extern int numNeurons4 extern int numNeurons5 extern int ntr - liczba zestawów treningowych nakładu wejściowego i wyjściowego podwójny LR - szybkość nauki sieci extern podwójna MF - współczynnik czasu sieci uczenia się extern int nep - maksymalna liczba etapów szkolenia (epochs) extern int maxMSEpwr - wykładnik używany do obliczania maksymalnego dozwolonego błędu średniego kwadratowego uczenia się maxMSE 10 maxMSEpwr Kupuj-Sprzedaj Classificator. mq4 - buysell. Buy-Sell Classificator. mq4 - wskaźnik predykcyjny kupuje sygnały sprzedające. Podobnie jak w poprzednim przykładzie, sieć wejściowa obsługiwała xiOpentestbarOpentestbardelayi-1.0 x i Otwórz pasek testowy Otwórz opóźnienie testera i -1.0 dla pasków, które w przeszłości otrzymały sygnał do zakupu lub sprzedaży. Te ostatnie sygnały są idealne jako sygnały wejściowe, aby uzyskać określony zysk. Sygnałem wyjściowym sieci jest 1 lub 0 buy sell. Funkcja aktywacji warstwy wyjściowej. extern int lastBar - numer ostatniego paska zewnętrznego int minProfit - minimalny zysk w celu znalezienia idealnego punktu wejścia w poprzednim zewnętrznym podwójnym progu - progu rozpoznawania sygnałów wyjściowych jako 0 lub 1 zewnętrznych numerów wewnętrznych - liczba warstw w sieć zawierająca wejściowe, ukryte i wyjściowe zewnętrzne int numInput - liczba wejść sieciowych zewnętrznych int numNeurons1 - liczba neuronów w warstwie numer 1 zewnętrzna int numNeurons2 - liczba neuronów w warstwie numer 2 zewnętrzna int numNeurons3 extern int numNeurons3 extern int numNeurons4 extern int numNeurons4 extern int numNeurons5 extern int ntr - liczba zestawów treningowych wejść / wyjść (w zależności od liczby sygnałów kupna w przeszłości, 0 wybiera wszystkie prawidłowe sygnały) extern double LR - szybkość uczenia się sieć zewnętrzna podwójna MF - współczynnik czasu uczenia się sieć zewnętrzna int nep - maksymalna liczba etapów szkolenia (epoki) extern int maxMSEpwr - wykładnik używany do obliczania maksymalnej liczby wszystkich Prawdopodobny błąd średnie-kwadratowy uczenia się maxMSE 10 maxMSEpwr Arrow na prawo od pionowych zielonych linii wskazuje sygnały kupna sprzedaży generowane przez sieć w celu testowania przyszłych pasków. Strzałki po lewej stronie przedstawiają optymalny punkt wejścia w przeszłości. Instalacja plików: Skopiuj załączony plik DLL w folderze C: Program Files MetaTrader 4 ekspertów Biblioteki Umożliwia korzystanie z biblioteki DLL w metażerze: Narzędzia - Opcje - Doradcy dla ekspertów - Zezwalaj na import plików DLL Jeśli plik DLL nie zadziała, skompiluj się. Wszystkie potrzebne pliki znajdują się w pliku BPNN. zip. Snowa sieć neuronowa firmy Novell w celu handlu forex W tym artykule: przykład wykorzystania naszego oprogramowania do tworzenia sieci neuronowych sieci neuronowych. W tym przykładzie użyto wbudowanego w kodeks skryptowy język. dlatego przeczytaj najpierw przewodnik po języku skryptowym. Korzystanie z sieci neuronowych do stworzenia strategii handlowej FOREX W tym bezpłatnym poradniku online znajdziesz pełny cykl korzystania z sieci neuronowych (Cortex Neural Networks Software) do obrotu na rynku Forex (lub obrotu na giełdzie, idea jest taka sama). Dowiesz się, jak wybrać wejścia dla sztucznych sieci neuronowych. i jak zdecydować, co używać jako wyjście. Znajdziesz przykład gotowego do użycia skryptu, który umożliwia przeprowadzenie optymalizacji sieci neuronowych zarówno struktury sieci neuronowej (liczba neuronów), jak i systemu handlu forex (stop loss itp.) Wreszcie (część, która nie jest obecna większość instrukcji), dowiesz się, co robić dalej. W końcu Cortex Neural Networks Software nie może robić obrotu w czasie rzeczywistym, musisz użyć czegoś takiego jak Trade Station, MetaQuotes lub MetaTrader. Jak przenieść system handlu forex z Cortex do swojej ulubionej platformy transakcyjnej Czy masz do czynienia z DLL, kontrolkami ActiveX i programowaniem na niższym poziomie Odpowiedź brzmi NIE. Oprogramowanie Cortex Neural Networks jest wyposażone w łatwą w obsłudze funkcję, która pozwala łatwo przenosić powstałą (wyszkoloną) sieć neuronową do języka skryptowego platformy handlowej. Brak bibliotek DLL, DDE, ActiveX lub innych rozwiązań na niższym poziomie - wszystko jest proste i proste. Ważna uwaga: nie jest to sposób na handel samouczek. Zamiast tego mówi o tym, jak korzystać z oprogramowania Cortex Neural Networks. ale nadal musisz wynaleźć swój własny system handlowy. Ten, którego tu używamy, ledwie jest punktem wyjścia, i nie powinien być używany jako strategia handlu forex, jak jest. Ideą tego tekstu jest uczenie, aby stworzyć systemy transakcyjne bazujące na NN i przenieść je do wybranej platformy handlowej. Przykład ten jest jednak zoptymalizowany i może być użyty jedynie jako ilustracja zasad handlu. W ten sam sposób system MACD, który można znaleźć w wielu samouczkach, nie działa dobrze (w miarę zmian rynków), ale nadal jest dobrym przykładem wykorzystania wskaźników mechanicznego obrotu. W dwóch słowach: wykonaj własną analizę. Kolejna ważna uwaga: samouczek korzysta z przykładów, wiele z nich. Aby ułatwić Ci życie, włączyłem je wszystkie, a nie tylko fragmenty. Jednak czyni tekst znacznie dłużej. Również odchodzę od pierwszego, niezręcznego systemu handlu forex. do bardziej zaawansowanych, za każdym razem wyjaśniając, co zostało poprawione i dlaczego. Bądź cierpliwy lub skocz do sekcji, której potrzebujesz. Uwaga końcowa: kod nie jest wyryty w kamieniu, może się zmienić podczas pisania tego tekstu. Ostateczne wersje plików skryptowych są zawarte w archiwum Cortex. Pułapki FOREX KUP SPRZEDAŻY Sygnały: Co jest nie tak w prostych przykładach W podręczniku użytkownika oprogramowania Cortex Neural Networks użyliśmy prostego przykładu pofałdowatej sieci neuronowej. przewidując cenę akcji GENZ. Aby dowiedzieć się, co jest nie tak z tym podejściem, pozwól nam tego samego prostego przykładu, używając MSFT. TXT zamiast GENZ. TXT (użyj 800 rekordów w zestawie uczenia, ponieważ MSFT. TXT jest trochę krótszy, a następnie GENZ. TEKST). To po prostu nie będzie działać Dlaczego powód stanie się oczywisty, jeśli zadasz sobie pytanie: co jest powodem, że prognozowanie sieci neuronowych przyszłych wartości można zrobić na pierwszym miejscu Odpowiedź brzmi: robi to, co nazywa się rozpoznawaniem wzorców sieci neuronowych. rozpoznać wzorce i jeśli w tych wzorach jest ukryta logika, wtedy zostanie rozpoznany nowy wzór (z tą samą logiką). To jest sztuczka - z tą samą logiką. Nie ma nawet jednego, ale trzy problemy. Przede wszystkim, jeśli spojrzymy na cenę akcji firmy Microsoft, zauważymy, że dzieje się w części uczenia się naszych danych, a na boki - w części testowej. Jest więc możliwe, że logika się zmieniła. Po drugie, a jeszcze ważniejsze - JAKIM CZYM JEST WZÓR Widzisz, czy uczyliśmy sieci neuronowej w zakresie od 10 do 100, a następnie przedstawiliśmy ją w zakresie od 1 do 3 - różnią się wzorami 10, 20, 30 i 1, 2, 3 wyglądają podobnie do człowieka, ponieważ - POWSTAJEM - mamy tę zdolność dzielenia przez dziesięć, gdy prezentowane są liczby kończące się zerem. Jest to tzw. Wstępna obróbka danych, a domyślnie NN nie może tego zrobić. Czy możemy tego nauczyć Oczywiście. Co to jest dokładnie to musimy to uczyć To jest trzecia i najważniejsza. Nie potrzebujemy przewidywania cen Nie dbamy o to, czego potrzebujemy FOREX kupuj sygnały sprzedające. Teraz poczekajmy Potrzebujemy a) aby nasz wkład (zarówno nauka, jak i testowanie) w tym samym przedziale, i potrzebujemy b) aby móc podejmować decyzje handlowe oparte na tym Czy to nie jest to, co nazywamy wskaźnikiem Bingo Tak więc to co zamierzamy zrobić - zbudujemy wskaźnik, przekazujemy go do wejścia NN i postaramy się przewidzieć wartość wskaźnika, a nie bezwartościową cenę akcji W naszym pierwszym przykładzie załadujemy akcje cytuje z dysku, otwiera plik sieci neuronowej i uruchamia naukę - wszystko działa w trybie automatycznym. Utwórz nowy plik skryptu (lub otwórz ten, który pochodzi z archiwum oprogramowania Cortex Neural Networks) i zadzwoń do niego stocksnn. tsc. Przede wszystkim musimy pobrać wartości z pliku MSFT. TXT. Zamierzamy użyć wskaźnika CLV (patrz poniżej), ale aby go obliczyć, potrzebujemy dzielonych wartości dla opcji Wysoki i Niski, nie tylko dla bliskich. Oto jak je zdobyć. stocksnn. tsc, część 1 Pierwsza linia przypisuje ścieżkę do zmiennej strStockPath, oczywiście, musisz ją edytować, jeśli plik danych znajduje się w innym katalogu. W drugiej linii określamy, że ta ścieżka nie jest względna (względem lokalizacji pliku Cortex. exe). TABLELOADER otrzymuje ścieżkę, pustą linię dla linii startowej, 1 - pomija pierwszą linię (nazwy kolumn), część linii nagłówków plików (ostatnia linia w MSFT. TXT nie zawiera danych), jest również instrukowana załadować numer kolumny 0 (i wywołać arrDate), 2 (arrHigh), 3 (arrLow), 4 (arrC) i 6 (arrClose). Pełny opis TABLELOADER zawiera przewodnik SLANG. Następnie obliczymy podział, dzieląc dostosowaną wartość Zamknij przez zamknięcie i używaj tej wartości, aby dostosować wartość Niska i Wysoka. Plik MSFT. TXT zawiera najnowsze dane FIRST, a my chcemy, aby były LAST. Następnie musimy stworzyć wskaźnik. Powiedzmy, że będzie to wskaźnik zbliżonej lokalizacji, chociaż w prawdziwym życiu prawdopodobnie używałbym więcej niż jednego wskaźnika jako wejścia NN. Wskaźnik położenia bliskiej lokalizacji jest obliczany na przykład przez CLV ((ścisłe - niskie) - (wysokie - zamknięte)) (wysoka - niska), w przypadku których jest zbliżona, dolna i duża, niekoniecznie dla pojedynczego paska. Zauważ, że chcemy go w zakresie 0 - 1, aby ułatwić normalizację do naszego zakresu NN (znów 0-1). stocksnn. tsc, część 3 Następnie musimy utworzyć plik lag. Pozwolenie na użycie opóźnień równych 1, 2. 9 (szczegóły na temat funkcji plików można znaleźć w podręczniku SLANG). Należy zauważyć, że okno Cortexs NN może automatycznie powodować opóźnienia (można użyć przycisku Generate lag). Ale później w tym tekście będziemy pracować ze złożonymi opóźnieniami (co oznacza, że ​​nie są one 1, 2, 3, ale 1, 3, 64) niezależnie, należy utworzyć kod, który może obsłużyć to zadanie w bardziej elastyczny sposób. stocksnn. tsc, część 4 O pliku opóźnienia jesteśmy gotowi stworzyć naszą pierwszą sieć neuronową. Ta funkcja wymaga wielu parametrów, więc bądź ostrożny. Jednak kod jest naprawdę prosty. Przy okazji większość tego kodu można usunąć, jeśli uważasz, że możesz obsługiwać numery, zamiast znaczących nazw w kodzie, jednak byłoby to bardzo złe praktyki kodowania. stocksnn. tsc, część 5 Teraz, gdy mamy sieć neuronową i opóźniony plik z danymi, musimy nauczyć sieci. Plik lag (msftind. lgg) zawiera 1074 rekordów, więc warto rozważyć użycie 800 jako zestawu uczenia się, a pozostałych 274 jako zestawu testowego. Możesz oczywiście otworzyć plik sieciowy i kliknąć przycisk Uruchom na karcie Nauka. Ponieważ jednak jest to wprowadzenie do zaawansowanych programowań Neuronowych Cortex, użyj języka skryptowego wbudowanego w język SLANG. Poniższy kod wyświetla modalne okno dialogowe z ustawieniami ann NN. Zauważ, że jeśli chcesz mieć przywilej kliknięcia przycisku Uruchom, musisz zmienić partycję stocksnn. tsc, część 6 bStartLearning może mieć wartość 0, w takim przypadku okno dialogowe będzie czekać na dane wejściowe lub 1, rozpocznie się aytomatically. BResumeScript, jeśli jest równy 1, wznowi działanie skryptu, jeśli zamknie się okno dialogowe, klikając przycisk OK. BReset jest używany do zresetowania sieci przed rozpoczęciem nauki. Uruchom skrypt i poczekaj, aż licznik epoki przekroczy 1000, a następnie kliknij przycisk Zatrzymaj. Przejdź do karty Zastosuj i kliknij przycisk Zastosuj. Spowoduje to uruchomienie całego zestawu danych (zarówno uczenia się, jak i testowania) przez NN i utworzenie pliku. APL, zawierającego zarówno oryginalne dane wejściowe, jak i wygenerowane przez NN wygrane predykury, dzięki temu można je łatwo sprecyzować i sprostać . Przejdź do karty Wyjście, wybierz plik msftind. apl, kliknij Przeglądaj pliki, wybierz pola, a następnie wybierz opcję Nie w lewej kolumnie i (przytrzymując klawisz CTRL podczas wybierania za pomocą myszy) Clv i NN: Clv w prawą listą. Kliknij wykres, aby zobaczyć, jak dobry jest nasza prognoza. Dobrze. Jest mniej lub bardziej dobry, od tego, co możemy powiedzieć, patrząc na to. Jeszcze nic nadzwyczajnego. To był tylko przykład tego, co możesz zrobić ze skryptami SLANG i jak automatyzować rutynowe zadania Cortexsa. Jednak do tej pory nic nie zrobiliśmy ręcznie. Dobrze. prawie nic, bo jeśli chcesz utworzyć niestandardowy plik lag, na przykład Clv-100, Clv-50, Clv-25. kolumny, to będziesz musiał użyć języka SLANG (lub Excela), ponieważ nie możesz w Cortex bez skryptów. Strategia handlowa FOREX: co optymalizować Oto nasz kolejny problem. Czy potrzebujemy bardzo przystojnego przewidywania, czy potrzebujemy tego, z którego możemy korzystać w celach handlowych? Pytanie wydaje się dziwne, ale po prostu pomyśl o tym przez chwilę. Powiedzmy, że mamy BARDZO dobre 1-godzinną przewidywania. 95 dokładne. Nadal, jak daleko cena może wynieść w ciągu jednej godziny Nie za bardzo, obawiam się. Porównaj to z sytuacją, gdy masz dość niedokładne 10-godzinne przewidywanie. Czy to będzie lepsze Aby odpowiedzieć na to pytanie, musimy rzeczywiście handlować, proste porównanie średnich błędów popełnianych przez obydwa NNs nie pomoże. Druga część (tego samego problemu) jest w sposób, w jaki definiujemy dobrą prognozę. Powiedzmy, że mamy sieć, która daje przewidywanie, które jest 75 dokładne. Porównuj ją do NN, co daje 100 dokładnych przewidywań. Ostatni jest lepszy. Teraz, DIVIDE wyjście (przewidywanie) 100 dokładnych NN przez 10. Będziemy mieć bardzo niedokładną sieć, ponieważ jej sygnał jest nigdzie w pobliżu sygnału, który użyliśmy jako pożądanego wyjścia. I jeszcze można go używać w taki sam sposób, w jakim wykorzystaliśmy 100 dokładnych NN, co musimy zrobić, to pomnożyć go do 10 Zobacz, tworzony jest NN, dostrajając średni błąd kwadratowy, a nie korelację, więc co najmniej w teorii, lepszy NN może wykazywać złe wyniki, gdy jest używany do rzeczywistego obrotu na giełdzie. Aby rozwiązać ten problem, musimy przetestować naszych NN używając handlu i używać wyników tego handlu (zysk i rozliczenia), aby zdecydować, czy ten NN jest lepszy od drugiego. Zróbmy to. Pozwala stworzyć program, który może być użyty do dostrojenia NN, a tym razem przez precyzyjne dostrojenie będziemy oznaczać wyniki handlowe. Sieć neuronowa w handlu: kilka krótkich notatek Na przykład w powyższym przykładzie automatyczna nauka nigdy się nie skończy, ponieważ nie określiliśmy kryteriów zatrzymania. W oknie dialogowym lub w funkcji CREATENN możesz podać min. błąd (gdy NN sięga, zatrzymuje się, a jeśli bResumeScript jest ustawiony na 1, okno dialogowe zostanie zamknięte i skrypt zostanie wznowiony). Również yo może zapewnić maksymalną liczbę epok, lub obu. Nie używam tego w poniższym przykładzie, przynajmniej nie zawsze, bo mam zamiar obserwować naukę i kliknąć STOP, gdy myślę, że NN jest gotowy. Jeśli chcesz to zrobić w trybie automatycznym, zwróć uwagę na te parametry. Druga. Jednym ze sposobów na utworzenie sieci mniejszej, szybszej i dokładniejszej jest rozpoczęcie od małej sieci i zwiększenie jej rozmiaru, neuron przez neuron. Liczba nowych neuronów jest określona liczbą kolumn danych wejściowych (ale możemy też je zmieniać), a liczba neuronów wyjściowych powinna być równa liczbie kolumn danych wyjściowych (zazwyczaj jednego, ale niekoniecznie ). Oznacza to, że musimy zoptymalizować liczbę neuronów w ukrytej warstwie (warstwach). Ponadto, jak wspomniałem, nie wiemy, które dane mają być użyte. Czy Clv-15 (15 dni opóźniających) zwiększy dokładność naszych przewidywań Czy potrzebujemy Clv-256 Czy lepiej będzie używać obu z nich w tym samym NN, czy też dodamy Clv-256 do zrujnowania naszej wydajności Korzystając z zagnieżdżonych cykli, aby spróbować różnych parametry wejściowe można: Utworzyć NN, podobnie jak zrobiliśmy to dla danych giełdowych (pozwól mi powtarzać, dla NN, nie ma różnicy między zapasami i FOREXem, zdarzyło się, że mam kilka wysokiej jakości plików danych FOREX, który chcę przetworzyć, pisząc ten tekst). Spróbuj użyć różnych kombinacji opóźnień. Wypróbuj inną liczbę neuronów w ukrytej warstwie. . oraz różne kombinacje różnych wskaźników. . i tak dalej. Jeśli jednak spróbujesz wszystkich możliwych kombinacji wszystkich możliwych parametrów, NIGDY nie otrzymasz wyników, bez względu na szybkość Twojego komputera. Poniżej będziemy używać kilku sztuczek, aby zredukować obliczenia do minimum. By the way, może się wydawać, że jeśli zaczynasz od jednego ukrytego neuronu, zwiększ go do 2, 3 i tak dalej, aw pewnym momencie błąd (jakość przewidywania) lub zysk (jeśli testujesz NN przez handlu przy użyciu) zacznie spadać, a następnie masz swojego zwycięzcę. Niestety, nie mogę udowodnić, że po pierwszym spektaklu nie ma drugiego. Oznacza to, że błąd może wynosić 100, 30, 20, 40, 50 (było to tylko na minimalnym, prawym), a następnie 30, 20, 10, 15. (drugie minimum). Musimy tylko przetestować wszystkie rozsądne liczby. Trzeci. Optymalizacja jest mieczem obosiecznym. Jeśli nadmiernie zoptymalizujesz kod, może to nie działać poza danymi, które zostały użyte do jego dokładnego dostrojenia. Postaram się jak najlepiej, aby uniknąć tego pułapki. Jeśli potrzebujesz dodatkowych optymalizacji kodu lub NN, radzę przeprowadzić badania w Internecie, aby dowiedzieć się więcej na temat ukrytych problemów tego podejścia. Chciałbym też zwrócić uwagę na gładkość krzywej zysków. Zysk, który wygląda na 0, -500, 1000, -100, 10000 może być wielki, ale zysk 0, 100, 200, 300, 400 jest lepszy, ponieważ jest mniej ryzykowny. Możemy o tym później porozmawiać. Wreszcie w tym przykładzie będziemy używać FOREX, a nie cen akcji. Z punktu widzenia NN nie ma różnicy, a z mojego punktu - Forex jest dużo bardziej zabawne w handlu. Jeśli wolisz zapasy, kod można łatwo zmodyfikować. Strategia handlowa FOREX, aby grać z Przede wszystkim pozwala stworzyć prototyp naszego kodu, który można z łatwością zoptymalizować w przyszłości. Będzie to system handlowy, który wykorzystuje sieć neuronową do handlu i generowania wykresu (zysk w stosunku do numeru handlowego). Będzie również obliczać wypłatę, jako miarę stabilności naszego systemu obrotu. forexnn01.tsc część 1 Główna różnica polega na tym, że używamy funkcji, zamiast umieszczać cały kod w głównym bloku programu. W ten sposób łatwiej jest zarządzać. Po drugie, mamy funkcję TestNet. Używam bardzo prostego algorytmu obrotu. Wskaźnik CLV jest ograniczony do przedziału 0-1 (nasza wersja CLV jest), więc gdy wskaźnik przecina dBuyLevel (patrz kod powyżej), kupuję, kiedy przekracza dSellLevel, sprzedaję. Oczywiście nie jest to najlepsza strategia handlowa, ale zrobi to dla naszego celu (na razie). Jeśli chcesz to poprawić, oto kilka wskazówek. Po pierwsze, możesz mieć system, który nie jest ZAWSZE na rynku. Po drugie, warto użyć więcej niż jednego wskaźnika jako danych wejściowych, a być może więcej niż jednego NN, aby decyzja handlowa była oparta na kilku przewidywanych wskaźnikach. W późniejszym czasie dołączymy do ulepszeń algorytmów handlowych. Używamy pewnych standardowych założeń handlu FOREX: spread wynosi 5 punktów, leverade wynosi 100, min. partia wynosi 100 (mini-FOREX). Pozwala spojrzeć na nasz system handlowy. Po raz kolejny jest to uproszczony. Ważna uwaga: TestNn () jest nazywany ostatnio i ma dostęp do wszystkich zmiennych, które zostały utworzone do tego punktu. Jeśli widzisz zmienną, której używam, bez jej inicjalizacji, prawdopodobnie oznacza to, że została zainicjowana w NewNn (), TeachNn () lub innej funkcji, która została wywołana przed TestNn (). Aby ułatwić pracę, komentarze są umieszczane w kodzie. forexnn01.tsc, część 2 Kilka słów na temat wypłaty. Jest kilka sposobów ich obliczania i używamy tego, co uważam za najbardziej uczciwe. Wycięcie jest miarą niestabilności naszego systemu. Co to jest szansa, że ​​utraci pieniądze Powiedzmy, że początkowa kwota wynosi 1000. Jeśli zysk wyniósł 100, 200, 300, 400. wypłaty to 0. Jeśli idzie 100, 200, 100. to wypłaty wynosi 0,1 ( 10), ponieważ właśnie straciłyśmy kwotę, równą 110 depozytu początkowego (od 1200 do 1100). Chciałbym gorąco radzić sobie z wykorzystaniem systemów obrotu z dużymi wypłatami. Również tutaj używam drawdown, który ma być używany z wielkością zmiennej partii. Jednak w rzeczywistych próbkach, które zawierają eBook, zobaczysz inną wersję: Jak widać, zawsze używamy 1000 (początkowa ilość), aby obliczyć wypłatę. Powód jest prosty: zawsze korzystamy z tej samej wielkości partii (brak zarządzania pieniędzmi jeszcze), więc nie ma różnicy, ile pieniędzy zgromadziliśmy już na naszym koncie, średni zysk powinien być stały. W tym przypadku najgorszy scenariusz wygląda tak: od samego początku (na 1000) tracimy pieniądze. Jeśli wykorzystamy 1000 do obliczenia wypłaty, otrzymamy gorsze wypłaty. To nam pomoże nie oszukać siebie. Na przykład powiedzmy, że sprzedajemy przez jakiś czas i mamy na naszym koncie 10.000. Później tracimy trochę pieniędzy, a teraz mamy 8 000. Wtedy odzyskaliśmy i dostaliśmy 12.000. Dobry system obrotu Prawdopodobnie nie. Pozwala powtórzyć logikę ponownie, ponieważ jest bardzo ważna (a stanie się jeszcze ważniejsza, gdy zaczniemy zarządzać pieniędzmi). Zajmujemy się handlem nieruchomościami o stałej wielkości. Tak więc, statystycznie, nie ma gwarancji, że maksymalna strata nie nastąpi na samym początku, gdy mamy tylko 1000. A jeśli to się zdarzy, będziemy mieć -1000 (10.000-8.000), więc system obrotu jest prawdopodobnie zbyt ryzykowny. Kiedy mówimy o zarządzaniu pieniędzmi (prawdopodobnie, nie w tym tekście), będziemy musieli zastosować inne podejście do obliczania wypłat. Zauważ, że w tym systemie handlowym używam gorszego scenariusza: kupuję High i sprzedaję, używając Low. Wielu testerów nie przestrzega tych zasad i tworzy systemy handlowe, które działają poprawnie na dane historyczne. Ale w prawdziwym życiu te systemy handlowe mają bardzo słabą wydajność. Dlaczego warto spojrzeć na pasek cen. Ma Open, High, Low i Close. Czy wiesz, jak cena porusza się w barze Nie. Więc powiedzmy, twój system obrotu generował sygnał kupna, na dole paska cen (jeśli dLow Należy zauważyć, że używam dLotSize równej 0,1 lot (100). Oczywiście, w prawdziwym handlu, będziesz wdzięczny, jeśli rozmiar partii zostanie obliczony w zależności od posiadanych pieniędzy, np .: forexnn01.tsc, część 3 Jednak robimy testy tutaj, a nie handel. potrzebujesz między innymi zobaczyć, jak gładka jest krzywa zysku. Jest dużo łatwiej zrobić, jeśli rozmiar partii jest taki sam (w idealnej sytuacji, dla dLotSize 100 otrzymamy linię prostą, z pewnym nachyleniem, podczas gdy w jeśli chodzi o regulowaną wielkość partii otrzymamy wykładnik, który jest o wiele trudniejszy do analizy).Później w tym tekście będziemy stosować zasady zarządzania pieniędzmi do naszego systemu handlowego, ale jeszcze nie. Po zakończeniu z ostatnią częścią naszego testowanie, przejście przez resztę kodu. Następująca funkcja tworzy wskaźnik CLV e interwał jako parametr, co oznacza, że ​​wielokrotnie możemy go nazwać, podczas optymalizacji, przekazując różne liczby. Zauważ, że używam NN, który działa w przedziale 0-1. Oczywiście dane można znormalizować, ale zdecydowałem się podzielić wskaźnik na 2 i dodać 0,5, tak że jest w zakresie 0 - 1. forexnn01.tsc, część 4 Aby utworzyć plik lag, możemy użyć funkcji CREATELAGFILE. Alternatywnie możemy to zrobić przez wyraźne dostarczenie całego niezbędnego kodu. W tym przypadku mamy większą kontrolę i będziemy potrzebować tego, jeśli zaczniemy zmieniać liczbę opóźnionych kolumn i tak dalej. forexnn01.tsc, część 5 Parametr nRemoveFirst jest ważny. Wiele funkcji, takich jak wskaźniki, ruchome średnie, opóźniacze generatorów, nie działa dobrze w pierwszych kilku dokumentach zestawu danych. Powiedzmy, że mamy MA (14) - co będzie w rekordach 1 - 13. Postaramy się więc po prostu usunąć kilka pierwszych (niewiarygodnych) rekordów. Dla NewNn, jak również dla wszystkich funkcji tego programu, musimy przekazać jako parametry tylko, co można zmienić podczas procesu optymalizacji. Na przykład nie ma potrzeby pomijania przed parametrem, ponieważ zawsze jest takie samo. forexnn01.tsc, część 6 Funkcja TeachNn po prostu wyświetla okno dialogowe NN. forexnn01.tsc, część 7 Wreszcie potrzebujemy funkcji wykresów. Nie jest to obowiązkowe, ale zawsze warto zobaczyć, jak wygląda nasza marka zysku. Poniższy kod wykorzystuje XML do tworzenia wykresu, więc dobrym pomysłem jest przeczytanie samouczka. Alternatywnie można narysować wykres, zamiast zapisywać go w pliku. Aby to zrobić, użyj jednej z próbek znajdujących się w katalogu samplesscripts. Na koniec możesz zmodyfikować kod, aby produkować HTML, a nie XML. HTML jest łatwiejsze do nauczenia, ale sam kod będzie nieco mniej czytelny. forexnn01.tsc, część 8 Skompiluj i uruchom skrypt. Dobrze. Zgodnie z oczekiwaniami, 7 godzin w przedziale czasu dla CLV spowodowało bardzo niskie wyniki: strategie handlowe FOREX i optymalizacja. Znaczenie złych wyników jest dość oczywiste: stosowaliśmy stopień interwału, stop loss, buy and sell i innych parametrów, które były purely random - we just picked first that came in mind What if we try few combinations FOREX Trading Signals: What to optimize First of all, by overoptimizing the buy and sell levels, we can ruin our future performance. However we still can tune them, especially, if the performance is close for close values of buy and sell limits. For example, if we have -10 profit at buy limit equal 0.3, and 1000 profit when it equals 0.35, then there is probably a lucky coincidence, and we should not use 0.35 for our trading system, as in future it will probably not happen again. If, instead, we have -10 and 10 (instead of 1000), it may be safer to use. Generally, our trading system should be built for WORSE possible scenario, as if during the real trading the performance will be better, then during the test, we will survive, but not the other way around. We can vary the value for the indicator interval, provided we have enough trades, so that we can be confident, in terms of statistics, in the performance of a system. We certainly can vary the number of neurons, I dont think it can be overoptimized easily. We can vary number of inputs and lags for inputs. It is possible to overoptimize this, but it is not very likely to happen. And, of course, we can try different indicators. Accurate FOREX Signals: How to optimize As have already been mentioned, if we start trying all possible combinations, it will take forever. So we are going to cheat. We will create pre-defined sets of parameters, that we think are reasonable, and pass them to the program. To make as few calculations as possible, note, that Clv-1 and Clv-2 are, probably, important, but what about Clv-128 And - if we already have Clv-128, do we need Clv-129 Probably, not. So we are going to have something like Clv-1, Clv-2, Clv-4, Clv-8. Clv-128 with just few variations, which will make our calculation time thousands times shorter. FOREX Professional System Trading: Can it work at all What is it exactly we want to predict Until this point we have used 1 hour chart for EURUSD, and we were predicting the next bars CLV. Will the CLV2 be better What about CLV3 Also, especially considering the poor performance of our first trading system, it would be nice to know, that - at least in the ideal world, the goal (profitable trading) can be achieved. To answer these questions, lets create a simple testing program. We assume, that our prediction is 100 accurate, and, based on this assumption, we will use CLVN, not the NN predicted one. Thats right - we are going to take data from the future, and to use them instead of the NN prediction. This approach wouldnt work in the real life, of course, but at leats, it will give us some ideas of what to expect. When looking at the results, please keep in mind, that we are not using any advanced money management, our lot size is set to a minimum 100. If you use variable lot sizes, results will be dramatically different. But even at a lot size set to 0.1 we can see (below) that getting the information from the future is an ultimate traders holly graal. forexnn02.tsc, part 1 You are already familiar with this code, it was used in FOREXNN01.TSC. It handles data loading. The only difference is in the part that obtains the list of files in the images directory and deletes all files with the. PNG extention. The reason for this code is simple: during our tests we are going to create many - may be, thousands - image files. We dont want them to hung around after we are done. So at the beginning of the script we are deleting images, created by other scripts. forexnn02.tsc, part 2 Just a few comments. We do not want to try all possible values for, for example, CLV interval. Instead, we can create an array, that contains only values we want to test. Then (see below) we will walk through this array. Stop losses are important part of any trading strategy, so I have decided to vary them as well. It is a dangerous idea, however, as it is easy to overoptimize the system. I am planning to test different values for buy and sell levels, but it will be done in cycle, without using arrays. Unlike in our previous example, we want to have a large XML file, containing many images. To do it, I have moved the code, that is forming the XML header and footer outside of the Chart function. Read one of the online XML tutorials for details. Note, that I am using 0 as the first lag, which means, that first I am testing the indicator (CLV) that was not shifted from the future. Just to get an idea, how good out trading system would be without NN (horrible, is the right word. It is loosing all the money). Cortex uses the Internet Explorer control to display XML pages. When pages grow large, it takes a lot of memory. If your computer cannot handle it, consider creating multiple XML or HTML pages, instead. In the case of forexnn02, it should not be a problem, as the page is relatively short. Alternatively (that is what I am doing in scripts later in this text), create XML file, but do not open it from Cortex. Open them using Internet Explorer instead - unlike IE control, the Internet Explorer does not have the memory problem. Now the code that is trying different combinations of parameters. forexnn02.tsc, part 3 Here, we are using nested cycles. In every cycle, we are assidning some variable (for example, nInterval for the outer cycle). This way the cycle will assign values of all elements of a corresponding array, one in a time. Then WITHIN it, the inner cycle is used, and so on, so that all combinations of all array elements are tested. In the innermost cycle, I am calling the Test() function, to test trade, and Chart() to add a new picture to a list of images saved on disk. Note, that this Chart() does not show any images, until all cycles are completed. The Test() and CreateClv() functions are almost the same as in the previous example. The only real difference is due to the fact that it is called more then once. To do it, I am calling ARRAYREMOVE to cleanup arrays. Also, notice, that we are only creating charts for the combinations of parameters, that produce trading system with positive profit. Otherwise, we call continue, to skip the Chart() function. Finally, we have Take Profit now, so our trading system can be a bit more flexible. forexnn02.tsc, part 4 The Chart() function was broken into two pieces. The header and the footer should be written to the XML file only once, so they were moved to the main part of the program. Also, I am using the counter, to save files under the different names. The information about parameters is written to the header of an image, so we can easily see which one it is. Finally, images are only saved for winning configurations, meaning the balance at the end should be more, then at the beginning. forexnn02.tsc, part 5 Run the program (it will take some time to complete). You will end up with a large XML page with images, one for each winning configuration. Some of the results are great, however, as we used data from the future, this system will not work in the real life. Actually, if you look at the Test() function, you will notice, that the cycle stops before we reach the last element of arrClose: for(nBar nRemoveFirst 1 nBar THIS IS C, just an example. As you can see, the code is really simple. Now lets do the same using the SLANG script. As in examples before, we will keep the overall structure of the code, so that this example looks familiar. The only difference is that instead of using the built-in APPLYNN function, we call the function of our own. The code that we do not use (such as cycles) is commented, but not removed. Note, that the logic behind it was discussed in Neural Networks and Stock Forex Trading article already. Briefly, the output of this script is formated to be compatible with the MQL, MetaTraders scripting engine. MetaTrader is a trading platform we use, if you want something different, like TradeStation, for example, you will have to alter the code to comply to its syntax. Then, in the following chapters, we are going to inse rt this code in the MetaTraders indicator, and to use it to trade. Porting script to trading platform The next step is not really required, but it is something, that may be useful. We are going to create a version of a tsc file (one above), but this time, we will use SLANG (Cortex scripting language) to emulate APPLYNN function. The reason is, in the next chapter we are going to port it to the scripting language of a MetaTrader trading platform, so it is a good idea to make sure everything works. After we run this function, we discover, that the result it produces is the same, as the forexnn05a produced, which means the code works fine. Note, that there is a difference at the beginning of the charts, as our NN does not try to process the data at the beginning (where lag is incomplete), while the built-in NN does not know about this problem. Of course, it doesnt affect the result, as the beginning of the chart is ignored by using the nRemoveFirst parameter in our script (set to 200, which is guaranteed to be larger, then our lag). Using third-party trading platform We have the NN that (more or less) can be used. We have the script, implementing this NN without calls to the Cortex-specific NN functions. Now we are going to port it to the trading platform that can be used for the real trading, which means it can contact brocker, place orders and earn (or loose) money. As a trading platform, I am going to use MetaTrader Disclaimer: I am not related to MetaQuotes in any way. I do not work for them, I am not their affiliate and so on. I use MetaTrader, ONLY because I like it. I find this program user-friendly, flexible and powerful, and not a monster. Also, it is free (compare to other packages of this class). The only (minor) problem is that it is not always easy to find the dealer using MT in your area. Then, when you do a research, you may find couple of brockers, with screenshots on their web sites, that look suspiciously familiar. Yes, they use MetaTrader, but they dont call it MetaTrader I have asked for clarification at the companys forum, and they have told me, that they dont reveal brockers using their services. Very strange. One of the brockers that is not hiding the fact they use MT, is Alpari. They will allow you to open a Demo account, so that you can trade in a real time, but without risking your money. Warning I am not going to recommeng services of Alpari. Once again, I am not being paid for that. Try their Demo account, and use your own judgement. Or you can start your own research at Internet forums. Finally, if you do not like the MT, you can probably follow the example below using TS, MS or some other trading platform. This is just an example. Our MT-based trading system will include two files, the indicator and an expert. This is the way they call it in MQL (scripting language of MT), and I am going to follow this naming convention. The indicator implements the neural network and draws a chart. An expert takes these data and does trading. As MetaTrader has a strategy tester, we will be able to test our strategy, to see how good it is. I will assume, that you are familiar with MQL programming, it is quite close to SLANG and tutorials can be found both at MetaQuotes and Alpari. Finally, I am using the code structure, that is borrowed from MetaQuotes forum, permission to use it the author of the corresponding posts had granted me permission to use fragments of his code. Also, as some of our MetaTrader code is the same for all experts and indicators, we moved it to a separate library file. MetaTraders libraries are nothing but includable files. This library takes care of synhronization, when two or more expert are trying to run in the same time, as well as of few other things. If you use MetaTrader, it will help you to create robust experts, in any case, the MQL language is easy to understand. mylib. mql, a helper library The code should look familiar, all I did was re-writing it, using slightly different language syntax of MQL. This indicator has two buffers, and draws two lines, one for the original NOC, and one for the NN-predicted NOC. For trading, you dont have to draw both indicator lines, of course (see MQL tutorials to learn how to do it), but I have decided to show them together, so you can compare. Another difference, that you should know about, is the way MT performs testing. It may, in some cases, be more accurate, then one we did (we did the worse case scenario). Of course, you can always to change the SLANG script from the examples above, to implement any logic you want. The result of our testing in MT is a bit better, then in Cortex, due to all these reasons. Keep in mind, that MT calculates the DD in a different way. I still think, that my way is better. In should be especially noted, that no additional optimization had been performed using MetaTraders optimizer. We have just plugged our MTS (mechanical trading system) in, and it worked as expected. That is it. You can now create Cortex Neural Network, optimize it to do trading, and to port it to the trading platform of your choice. Pobierz Cortex Order Cortex Zobacz Cennik Widoczność jest bardzo ważna dla tej witryny. If you like it please link to this URL2 - Forex Strategies - Forex Resources - Forex Trading-free forex trading signals and FX Forecast Neural Networks Indicator for Metatrader Neural Networks Indicator free download Free download Indicators Neural Networks indicator for Metatrader 4. All Indicators on Forex Strategies Resources are free. Here there is a list of download Neural Networks mq4 indicators for Metatrader 4. It easy by attach to the chart for all Metatrader users. Download an indicator. Extract from the file rar or zip. Copy Neural Networks Indicator mq4 to Metatrader Directory experts indicators Copy Neural Networks Indicator mq4 to Metatrader Directory experts indicators Start or restart your Metatrader Client Select chart and Timeframe where you want to test your indicator Search Custom Indicators in your Navigator mostly left in your Metatrader Client Right click on Neural Networks indicator mq4 Attach to a chart Modify settings or press ok Indicator Neural Networks mq4 is available on the chart For remove Neural NetWorks mq4 from Metatrader chart: select the chart where is the Indicator running in Metatrader Client, Right click into the chart Select the Indicator and delete

No comments:

Post a Comment