Quantitative Trading

Tu można dyskutować o wszystkich sprawach związanych z rynkiem Forex.

Czy korzysztasz z zaawansowanych modeli matematycznych podczas tradingu?

tak
26
23%
nie
88
77%
 
Liczba głosów: 114

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

Nieprzeczytany post autor: green7 »

StudenTM84 pisze:Zastanawiam się również, czy wersja greena z kodem typu "xxxxyyyyzzzzvvvvv" jest poprawna ale używa innych pojęć niż przedstawionych przeze mnie czy mówimy w ogóle o czymś innym. Poza tym ja coś takiego nazwałbym populacją składającą się z 4 chromosomów a każdy z nich z 4 genów (poza ostatnim, który ma ich 5).
Jest poprawna. A co do pojęć: to sorki ale jak mówiłem masz tu podstawowe problemy. To co napisałeś powyżej o chromosomach, i populacji najlepiej o tym świadczy. Zrozum: GEN to nie bit przyjmujący wartość 0 lub 1. Gen może przyjmować wiele wartości - więc naturalnie jego reprezentacja w komputerze będzie wymagała wielu bitów. Ot, choćby kolor oczu u ludzi: odpowiada za to jeden gen ale czy są tu możliwe tylko 2 wartości? Nie.
Zapis powyżej to przedstawia: to 1 chromosom, mający 4 geny (literki x y z v) a każdy gen reprezentowany jest na tylu bitach ile odpowiadających mu literek (co definiuje ile dany gen wartości może przyjmować).
maariuszn pisze: Aby zobrazować "moc" GP podam jeszcze jeden link:
http://rogeralsing.com/2008/12/07/genet ... -mona-lisa
Przykład jest na grafice, ale chodzi o idee. Podajemy obraz, który chcemy uzyskać a program sam ewoluuje w ten sposób, żeby narysować obraz jak najbardziej podobny.
Przykład bardzo efektowny wizualnie - ale to dosyć prosta sprawa. Tutaj obawiam się mamy do czynienia z systemem bardziej skomplikowanym.
Tig3r pisze:Panowie, to co opisujecie MT4 ma już wbudowane przy optymalizacji. Sam wykorzystanie AG pokaże mam najlepszy wynik - czyli najlepsze ustawienia w za dany okres.
Tak - ale nad AG w testerze nie masz kontroli. Nie możesz stworzyć własnej funkcji dopasowania - ot takiej jak sam podajesz gdzie wynik dopasowania jest wagą kilku czynników.
Nie możesz stworzyć własnych operatorów krzyżowania/mutacji (lub jeszcze innych) uwzględniających to jak zapisałeś dane w chromosomie (co ważne jest dla efektów działania). Nie możesz nawet ustalić liczebności populacji, parametrów mutacji itd. Nie możesz wpływać na do by populacja nie została zdominowana przez jednego osobnika itd, etc.

Jedyne do czego nadaje się AG testera to optymalizacja kilku zmiennych.
maariuszn pisze:Jeżeli chodzi o tę kwestię to ja nie widzę żadnego problemu. Mając danego osobnika, dekodujemy informację zawartą w jego chromosomie a uzyskane wartości parametrów wstawiamy do systemu. Następnie system zapuszczamy na danych i uzyskujemy wszyskie niezbędne informacje do funkcji celu np. zysk, max dd, %zyskownych transakcji, SharpeRatio i cokolwiek sobie chcemy wyliczyć.
Każdy osobnik uzyska inny wynik i na tej podstawie dokonujemy selekcji.
No właśnie: wstawiamy do systemu i zapuszczamy na danych. Co to znaczy: musimy mieć tester umożliwiający coś takiego. Własny tester bo tego z MT4 nie ma jak podpiąć do AG (który będzie działał poza MT4) ...
oczywiście można kombinować z użyciem mt4, odpalaniem go z parametrami i jakimś "zautomatyzowanym klikaniem" w celu uruchomienia automatycznie testera - ale nie tędy droga moim zdaniem ....

maariuszn
Stały bywalec
Stały bywalec
Posty: 72
Rejestracja: 01 cze 2007, 22:25

Nieprzeczytany post autor: maariuszn »

green7 pisze:A co do pojęć: to sorki ale jak mówiłem masz tu podstawowe problemy
Panowie, nie ma co się sprzeczać co i jak się nazywa, ważne, że wiadomo o co chodzi.
green7 pisze:Co to znaczy: musimy mieć tester umożliwiający coś takiego. Własny tester bo tego z MT4 nie ma jak podpiąć do AG (który będzie działał poza MT4) ...
Da się to zrobić w MT4, nawet w bardzo prosty sposób, ale nie wiem czy będzie to najbardziej efektywne.
Po prostu trzeba napisać odpowiedni skrypt. Za pomocą funkcji iBarShift określasz od której do której świeczki ma działać i zapuszczasz w pętli. W pętli piszesz co chcesz i wszystko działa jak EA. Oczywiście skrypt trzeba zapuścić na odpowiednim TF.

Chciałem tylko przypomnieć, że temat to Quantitative Trading i może warto porozmawiać o czymś innym niż tylko algorytmy genetyczne.

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

Nieprzeczytany post autor: green7 »

maariuszn pisze:Da się to zrobić w MT4, nawet w bardzo prosty sposób, ale nie wiem czy będzie to najbardziej efektywne.
Po prostu trzeba napisać odpowiedni skrypt. Za pomocą funkcji iBarShift określasz od której do której świeczki ma działać i zapuszczasz w pętli. W pętli piszesz co chcesz i wszystko działa jak EA. Oczywiście skrypt trzeba zapuścić na odpowiednim TF.
Nie bardzo rozumiem jak chcesz to spiąć z AG - gdzie wymagane jest określenie funkcji przystosowania dla każdego osobnika przy każdym przebiegu AG. Czyli: przetestowania rozwiązania przedstawianego przez osobnika na danych historycznych, policzenia zysku, dd itd.

No chyba, żeby skrypt w mt4 komunikował się z AG, odczytywał z pliku dane osobnika, interpretował zawartość jego chromosomu, i na jej podstawie przeprowadzał wirtualne transakcje i zwracał ich rezultat. Ale wydaje mi się to marnym pomysłem.
Green
Obrazek
Obrazek

StudenTM84
Stały bywalec
Stały bywalec
Posty: 53
Rejestracja: 07 maja 2009, 21:08

Nieprzeczytany post autor: StudenTM84 »

green7 pisze:Jest poprawna. A co do pojęć: to sorki ale jak mówiłem masz tu podstawowe problemy. To co napisałeś powyżej o chromosomach, i populacji najlepiej o tym świadczy. Zrozum: GEN to nie bit przyjmujący wartość 0 lub 1. Gen może przyjmować wiele wartości - więc naturalnie jego reprezentacja w komputerze będzie wymagała wielu bitów. Ot, choćby kolor oczu u ludzi: odpowiada za to jeden gen ale czy są tu możliwe tylko 2 wartości? Nie.
Zapis powyżej to przedstawia: to 1 chromosom, mający 4 geny (literki x y z v) a każdy gen reprezentowany jest na tylu bitach ile odpowiadających mu literek (co definiuje ile dany gen wartości może przyjmować).
Spoko... :) Może i masz rację chociaż mam ponad 2 książki o AG (tzn. 2 są tylko o nich a reszta je opisuje) i nie zauważyłem, żeby ktoś rozpisywał to tak jak ty to robisz. Fakt, że nie przeczytałem ich w całości (nawet w połowie ^^) i nie mówię, że tak nie wolno, ale... :). Do tego pojęcia, które ja opisywałem były pisane właśnie z książką w ręku :D Nie mniej jednak zostawmy może już te spory - mimo małych rozbieżności chyba się rozumiemy i piszemy o tym samym :P
maariuszn pisze:Chciałem tylko przypomnieć, że temat to Quantitative Trading i może warto porozmawiać o czymś innym niż tylko algorytmy genetyczne.
heh, problem tylko w tym, że nikt nie ma pomysłu o czym gadać :) a AG jak widać przynajmniej są praktyczne i część osób się nimi zainteresowała :). Natomiast o czym można jeszcze gadać? chyba nie o MA lub RSI bo wątek straci swój praktyczny charakter :D
Pewnych rzeczy nie można odkryć;
lecz tego nie stwierdzisz odgadywaniem ani snuciem domysłów;
nie, musisz być cierpliwy i przeprowadzić doświadczenia,
aż odkryjesz, że nie możesz czegoś poznać.
Mark Twain :)

maariuszn
Stały bywalec
Stały bywalec
Posty: 72
Rejestracja: 01 cze 2007, 22:25

Nieprzeczytany post autor: maariuszn »

green7 pisze:Nie bardzo rozumiem jak chcesz to spiąć z AG - gdzie wymagane jest określenie funkcji przystosowania dla każdego osobnika przy każdym przebiegu AG. Czyli: przetestowania rozwiązania przedstawianego przez osobnika na danych historycznych, policzenia zysku, dd itd.
Wystarczy trochę wyobraźni ;) Skoro mi udało się napisać GP w MQL-u to naprawdę chyba wszystko można tam napisać. Postaram się zarysować szablon tego jak ja to widzę:

1. Proponuję umieścić w skrypcie linijkę
#property show_inputs
Dzięki temu po odpaleniu skryptu będzie można wpisywać parametry
2. W niektórych swoich skryptach zdefiniowałem m.in. 2 zmienne:
extern datetime StartDateTime=D'2009.12.07 07:00';
extern datetime EndDateTime=D'2009.12.08 07:00';
3. Na początku głównej funkcji liczę sobie takie oto dwie zmienne:
BarFrom=iBarShift(NULL, 1,StartDateTime, false);
BarTo=iBarShift(NULL, 1,EndDateTime, false);
4. Żeby mieć "EA" w skrypcie wszystko puszczam w pętli:
for(b=BarFrom;b>BarTo;b--){
...
}

5. Teraz wystarczy napisać to co ma liczyć skrypt.

To co na szybko przychodzi mi do głowy to np, tworzysz zmienną Osobnik[A], gdzie A to numer osobnika w populacji a B to numer jego elementu w chromosomie.
Dodatkowo trzeba napisać funkcję która będzie dekodowała sekwencję chromosomu danego osobnika i wprowadzała odpowiednie wartości do np. funkcji tradingowej.
Jeżeli wg funkcji tradingowej dany osobnik ma np. otworzyć pozycję lub zamknąć lub cokolwiek, to możesz te informacje przechowywać w jeszcze innej zmiennej itd.

6. po wykonaniu pętli na zadanym okresie możesz mieć wszystkie dostępne informacje do obliczenia funkcji celu/przystosowania. Oczywiście trzeba napisać niezbędne funkcje.

7. pętla obliczeń na danym okresie może być w innej pętli np. liczby generacji

np.
for(int g=0;g<=LiczbaGeneracji;g++}{

for(b=BarFrom;b>=BarTo;b--){
//tutaj kod na trading kazdego osobnika
}
//tutaj kod na funkcję liczenia funkcji przystosowania dla kazdego osobnika
//funkcja selekcji osobnikow
//funkcja krzyzowania/mutacji/reprodukcji itp.
}

Mam nadzieję, że pomogłem.

StudenTM84 pisze:heh, problem tylko w tym, że nikt nie ma pomysłu o czym gadać a AG jak widać przynajmniej są praktyczne i część osób się nimi zainteresowała . Natomiast o czym można jeszcze gadać? chyba nie o MA lub RSI bo wątek straci swój praktyczny charakter


Wydaje mi się, że tematów jest mnóstwo:
- nikt nie skomentował algorytmu reinforcement learning (polecam zgooglować Trading via direct reinforcement learning)
- nikt się nie zainteresował genetycznym programowaniem
- jest jeszcze teoria DSP (digital signal processing)
- są sieci neuronowe (polecam PNN - probabilistic nn)
- jest algorytm KMC (k-means clustering)
- no i jest zagadnienie o którym wspomniał BAQ

Jeżeli chodzi o mnie to chciałbym stworzyć automatyczny system oparty o Price Action. Może ktoś ma jakiś pomysł?

StudenTM84
Stały bywalec
Stały bywalec
Posty: 53
Rejestracja: 07 maja 2009, 21:08

Nieprzeczytany post autor: StudenTM84 »

maariuszn pisze:Wydaje mi się, że tematów jest mnóstwo:
- nikt nie skomentował algorytmu reinforcement learning (polecam zgooglować Trading via direct reinforcement learning)
- nikt się nie zainteresował genetycznym programowaniem
- jest jeszcze teoria DSP (digital signal processing)
- są sieci neuronowe (polecam PNN - probabilistic nn)
- jest algorytm KMC (k-means clustering)
- no i jest zagadnienie o którym wspomniał BAQ
hmm, w sumie równie dobrze można byłoby założyć oddzielny temat na każdy z tych wątków gdyż o każdym z nich ludzie piszą książki :) a na takim forum szybko zrobi się śmietnik.... wszystko w swoim czasie - może przeróbmy temat AG a potem przejdźmy dalej :)

Jeśli chodzi o mnie to ja mogę dodatkowo zaproponować/polecić następujące tematy:
- ukryte modele markowa
- statystykę bayesowską (klasyfikator i sieci bayesowskie)
- i jeszcze coś (chwilowo mi uciekło ... :/)

Można również podyskutować o odszumianiu sygnałów
Pewnych rzeczy nie można odkryć;
lecz tego nie stwierdzisz odgadywaniem ani snuciem domysłów;
nie, musisz być cierpliwy i przeprowadzić doświadczenia,
aż odkryjesz, że nie możesz czegoś poznać.
Mark Twain :)

maariuszn
Stały bywalec
Stały bywalec
Posty: 72
Rejestracja: 01 cze 2007, 22:25

Nieprzeczytany post autor: maariuszn »

StudenTM84 pisze:hmm, w sumie równie dobrze można byłoby założyć oddzielny temat na każdy z tych wątków gdyż o każdym z nich ludzie piszą książki a na takim forum szybko zrobi się śmietnik.... wszystko w swoim czasie - może przeróbmy temat AG a potem przejdźmy dalej
Moim zdaniem jeżeli chodzi o AG to nie ma tematu. To jest po prostu algorytm do optymalizacji parametrów systemu, który już posiadamy.

Awatar użytkownika
Cinkciarz
Stały bywalec
Stały bywalec
Posty: 49
Rejestracja: 06 lip 2008, 22:03

Nieprzeczytany post autor: Cinkciarz »

Może się komuś przyda.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
"There are only 3 real sports: bull-fighting, car racing and mountain climbing. All the others are mere games." -Hemingway

BAQ
Stały bywalec
Stały bywalec
Posty: 22
Rejestracja: 11 gru 2009, 20:36

Nieprzeczytany post autor: BAQ »

Taka mała uwaga do moderatora, od jakichś 5 stron ten wątek to "zastosowanie Algorytmów Genetycznych oraz Sieci Neuronowych w forexie" i nie ma nic wspólnego z "quantitative trading"

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

Nieprzeczytany post autor: green7 »

StudenTM84 pisze:Spoko... Smile Może i masz rację chociaż mam ponad 2 książki o AG (tzn. 2 są tylko o nich a reszta je opisuje) i nie zauważyłem, żeby ktoś rozpisywał to tak jak ty to robisz. Fakt, że nie przeczytałem ich w całości (nawet w połowie ^^) i nie mówię, że tak nie wolno, ale... Smile. Do tego pojęcia, które ja opisywałem były pisane właśnie z książką w ręku
Masz ponad 2 książki o AG powiadasz ..... fajnie.... Ale od samego ich mienia wiedzy nie nabędziesz. Trzeba by je przeczytać i zrozumieć .... :)
maariuszn pisze:7. pętla obliczeń na danym okresie może być w innej pętli np. liczby generacji
np.
for(int g=0;g<=LiczbaGeneracji;g++}{
No tak - dałeś ostro po bandzie :) Implementacja AG w MQczymśtam zwanym szumnie "językiem" to rzeczywiście wyzwanie. Nie mówię, że nie możliwe do zrobienia. Jak się uprzesz to czemu nie .... można ścinać drzewo scyzorykiem zamiast użyć piły łańcuchowej ... czemu nie .... trzeba tylko trochę więcej czasu i cierpliwości.
Osobiście tego nie widzę. Nie wyobrażam sobie pisania tego typu zaawansowanych rzeczy bez: dobrego debugera, czy takich trywialnych a obcych mql'owi rzeczy jak struktury, czy klasy. Tak - wiem, mql5 będzie miał "pseudo" klasy. Ale moim zdaniem mql (w wersji nieważnej) do implementacji AG się nie nadaje.
BAQ pisze:Taka mała uwaga do moderatora, od jakichś 5 stron ten wątek to "zastosowanie Algorytmów Genetycznych oraz Sieci Neuronowych w forexie" i nie ma nic wspólnego z "quantitative trading"
No tak - zboczyliśmy z tematu. Ale nie powiedziałbym, że nie ma nic wspólnego z "quantitative trading". Przecież AG i SN mogą być użyte w quantitative trading'u. Ot choćby do wyszukiwania wzorców świeczek.

Apropo - coś więcej powiesz "o dużych graczach" ?

ODPOWIEDZ