Sieci neuronowe a prognozowanie cen

Tu można dyskutować o wszystkich sprawach związanych z rynkiem Forex.
Awatar użytkownika
Pablo90
Pasjonat
Pasjonat
Posty: 1215
Rejestracja: 10 cze 2007, 15:36

Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: Pablo90 »

Ostatnio zgłębiam się trochę w tematykę sieci neuronowych i zastanawiam się w jaki sposób wykorzystać to w grze na rynkach finansowych? Tzn. o ile mam kilka pomysłów jakie wartości przydzielić do neuronów wejściowych, to co wstawić na wyjściu? Cenę "jutrzejszą"? I np. jak prognozowana cena jest wyższa to byłby sygnał buy, jak niższa sygnał sell. Ktoś kto ma doświadczenie mógłby podrzucić jakieś wskazówki?

MkubuxK
Pasjonat
Pasjonat
Posty: 1051
Rejestracja: 20 maja 2009, 18:27

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: MkubuxK »

http://fx-forum.pl/viewtopic.php?f=11&t=981

Nie odpalałem tego u siebie bo nie jestem pewien co siedzi w środku tego pliku skompilowanego. Może Tobie uda się to w jakiś bezpieczny sposób otworzyć i zobaczyć czy działa czy też to był scam.

-- Dodano: pt 08-04-2016, 13:57 --

Z tego co kojarzę to jeszcze nikomu nie udało się za pomocą sieci wyprognozować cen zamknięcia - nie szukałbym tutaj gralla i że Tobie nagle uda się w tydzień zrobić coś co będzie prognozować w 55% przypadków dobrze. Większość wrzuca do sieci wskaźniki i ich pochodne które strasznie się korelują ze sobą. Nikomu nie udało się wyprognozować kolejnej ceny za pomocą poprzednich w sieci więc to też wywal.

Gdybym miał się bawić z prognozą za pomocą sieci próbowałbym chyba z prognozowaniem dynamiki zmian cen lub średniej kroczącej. W przypadku tej drugiej czytałem, że skuteczność prognozy kierunku średniej to już coś w okolicach 90 albo 95% skuteczności - ale jak wiadomo średnia nie zmienia często kierunku.
fx-forum

Awatar użytkownika
Nowy500
Pasjonat
Pasjonat
Posty: 996
Rejestracja: 13 lip 2012, 17:16

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: Nowy500 »

czytalem odrobine na temat sieci neuronowych. Jesli wprowadzisz kilka danych wejsciowych np x y z (x byloby odchyleniem od srodka kanalu, y jakas dana makro, z przecieciem srednich) przypisujac im wage porownojac swiece dzisiejsza n z swieca wczorajsza n-1 i biorac pod uwaga okolo 200 prob wiec ostatnia swieca n-200. wzor uczylby sie sam i bylby mniej wrazliwy na zmiany wiazace sie z czasem. wartos tru or false zalezala by od Wzoru x(n)*wagax+y(n)*wagay+z(n)*wagaz <>x(n-1)*wagax+y(n-1)*wagay+z(n-1)*wagaz=tru/false, jestem bardzo ciekawy tego tematu wydaje mi sie warty przyjzeniu sie. Wiemy doskonale ze wszelakie wskazniki roznie dzialaja w roznych warunkach, po zastosowaniu sieci neuronowych mozna bylo by troche odfiltrowac szumy zwiazane z nieodpowiednia waga wskaznika. Cena close wydaje sie najodpowiedniejsza do prognozy typu 0/1, dalej moze udalo by sie porowac na podstawie trafosci wynikow skrajne wartosci wspolnego mianownika i obrobic to w postaci kanalu, sredniej, albo podobnego ustrojstwa :) temat otwarty

Awatar użytkownika
Pablo90
Pasjonat
Pasjonat
Posty: 1215
Rejestracja: 10 cze 2007, 15:36

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: Pablo90 »

MkubuxK pisze:Gdybym miał się bawić z prognozą za pomocą sieci próbowałbym chyba z prognozowaniem dynamiki zmian cen lub średniej kroczącej. W przypadku tej drugiej czytałem, że skuteczność prognozy kierunku średniej to już coś w okolicach 90 albo 95% skuteczności - ale jak wiadomo średnia nie zmienia często kierunku.
Też brałem pod uwagę ustawienie wartości średniej kroczącej na wyjściu i pewnie na tym się skończy.

Janus
Gaduła
Gaduła
Posty: 112
Rejestracja: 03 mar 2007, 13:26

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: Janus »

Drugim sposobem jest prognozowanie na podstawie zmienności jak pisze MkubuxK podobnie jak implied volatility

Awatar użytkownika
adamForex
Gaduła
Gaduła
Posty: 117
Rejestracja: 28 gru 2015, 10:24

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: adamForex »

Z sieciami jest sporo problemów. W ogóle trzeba zacząć od obróbki danych. Znalazłem jakieś artykuły sugerujące, że jak się pozwoli na zbytnie dopasowanie modelu do niestacjonarnego szeregu czasowego (czyli praktycznie każdego wykresu ceny), to zdolności prognostyczne sieci są lepsze. Tu można przeczytać te rewelacje: https://www.researchgate.net/publicatio ... ime_series

Problem jest też z samym dobraniem rodzaju/topografi sieci. Dużym zainteresowaniem cieszyła się LSTM (http://colah.github.io/posts/2015-08-Un ... ing-LSTMs/), czyli sieć z "pamięcią". Intuicyjnie wydaje się, że taka siec zaprojektowana do uczenia się długoterminowych zależności jest świetna do zastosowania na forexie. Ale nigdy nie spotkałem się z przykładem udanego wykorzystania tego do zarabiania.

Słyszałem o takich pomysłach, żeby zamiast cen prognozować wynik strategii. Czyli sieć uczyłaby się w jakich warunkach zlecenia danej strategii są zyskowne a w jakich nie. Jej prognoza decydowałaby czy sygnał wygenerowany przez strategię ma się zrealizować na rynku czy nie. Konieczny byłby tu jednak jakiś system wirtualnych zleceń (sieć musi się uczyć na podstawie wszystkich sygnałów a nie tylko tylko przez nią przepuszczonych) lub uruchomienie strategii na jednym koncie samopas a na drugim kopiowanie po przepuszczeniu przez sieć.

Awatar użytkownika
Pablo90
Pasjonat
Pasjonat
Posty: 1215
Rejestracja: 10 cze 2007, 15:36

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: Pablo90 »

adamForex widzę, że co nieco wiesz w temacie. Czy to co piszesz o prognozowaniu strategii to rozwiązanie nieliniowego problemu klasyfikacji? Czyli mamy 2 zbiory - pozycje stratne i zyskowne i w oparciu o sieci próbujemy te transakcje sklasyfikować?

Dzięki za ten link, czegoś takiego właśnie potrzebowałem. Raczej nie mam wobec tego jakichś oczekiwań, potrzebne mi to jest głównie do pracy dyplomowej, a może przy okazji coś ciekawego z tego wyjdzie :)

Awatar użytkownika
adamForex
Gaduła
Gaduła
Posty: 117
Rejestracja: 28 gru 2015, 10:24

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: adamForex »

Tak, to o czym myślałem, to problem klasyfikacji. Mielibyśmy 2 zbiory pozycji historycznych i zapisane dane opisujące sytuację rynkową w czasie, kiedy następowało otwarcie tych pozycji. W raz z każdą nową zamkniętą pozycją model klasyfikacji musiałby się uczyć od początku. No, ale chyba zrobienie tego nie jest takie proste.

Na forexfactory jest dobry wątek poświęcony sieciom na forexie: http://www.forexfactory.com/showthread. ... 785&page=1

Chyba główny wniosek jest taki, że bez względu co damy jako wyjście, to sieć trzeba cały czas trenować od nowa. Nie możemy wziąć danych historycznych, zbudować na nich modelu i używać go do nowych danych.

I z pomysłów jakie mieli w tym wątku, to było jeszcze:"
-prognozowanie czy kolejne świece będą spadkowe czy wzrostowe
-prognozowanie jaki w danym okresie nastąpi największy spadek i największy wzrost
-prognozowanie co z tego nastąpi szybciej

MkubuxK
Pasjonat
Pasjonat
Posty: 1051
Rejestracja: 20 maja 2009, 18:27

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: MkubuxK »

Co do tworzenia takiej mapy wyników i decydowania na jej podstawie to parę lat temu stworzyłem takiego eksperta, który działał na takiej zasadzie:

Mamy wirtualny tester ktory liczy wyniki dla cen close: w tym testerze co kazda swieczke close mieli eksperta ze stochastikiem w srodku dla roznych parametrow i dla roznej ilosci swieczek. Ten ekspert ktory aktualnie zaczyna notowac najlepsze wyniki jest tym co zaczyna inwestowac i zawiera transakcje.

W locie jezeli inny ekspert osiagnie lepsze wyniki to on zaczyna inwestowac i tak ekspert raz inwestowal krotkoterminowo na bardzo wrazliwym stochastiku a raz dlugoterminowo, ale wyniki nie byly niestety zbyt rewelacyjne. Plus wynik liczyl okolo 30 sekund takze ledwo sie miescil w jednominutowce.

Wydaje mi sie ze taka siec owszem fajnie bedzie cos klasyfikowac i znajdywac wygrywajace wzorce i na tym sie bedzie konczyc - zaraz po wykryciu wzorzec przestane zarabiac bo rynek non stop sie zmienia.

Moze gdybym wtedy pokombinowal z wrazliwoscia czy algorytmem ktory by decydowal o tym kto ma inwestowac bo by cos z tego bylo ale bardzo zle to napisalem i czas obliczen mnie zniechecil bo puscic test na historii rownalo sie woli godzinom oczekiwan.

Widzialem wykres gdzies ostatnio ( nie pamietam juz strony ) wskaznika, ktory w postaci oscylatora pokazywal ile procentowo strategii zarabia aktualnie ze zbioru np strategii opartych o rsi o najrozniejszych parametrach przy wyprzedaniu i wykupieniu tych parametrow i wiele to nie roznilo sie od zwyklego rsi ( byly dywergencje , i gorki i dolki w miare sie pokrywaly podobnie jak na rsi ale w trendzie i tak nie radzi sobie taki wskaznik co najwyzej pokaze tak jak rsi ze dynamika zmian cen powoli sie zmienia
fx-forum

Awatar użytkownika
adamForex
Gaduła
Gaduła
Posty: 117
Rejestracja: 28 gru 2015, 10:24

Re: Sieci neuronowe a prognozowanie cen

Nieprzeczytany post autor: adamForex »

To co piszesz brzmi fajnie, szczególnie wirtualny tester to musi być świetna sprawa. Przypomina to jednak bardziej optymalizację walking forward.

Z tym jest taki problem, że jak ze zbioru wszystkich parametrów wybierasz te, które dały najlepszy wyniki końcowy w danym okresie (najbardziej zyskowną strategię z jakimiś ustawieniami), to masz bardzo duże szanse na to, że po prostu dopasowałeś się do danych historycznych. I wtedy rzeczywiście kończy się to tak jak mówisz, dostajesz coś co wygląda świetnie w testach, ale wykłada się na nowych danych.

Poruszyłeś ważną kwestię, po stworzeniu takiej sieci trzeba dodatkowo pilnować, żeby jej nie przeuczyć. Tylko tu znowu to nie jest takie proste. Jak się uczy sieć rozpoznawać czy dany klient baku będzie spłacał kredyt czy nie, to mamy do czynienia z mniej lub bardziej stałym problemem, typów ludzi spłacających kredyty nie jest nieskończenie wiele. Na Forexie natomiast mamy ograniczone dane historyczne i nieskończenie (teoretycznie) wiele możliwości rozwoju ceny w przyszłości.
Możemy sobie dzielić zbiór na dane testowe i walidacyjne i na nich pilnować, żeby sieć się nie przeuczyła, dawała dobre wyniki na danych, na których się uczyła i na tych, których "teoretycznie jeszcze nie widziała".

No, ale tu właśnie napotykamy problem z ograniczoną liczbą danych. Przetestujemy model raz i wyjdzie, że na danych walidacyjnych błąd modelu jest za duży. No i co teraz? Zmieniamy parametry i działamy tak długo aż na danych walidacyjnych też nam dobrze wyjdzie? Spore szanse, że się dopasujemy do jednych i do drugich danych zamiast znaleźć dobry model. Możemy po każdej zmianie parametrów zmieniać dane walidaycjne, no ale wiemy, że są one ograniczone. I koło się zamyka.

Osobiście wierzę, że uczenie maszynowe może mieć jakieś zastosowanie na forexie, ale wiele wskazuje na to, że znalezienie jakiejś biblioteki do budowy sieci i przepuszczenie przez nią danych z rynku, to dopiero wierzchołek góry lodowej.

Kiedyś widziałem na MQL5.com bibliotekę do budowy sieci stworzoną przez Polaka, ale nie mogę już tego znaleźć. Jakby się komuś udało, to może jego warto wciągnąć do dyskusji lub poszukać co jemu się udało zdziałać.

ODPOWIEDZ