[NeuroGenStatAgent] - Czyli adaptacja albo śmierć ;)

Miejsce, gdzie każdy może prowadzić swój własny dziennik gry na FX.
LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

green7 pisze: Poszło na prv.
Dzięki.
green7 pisze:Jak standaryzujesz ?
Standaryzacja jest hm..prymitywna.. skoro agent ma pamięć X to patrzę na rozkład wartości jakie były w tej pamięci, i z tego wyliczam procent.(mniej więcej).
Powinno to pomóc w tym, że rynki zmieniają z czasem swoją dynamikę, i nie ma co analizować całej historii...i tak np. 50% wahań z ostatnich X "swieczek" może mieć inna wartość niż "to samo" 50% miesiąc temu.

Tak właśnie myślę, że powinienem mieć 2 rodzaje pamięci... pamięć rozkładu wartości wskaźników( PR), a pamięć na podstawie której liczę skuteczność(PS).
Gdzie PR na pewno większa niż PS.

green7 pisze:Czemu 2 ? I czy nie lepiej byłoby specjalizować agenta ? Tzn. byliby agenci long i agenci short.
A widzisz, to mam akurat bardziej przemyślane ;)

Otóż obecni agenci właśnie mają specjalizację. i nazywa się ona:
KONSOLIDACJA i TREND. Dlatego wybrałem SL = TP *3. Wtedy mam 50% (Teoretycznie), że będzie konsolidacja (złapię 2 razy TP), i 50% na trend (złapię jeden SL i jeden TP).

Drugi rodzaj agentów (to w 2 części jak tą dam radę zrobić) będzie właśnie dotyczyła Long i Short, A dokładniej.

"obecni" agenci, mówią czy TREND czy KONSOLIDACJA. niech będzie ta KONSOLIDACJA. Czyli powinny złapać się 2 razy TP.
Oczywiście w tej sytuacji muszę otwierać dwóch pozycji TP =23 i SL = 3*TP, tylko zamiast tego, mógłbym otworzyć dwa zlecenia oczekujące (SellLimit i BuyLimit) w odległości 23 od aktualnej ceny o TP = SL = 46 pipsów (co daje znów 50%).
Ja tego oczywiście nie zrobię :P tylko poczekam, aż cena pójdzie w jedną bądź w drugą stronę i jak dojdzie, to pojawią się agenci od short/long, i wtedy jak potwierdzą to otwieramy pozycję.

Oczywiście znów chaotycznie..

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

Oczywiście między czasie pojawiło się parę małych problemów ;)

Ale są pierwsze wyniki, a raczej "wyniki".
Stwierdziłem, że najpierw trzeba sprawdzić jaką pierwszy agent prymitywny (ma tylko w sobie jeden ATR o jakimś niskim periodzie, nawet nie wiem jaki ;) ) ma skuteczność odnośnie samego przyswajania wiedzy.

Innymi słowy, jaką ma skuteczność na danych których się nauczył.
Parametry wstępne:
Pamięć wartości wskaźnika = 500;
atr period chyba = 10;

Wyniki, pierwsza "kolumna" to ilość danych na podstawie których liczy statystyki, druga kolumna to skuteczność.
i tak:
20 - 80%
40 - 75%
80 - 69%
160 - 63%
320 - 59%

Teraz sprawdzę to samo tylko dla Pamięć wartości wskaźnika = 1000, a później trochę inny atr, żeby mieć jakieś porównanie. Trochę przeceniłem szybkość liczenia mojego kompa i popełniłem, mały bład optymalizacyjny ;) trzeba poprawić.

Wnioski?
Na razie żadnych, w sumie oczywiste, że przy 20 była taka skuteczność, bo sie tego prawie wyuczył.

A i przetestuję jeszcze troszeczkę inną funkcje uczenia statystyk, ale najpierw optymalizacja, czyli pewnie już nie dzisiaj. No chyba, że.

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

Pierwsze wyniki w prognozowaniu

Nadszedł czas na ocenę zdolności prognostycznych, jednego pierwszego z brzegu atr, i jak się można było spodziewać...jest brak jakichkolwiek (znaczących statystycznie) zdolności prognostycznych ;)

Nie ma na to zbytnio wpływu wielkość zapamiętanych danych do tworzenia statystyk. Sprawdzano od 20 do 360. (Oczywiście muszę jeszcze posprawdzać czy nie ma jakiegoś większego błędu w programie, bo martwi mnie, że częściej jest prognozowany TREND)

Oczywiście mnie to w ogóle nie martwi, nawet by mnie zaskoczyło, jak by jakieś wartości były.
Sprawdzę jeszcze tylko dla przykładu inny atr i pamięć zakresów wskaźników, nie powinno nic być też zaskakującego, ale wypadało by sprawdzić.
Na kolejny ogień pójdą do testów MA,Stoch,PRICE, ale to też tylko testy czy agent primityw działa.

[edit]
No tak zwiększenie pamięci zakresów wskaźników zwiększyło skuteczność średnio o...
0,05 procenta (nie 5 procent ;) ), a że przez to liczy mi się dłużej jeden przebieg 0 10 sekund, to hm..zostawię pamięć 500 ostatnich wartości wskaźników, w końcu daje to ponad ostatni tydzień, wystarczy.

[edit2]
Ok, wystarczy testów atr, (nie chce mi się więcej, czas na książkę), "wszystkie" są tak samo mało przydatne w prognozowaniu :) , ale to ok przecież dążymy do analizy troszkę bardziej skomplikowanej.

Awatar użytkownika
batman
Gaduła
Gaduła
Posty: 159
Rejestracja: 19 kwie 2011, 07:55

Nieprzeczytany post autor: batman »

Podoba mi się Twój minimalizm jeśli chodzi o wskaźniki ;)
Za to mam wrażenie, żę sieci neuronowe i algorytmy genetyczne, to z kolej krok w strone trudngo do ogarnięcie wzrostu złożoności...

Możesz trochę rozjaśnić o tych agentach? Ile tych agentów planujesz mieć? Możesz opisać jakiegoś jednego przykłowego? Co on dostaje na wejście i o czym decyduje (stwierdza, że jest trend/konsolidacja?)
Bo trochę nie rozumiem, co Ci dają owi agenci w stosunku do wyliczania statystyki wprost z tych ostatnich 500 śweiczek (bez jakiegoś tam uczenia, krzyżowania itp).

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

batman pisze:Podoba mi się Twój minimalizm jeśli chodzi o wskaźniki
heheh, to tylko test podstawowych funkcjonalności. (z racji, że ma mały priorytet to wolno idzie) Teraz poprawiam wydajność bo wskaźników (tzn. nie rodzai, bo ich jest tylko 4) jest na ten moment (i raczej więcej nie będzie) trochę ponad 9000.

Za to mam wrażenie, żę sieci neuronowe i algorytmy genetyczne, to z kolej krok w strone trudngo do ogarnięcie wzrostu złożoności...
Sieci neuronowe będą bardo proste, ba nawet nie nazwał bym ich nie wiadomo jakimi sieciami, bo to po prostu zwykła forma "optymalizacji", genetyczne będą bardzo potrzebne, bo jeste właśnie 9000 dostępnych wartości wskaźników w danym momencie.

batman pisze:Możesz trochę rozjaśnić o tych agentach? Ile tych agentów planujesz mieć? Możesz opisać jakiegoś jednego przykłowego? Co on dostaje na wejście i o czym decyduje (stwierdza, że jest trend/konsolidacja?)
Bo trochę nie rozumiem, co Ci dają owi agenci w stosunku do wyliczania statystyki wprost z tych ostatnich 500 śweiczek (bez jakiegoś tam uczenia, krzyżowania itp).
To od tyłu, na razie pomińmy "genetyke" i "neurony".(no może troszeczkę o "genetyce" będzie)
Opiszę stan na ten moment i spróbuję jakieś jednolite nazewnictwo nadać, aby potem nie mieszać i być w miarę zrozumiałym (wiem, że czasem mam chaotyczny sposób wyrażania myśli..

0.1. Agent na ten moment, czyli wersja prymityw ;)
Agent ma swoją pamięć statystyk nazwijmy ją PS. Jest też pamięć wartości wskaźnika która jest przeniesiona akurat z agenta do "dostawcy informacji." (czyli wartości wskaźników i w ogóle), nazwijmy ją PW

PW - jest to historia wartości danego wskaźnika i to jest to właśnie 500 świeczek, ( w zasadzie, to "dawca informacji" trzyma tą historie dla wszystkich wskaźników) z niektórych wskaźników(czyli wszystkich oprócz stocha ;) ) odcinane jest 10% krańcowych wartości (czyli najwyższych i najniższych) zostaje 80% najczęściej występujących wartości. Na postawie tego zakresu normalizowana jest wartość aktualnego wskaźnika i przeskalowana na wartości -1 +1 (powód nieistotny). I to tyle jesi chodzi o PW. Ilość świeczek jest stała i taka sama dla wszystkich agentów..

PS - jest to pamięć danego agenta (czyli każdy agent może mieć inną wielkość różnych wskaźników) , i zapamiętywana jest skuteczność danego wskaźnika (jeden agent będzie mógł obługiwać myślę, że do 6 wskaźników plus 3 hamujące, ale to chwilowo nie ten etap). Pamięć PS u agenta będzie wynosiła prawdopodobnie od 20 do 300 świeczek.

A teraz Agent:
Agent - ma na starcie przypisane 6 losowych wskaźników którymi będzie się zajmował.(Na razie ma jeden i to określony i nie losowy :P), to dla nich będzie w swojej pamięci analizował ich skuteczność. Co dostaje na wejściu? Dostaje co świeczkę znormalizowane wartości tych wskaźników i na ich podstawie daje na wyjściu TREND/KONSOLIDACJA.(Dokładnie to wraca procent szans na KONSOLIDACJĘ. To tyle wersja prymityw.

Ilu będzie agentów? Nie wiem, po skończeniu testów z jednym, później parą i trzema, wrzucę ich około 1000, docelowo będą oni na bieżąco umierali i rodzili się, ale ciągle w granicach 1000, ale to jak będą już geny.

W czym agenci są lepsi od wyliczania statystyk i wprost z ostatnich 500 świeczek? Gdyby był jeden agent to niczym, po za modelowaniem.

Jednak będzie ich niech będzie ten 1000, i każdy ma inne losowe 6 wskaźników (a jest ich ponad 9000), każdy agent po za statystykami analizuje skuteczność swojej prognozy, umiera, tworzą się nowe (to już "genetyka") , i w ten sposób zostają dynamicznie coraz lepiej sprawujące się wskaźniki.
Dodatkowo agent oceniany jest zewnętrznie i ma przypisaną wagę jego stuteczności, ostateczna decyzja podjęta jest poprzez głosowanie (z wagą).
Jednym słowem, dzieki agentom dostaję adaptację, wskaźników (bo same statystyki nie wystarczą) i długości pamięci PS, (każdy agent na starcie będzie miał losową długość pamięci PS)

Gdybym chciał np. te 6 wskaźników wybrać(z 9000) i optymalizować to miałbym jakąś liczbę z 20 zerami, i do było by dopasowanie na ten moment, i za parę świeczek znów musiał bym przeliczać...możliwe, ale po co kombinować.

Oczywiście wszelkie sugestie mile widziane, bo oczywiście mogę czegoś nie dostrzegać, komplikować/upraszczać.

A Jeszcze TREND/KONSOLIDACJA.
Agencji nie wykrywają kierunku ruchu (to może następni współpracujący agenci będą robić), tylko TREND/KONSOLIDACJA w ramach TP = 23 SL = 3* TP (Gdzie TP jest wybrane ot tak). I konsolidacja jest rozumiana, tak, że jeżeli otworzę w 2 strony takie pozycje, to złapie obydwa TP inny przypadek to trend.

Awatar użytkownika
batman
Gaduła
Gaduła
Posty: 159
Rejestracja: 19 kwie 2011, 07:55

Nieprzeczytany post autor: batman »

Dzięki za wyjaśnienia.
A te 6 wskaźników przykładowego agenta, to np ATR na M5 sprzed 30 świeczek, średnia na M30 sprzed 8 świeczek, stoch na M15 sprzed 27 świeczek itp itd - dobrze rozumiem? Czy to są zawsze aktualne wartości (z ostatniej świeczki), a 9000 bierze się z różnych parametrów tych wskaźników - bo tego nie rozumiem.

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

batman pisze:Dzięki za wyjaśnienia.
A te 6 wskaźników przykładowego agenta, to np ATR na M5 sprzed 30 świeczek, średnia na M30 sprzed 8 świeczek, stoch na M15 sprzed 27 świeczek itp itd - dobrze rozumiem? Czy to są zawsze aktualne wartości (z ostatniej świeczki), a 9000 bierze się z różnych parametrów tych wskaźników - bo tego nie rozumiem.
O rzeczywiście nie wyjaśniłem, te 9k, to zawsze z bieżących wskaźników z różnymi parametrami(I TF), tak łatwiej, a jak dobrze pomyśleć to wychodzi na blisko tak samo. A filozoficznie można by rzec, że nie interesuje mnie historia tylko bieżące wartości ;)

Awatar użytkownika
batman
Gaduła
Gaduła
Posty: 159
Rejestracja: 19 kwie 2011, 07:55

Nieprzeczytany post autor: batman »

Teraz chyba rozumiem ;) Ciekawe...
Z tych 9000 wskaźników, to pewnie niektóre są bardzo ze sobą skorelowane (na przestrzeni lat) - i może można by bez wielkiej straty wybrać np. tylko ze 100 najbardziej nieskorelowanych ?

Bardzo jestem ciekaw, czy takie podejście z agentami się sprawdzi. Jest w tym pewna logika...
Będę tu zaglądał ;)

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Nieprzeczytany post autor: green7 »

Coś mi się zdaje, że zmierzasz prostą drogą do przeoptymalizowania .....
Ten sam efekt osiągnąłbyś pewnie za pomocą optymalizatora mt4 plus odpalanie go co ileśtam świeczek.....
Green
Obrazek
Obrazek

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

green7 pisze:Coś mi się zdaje, że zmierzasz prostą drogą do przeoptymalizowania .....
Ten sam efekt osiągnąłbyś pewnie za pomocą optymalizatora mt4 plus odpalanie go co ileśtam świeczek.....
(Myślałem trochę (dosłownie) nad tym)
Tak by było gdyby proces "uczenia" polegał na tym, że przelecę drugi po historii.. a tu zawsze będzie wyglądało mniej więcej tak.

-Stawienie parametrów nazwijmy to globalnych, czyli dotyczących samego krzyżowania itp.)
- Losowanie parametrów (wskaźników)
- Jazda..
- w Trakcie jazdy Agenci umierają, krzyżują się, rodzą (nie po całym procesie testów)
- koniec ...

Przy ponownym teście, zapamiętane wskaźniki jako te najlepsze... ulegają zapomnieniu...
Optymalizowane są tylko parametry "globalne" (Na razie ich tu w ogólenie ma, tworze je w głowie, bo to wszystko trochę taka improwizacja ;) ) dotyczące właśnie tych umierań, krzyżowań itp.
batman pisze:Z tych 9000 wskaźników, to pewnie niektóre są bardzo ze sobą skorelowane (na przestrzeni lat) - i może można by bez wielkiej straty wybrać np. tylko ze 100 najbardziej nieskorelowanych ?
No właśnie nie mogę (tak myślę) pousuwać bo chciałbym aby ta adaptacja następowała w miarę płynnie, czyli każda para wskaźników o "bliskich parametrach" będzie skorelowana...

ODPOWIEDZ