
do czego optymalizowac system - pytanie o funkcje fitness
No tak, ale ja trochę zgłupiałem.
O ile jestem w stanie policzyć rozkład statystyczny z wyników jednego backtest bo mam do tego cały szereg, to jak mogę to zrobić z optymalizacją gdzie mam tylko podsumowanie każdego z pojedynczych testów?
Chyba, że optymalizację będę robił we własnym zakresie jako pętelkę pojedynczych testów (sterując z zewnątrz testerem) co pozwoli mi na zapisanie szczegółów każdego z nich i późniejszą analizę.
A z kolei napisanie EA który by automatycznie analizował historię swojej działalności i... no dobra, analizę da się jeszcze zrobić. Ale co dalej? Zmiana parametrów czy kodowanie genetycznie? Bo mi tak jakoś wychodzi, że to drugie.
Tyle że oprócz kupy roboty to znów prowadzi do curve fitting...
Chyba że błądzę, prawdę mówiąc nawet mam takie wrażenie. Może mnie ktoś oświeci?
O ile jestem w stanie policzyć rozkład statystyczny z wyników jednego backtest bo mam do tego cały szereg, to jak mogę to zrobić z optymalizacją gdzie mam tylko podsumowanie każdego z pojedynczych testów?
Chyba, że optymalizację będę robił we własnym zakresie jako pętelkę pojedynczych testów (sterując z zewnątrz testerem) co pozwoli mi na zapisanie szczegółów każdego z nich i późniejszą analizę.
A z kolei napisanie EA który by automatycznie analizował historię swojej działalności i... no dobra, analizę da się jeszcze zrobić. Ale co dalej? Zmiana parametrów czy kodowanie genetycznie? Bo mi tak jakoś wychodzi, że to drugie.
Tyle że oprócz kupy roboty to znów prowadzi do curve fitting...
Chyba że błądzę, prawdę mówiąc nawet mam takie wrażenie. Może mnie ktoś oświeci?
Jakże często ludzie mają już gotową opinię zanim zdążą pojąć istotę rzeczy.
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)
Można stosować jeszcze wzór Profit / DD i do tego można dodać jeszcze wagę liczby transakcji, czyli :
Profit / DD * ((l.tr - pierwiastek(l.tr)/l.tr)
Da nam to pierwszeństwo optymalizacji z większą liczbą tr. przy tym samym Prof/DD.
Jeśli chodzi o wybór to warto skupić się na wzięciu takiego seta, który wokół siebie ma same dobre rezultaty. Bo jeżeli przykładowo weźmiemy set najlepszy to może się okazać, że zmiana parametru w lewo lub w prawo spowoduje stratę, a może się okazać, że gdzieś indziej leży jakaś płaszczyzna bez takiego szczytu i tam należy szukać.
Profit / DD * ((l.tr - pierwiastek(l.tr)/l.tr)
Da nam to pierwszeństwo optymalizacji z większą liczbą tr. przy tym samym Prof/DD.
Jeśli chodzi o wybór to warto skupić się na wzięciu takiego seta, który wokół siebie ma same dobre rezultaty. Bo jeżeli przykładowo weźmiemy set najlepszy to może się okazać, że zmiana parametru w lewo lub w prawo spowoduje stratę, a może się okazać, że gdzieś indziej leży jakaś płaszczyzna bez takiego szczytu i tam należy szukać.
Na innym wątku pokazałem taką pułapkę z zyskiem i DD jako procent i wartość absolutna:
Początek: $1000
Zysk na pozycję stały: $15 - wzrost liniowy
MM - brak, ryzykuje całe konto - tak w ramach rozrywki ;-)
I teraz miał no wyniki grupujące się wokół dwóch przypadków (dane podaję z głowy bo dokładnych teraz nie pamiętam):
- ilość transakcji ok 1000 w obu przypadkach
- przypadek 1: zysk $3200, DD 37%, DD absolutny $1110
- przypadek 2: zysk $2300, DD 67%, DD absolutny $678
I który jest lepszy?
Pułapką tutaj jest przypadek 1 gdzie relatywny DD jest lepszy, zysk końcowy jest lepszy, ale DD absolutny jest większy niż depozyt.
To, że przełożyło się to na 37% wynika tylko z tego, że robot zdążył zarobić jakieś $3000 zanim zaliczył dużą stratę.
Ale jakby zaliczył ją na samym początku to MC jak nic.
Ten zaś gorszy wynik był lepszy bo miał większy margines bezpieczeństwa.
I jak teraz to oceniać automatycznie na odstawie samych tylko podsumowań?
Początek: $1000
Zysk na pozycję stały: $15 - wzrost liniowy
MM - brak, ryzykuje całe konto - tak w ramach rozrywki ;-)
I teraz miał no wyniki grupujące się wokół dwóch przypadków (dane podaję z głowy bo dokładnych teraz nie pamiętam):
- ilość transakcji ok 1000 w obu przypadkach
- przypadek 1: zysk $3200, DD 37%, DD absolutny $1110
- przypadek 2: zysk $2300, DD 67%, DD absolutny $678
I który jest lepszy?
Pułapką tutaj jest przypadek 1 gdzie relatywny DD jest lepszy, zysk końcowy jest lepszy, ale DD absolutny jest większy niż depozyt.
To, że przełożyło się to na 37% wynika tylko z tego, że robot zdążył zarobić jakieś $3000 zanim zaliczył dużą stratę.
Ale jakby zaliczył ją na samym początku to MC jak nic.
Ten zaś gorszy wynik był lepszy bo miał większy margines bezpieczeństwa.
I jak teraz to oceniać automatycznie na odstawie samych tylko podsumowań?
Jakże często ludzie mają już gotową opinię zanim zdążą pojąć istotę rzeczy.
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)
No ja tak wlasnie robie - i potem patrze jak wielkosci takie jak profit/DD czy profit/transakcje zaleza od wartosci parametrow modelu (i okazuje sie, ze zaleza zupelnie inaczej259 pisze:Chyba, że optymalizację będę robił we własnym zakresie jako pętelkę pojedynczych testów (sterując z zewnątrz testerem) co pozwoli mi na zapisanie szczegółów każdego z nich i późniejszą analizę.

We wzorze brakuje nawiasu, ale rozumiem, ze chodzilo CI o Profit / DD * ( (l.tr - pierwiastek(l.tr) ) /l.tr) ?rayzeel pisze:Można stosować jeszcze wzór Profit / DD i do tego można dodać jeszcze wagę liczby transakcji, czyli : Profit / DD * ((l.tr - pierwiastek(l.tr)/l.tr)
A czemu proponujesz cos takiego?
Popatrzylem na to i przynajmniej na pierwszy rzut oka niewiele to wnosi w porownaniu do prifit/DD.
Natomiast natchnales mnie do sprowawania (profit/DD)*(profit/transakcje) (co s sumie daje (profit^2)/(DD*l.tr), hehe) . Bo o ile profit/DD maxymalizuje mi sie na jednym koncu, a profit/transakcje na drugim, to iloczyn tych dwoch maksymalizuje sie w srodku.
No to raczej dyskwalifikuje ten przykład do poważnego rozpatrywania w kontekście fitness.259 pisze:MM - brak, ryzykuje całe konto - tak w ramach rozrywki
O ile pamiętam ten przykład to nie chodziło o DD absolutny tylko MAE ale mogę się mylić. Musisz odpowiednim parametrom nadać odpowiednie wagi, tak aby udało się to ubrać we wzór. Oczywiście później nad samym wzorem trzeba jeszcze długo pracować, bo to co będziesz dostawał na wyjściu nie koniecznie będzie Ci się "na oko" podobać.259 pisze:DD absolutny $1110
Właśnie na tym polega cała sztuka. To jest klucz, najważniejsza rzecz w tradingu moim zdaniem.259 pisze:I jak teraz to oceniać automatycznie na odstawie samych tylko podsumowań?
Nie wiem czy sobie przypominasz takiego jednego co twierdzi, że robi 300 zł dziennie przy pomocy takiego jednego "polskiego" robota?matka pisze:No to raczej dyskwalifikuje ten przykład do poważnego rozpatrywania w kontekście fitness.259 pisze:MM - brak, ryzykuje całe konto - tak w ramach rozrywki
O tym robocie właśnie mówię - powiedz to jemu, mnie on nie nie chce wierzyć mimo że go kupiłem, przetestowałem i zwrociłem. Głownie z tego powodu ;-)
Waga i limity. W tym przypadku powinienem odrzucić wszystkie wyniki w których DD absolutny przekraczał z 70% początkowego depozytu. Co i tak jest masakrą. MT4 ma możliwość ustawienia progu DD relatywnego ale nie absolutnego. To trzeba sobie zrobić samemu.matka pisze:O ile pamiętam ten przykład to nie chodziło o DD absolutny tylko MAE ale mogę się mylić. Musisz odpowiednim parametrom nadać odpowiednie wagi, tak aby udało się to ubrać we wzór. Oczywiście później nad samym wzorem trzeba jeszcze długo pracować, bo to co będziesz dostawał na wyjściu nie koniecznie będzie Ci się "na oko" podobać.259 pisze:DD absolutny $1110
To zależy od algorytmu robota i tego co optymalizujesz.rayzeel pisze: Jeśli chodzi o wybór to warto skupić się na wzięciu takiego seta, który wokół siebie ma same dobre rezultaty. Bo jeżeli przykładowo weźmiemy set najlepszy to może się okazać, że zmiana parametru w lewo lub w prawo spowoduje stratę, a może się okazać, że gdzieś indziej leży jakaś płaszczyzna bez takiego szczytu i tam należy szukać.
Jeżeli tym parametrem który generuje wybitny wynik odstający od reszty jest SL czy TP to zgadza się, jest to bardzo podejrzane.
Ale jeżeli jest to coś co wpływa na generowanie sygnałów to już nie jest to takie oczywiste. W takim wypadku zaczynam testować te ustawienia na innych okresach jak również na fragmentach okresu w którym były optymalizowane parametry.
Jakże często ludzie mają już gotową opinię zanim zdążą pojąć istotę rzeczy.
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)
Ponieważ ujmuje to dodatkowo l.tr. Wynik nie będzie się dużo różnił, ale zawsze da pierwszeństwo optymalizacjom z większą liczbą transakcji.batman pisze:A czemu proponujesz cos takiego?
Fakt, jeśli będziemy rozważać temat ogólnie to ciężko jest dobrać uniwersalną metodę. Każdy automat ma swoją specyfikę. Np. ostatni mój projekt pokazuje 2x lepsze wyniki jeśli gra stałym setem w okresie testów niż jak go optymalizuję WF i dobieram set na zasadzie obszaru który opisałem. Obszar wydaje się logiczny i bezpieczny, a dodatkowo pokaże czy idea się sprawdza, bo jeśli co okres obszar dobrych parametrów przesuwa się drastycznie w inne miejsce to już nie jesteśmy w stanie tym grać, bo przecież nie będziemy sobie strzelać w losowy set licząc że okaże się dobry w następnym okresie.To zależy od algorytmu robota i tego co optymalizujesz.
- f16_rocket
- Stały bywalec
- Posty: 56
- Rejestracja: 09 wrz 2011, 01:54
proste jest takie cos np:
1. liczysz srednia* stope zwrotu z calego okresu, czyli np miesieczna z n-miesiecy.
2. jedziesz po tych n-okresach i patrzysz czy konkretna stopa odchylila sie od sredniej o wiecej niz 1%, jesli tak zliczasz te przypadki (jest ich np n1) i masz ryzyko na poziomie 1%
3.to samo robisz dla 2%, 3%... i masz ryzyka na odpowiednich poziomach
*trzeba uwzglednic czy interesuje Cie skladanie proste czy zlozone, czy moze kapitalizacja ciagla
taki prosciutki ALG
Dodano po 1 minutach:
ryzyko wyrazone np przez n1/n
Dodano po 57 minutach:
mozna tez brac kurtoze rozkladu ale wiecej zabaw, poza tym mowi ona niewiele o tym, ze jakis tam jeden n mial znaczne odchylenie, a to jest tu kluczowe
sortino ratio wrecz zupelnie nie pasuje, bo mierzy niedomiar do okreslonej stopy nie odchylenia od niej, zatem jest to cos calkiem odwrotnego niz szukasz
proste jest tez takie cos:
suma wyrazen typu {exp[100P(x-mi)^2]-1} gdzie stopy sa wyrazone ulamkowo (0.01, 0.05 itd) a P to zwiekszenie kary, mozna eksperymentowac. Taka miara nagradza stabilnosc w sensie malego odchylenia od sredniej stopy mi, mysle ze P np mozna sprobowac =1, =2, 3, 10
nie wiem czy dziala - nie sprawdzalem
1. liczysz srednia* stope zwrotu z calego okresu, czyli np miesieczna z n-miesiecy.
2. jedziesz po tych n-okresach i patrzysz czy konkretna stopa odchylila sie od sredniej o wiecej niz 1%, jesli tak zliczasz te przypadki (jest ich np n1) i masz ryzyko na poziomie 1%
3.to samo robisz dla 2%, 3%... i masz ryzyka na odpowiednich poziomach
*trzeba uwzglednic czy interesuje Cie skladanie proste czy zlozone, czy moze kapitalizacja ciagla
taki prosciutki ALG
Dodano po 1 minutach:
ryzyko wyrazone np przez n1/n
Dodano po 57 minutach:
mozna tez brac kurtoze rozkladu ale wiecej zabaw, poza tym mowi ona niewiele o tym, ze jakis tam jeden n mial znaczne odchylenie, a to jest tu kluczowe
sortino ratio wrecz zupelnie nie pasuje, bo mierzy niedomiar do okreslonej stopy nie odchylenia od niej, zatem jest to cos calkiem odwrotnego niz szukasz
proste jest tez takie cos:
suma wyrazen typu {exp[100P(x-mi)^2]-1} gdzie stopy sa wyrazone ulamkowo (0.01, 0.05 itd) a P to zwiekszenie kary, mozna eksperymentowac. Taka miara nagradza stabilnosc w sensie malego odchylenia od sredniej stopy mi, mysle ze P np mozna sprobowac =1, =2, 3, 10
nie wiem czy dziala - nie sprawdzalem