PARTNER SERWISU
emrqmjbi
1 2 3

algorytm - automatyczne wyznaczanie kanału

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 26 listopada 2010 08:34:00
narazie wiem ze nie ma problemu z ekstremami tzn nie ma potrzeby ich szukac. mialo byc to tylko uproszczenie zmniejszajace ilosc obliczen (ilosc analizowanych punktow). Teraz wiem na pewno ze pokojnie mozna analizowac wszystkie dni. Nie jest natomiast prawda (a taka mialem naiwna koncepcje) ze "dobry kanal" zawsze zawiera punkty najwyzszy i najnizszy w danym przedziale. "Dobry kanal" (byc moze) bedzie zawieral najdluzszy odcinek otoczki wypuklej. Jak napisze kodzik to sie okaze ...
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.

blelump
0
Dołączył: 2009-05-11
Wpisów: 160
Wysłane: 26 listopada 2010 10:24:36
Sprytnie kombinujesz. Czy algorytm jako taki do wyznaczania otoczki wypukłej jest Ci w całości potrzebny? Chyba nie, bo poszukujesz tylko odległości między punktami, tzn. szukasz długości odcinka z nich utworzonego. Zgadza się?

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 26 listopada 2010 10:43:06
w calosci moze nie nie ale czesciowo tak, musze wynaczyc te punkty ktore mnie interesuja i dopiero pomiedzy nimi wyznaczac odleglosc.
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.


Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 2 grudnia 2010 22:23:42
Nie jest dobrze, jest srednio, przynajmniej narazie. Przykladowy efekt wyglada tak:

kliknij, aby powiększyć

Moj aktualny wniosek jest nastepujacy: podstawowa sprawa to funkcja wyznaczajaca "dobroc kanalu" + jakies myki pozwalajace inteligentnie pomijac pewne dane, tak by byl z tego jakis pozytek czyli pojawialo sie realne wybicie z kanalu. narazie wszystko jest w kanale tak ze ... troszke kanal. Watchdog - nie moge sie doczekac jak bedzie wygladala Wasza implementacja.
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.

mathu
0
Dołączył: 2009-09-21
Wpisów: 4 615
Wysłane: 2 grudnia 2010 22:29:43
Moim zdaniem jest świetnie, a jedyne co powinieneś zmienić, to szukanie linii trendu (czyli jeśli wzrost, to bierzesz zieloną linię, jeśli spadek - fioletową) i przesuwanie jej odpowiednio w celu domknięcia kanału.

Zacząłem się zastanawiać w jaki sposób wyznaczyć interwały w których poszukujesz kanału (np. największy kanał na wykresie tak naprawdę powinien zaczynać się w 550), ale dotarło do mnie, że automagicznie powyznaczałeś świetne punkty zwrotne do otwierania pozycji! Jak to dokładnie działa?
The recovery in profitability has been amazing following the reorganization, leaving Barings to conclude that it was not actually terribly difficult to make money in the securities market.
Edytowany: 2 grudnia 2010 22:30

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 2 grudnia 2010 22:36:57
niestety to co wkleilem to jednen z lepszych wynikow (to akurat kopex) na wiekszosci algorytm pogubil sie tzn zachowal sie zupelnie inaczej niz by tego oczekiwal czlowiek. Dziala to tak jak mnie wiecej tutaj wczesniej kombinowalem, iteracyjnie przeszukuje obszar daych (mozna to nazwac aktualnie brute-force czyli stosunkowo dlugo i kosztowne), wyznaczm podobszary, w kazdym z podobszarow convex hull, wyznaczam najdluzszy odcinek z gory i zdolu i tutaj wkracza funkcja ktora okresla "jak dobry jest kanal" - maksymalizuje ten wynik i dalej poruszam sie z prawej na lewo ...
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.

Dapi
PREMIUM
0
Dołączył: 2008-10-07
Wpisów: 993
Wysłane: 2 grudnia 2010 22:40:20
mathu bo to działa wstecz...i dlatego Ci sie wydaje że tak ładnie pozycje mozesz zająć Shame on you
Rynki mogą pozostać irracjonalne dłużej niż ty możesz pozostać wypłacalny.

Rozbudowane wykresy: http://www.atcharts.pl
Centrum analizy technicznej: http://www.attrader.pl

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 2 grudnia 2010 22:43:13
dokladnie. zasadniczo przydatnosc ogranicza sie do tu-i-teraz czyli wystarczylby jeden kanal najdalej z prawej az do dzisiejszej sesji, wyznaczam na wszystkich danych zeby po prostu wiecej zobaczyc, gdzie dziala dobrze i gdzie dziala zle.

Edit - dla uscislenia. W tym co napisalem zdaje mi sie ze nie ma "gieldowego jasnowidztwa". Analiza idzie z prawej do lewej bo interesuje mnie po prostu prawa strona. Prawdopodobnie gdyby szla z lewej do prawej to wybory granic bylyby inne. Think Wlasciwie musze to sprawdzic ...
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.
Edytowany: 2 grudnia 2010 22:47

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 3 grudnia 2010 21:40:10
Poniezej warianty z lewej na prawo i z prawej na lewo. Algorytm jeszcze bez poprawek a wiec wciaz kiepskawy.

kliknij, aby powiększyć

kliknij, aby powiększyć

w dobrym algorytmie kierunek nie powinien miec znaczenia. Byc moze powinien wyznaczac kanaly od najlepszych do najgorszych, niezalznie od polozenia w danych a pozostale luki zapelnic ekstrapolacja z tych co sa juz wyznaczone. Nie mam narazie pomyslu jak to napisac.
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.
Edytowany: 3 grudnia 2010 21:43

del-20111222
0
Dołączył: 2008-09-18
Wpisów: 69
Wysłane: 4 grudnia 2010 13:10:14
Wydaje mi sie, że na pewne rzeczy niepotrzebnie tracisz czas.
Po co ci widok całego przebiegu i rysowanie formacji na widocznym interwale. Sadze, ze najważniejsza formacja, jeżeli jest, powinna być ta ostatnia a jeszcze ważniejsze, jeżeli jest to czy możliwe jest lub już nastąpiło wyłamanie z tej figury.
To co masz, to przypomina trochę zasadę boksów Darvasa, ale też tylko trochę przypomina. Kreski pionowe miedzy figurami też zamazują, jak możesz, to jest taki "tip", ze niepotrzebne linie, jeżeli już muszą być, maluje sie w kolorze tła i wtedy jakby ich nie było :)
Mam taki skrypt do Amibrokera, co rysuje kanały wg zadanej głębokości szukania tzn wyznaczania 2 par piwotów o zadanej z parametru zmianie % szerokości górnych i dolnych. Kanały wyrysowuje nie na cenie, ale na krzywej RSI (!).
Z rożnych możliwych do wystąpienia figur, wybicie z klina jest tutaj najbardziej potwierdzającą się wróżbą i do tego to używam, inne figury raczej pomijam.


kliknij, aby powiększyć


kliknij, aby powiększyć


kliknij, aby powiększyć


kliknij, aby powiększyć


kliknij, aby powiększyć


-siwy-
0
Dołączył: 2010-10-16
Wpisów: 7
Wysłane: 9 grudnia 2010 22:33:43
Zielarz napisał(a):
Czy spotkał się ktoś może z algorytmem potrafiącym automatycznie, w miare sensownie, wyznaczyc (czy raczej ... zaproponować) kanał cenowy ? Przyznam sie ze atakowałem temat samodzielnie ale zadanie nie jest chyba tak trywialne jak sie wydawało.
Dla uściślenia codzi o cos takiego jak na tym obrazku (zapożyczone z innego wątku - tylko jako przykład)
blog.parkiet.com/weekendowa/fi...



to o co pytasz to jedno z narzędzi w metastocku. Są tam jeszcze 2-3 inne.

Pokazują trend na podstawie 1, 2 i 3 krech

blelump
0
Dołączył: 2009-05-11
Wpisów: 160
Wysłane: 23 grudnia 2010 21:09:47
Sam się za to ostatnio wziąłem i do Amibrokera wykopałem to: www.amibroker.com/library/deta... . Prosto i skutecznie.

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 26 grudnia 2010 10:35:10
ten kodzik wola funkcje "trough" a ta:
"... uses the Zig Zag function (see Zig Zag) to determine the troughs. Caveat: this function is based on Zig-Zag indicator and may look into the future. "
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.

blelump
0
Dołączył: 2009-05-11
Wpisów: 160
Wysłane: 26 grudnia 2010 11:09:43
Obczaj kod z któregoś tam komentarza, jeśli Ci przeszkadza "trough" :-) .

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 26 grudnia 2010 11:26:54
no kodzik tego Pottasch'a jest niezly i bez oszustw ale wymaga interakcji. Jest to jednak niezly punkt wyjscia do zaimplemenowania tego co chce miec w ami. Trzeba by tez dorobic rekostrukcje szeregu potegowego bo kanal na skali liniowej to ...
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.
Edytowany: 26 grudnia 2010 11:34

blelump
0
Dołączył: 2009-05-11
Wpisów: 160
Wysłane: 26 grudnia 2010 14:22:36
Do wyznaczenia linii regresji i tak jedziemy na rozkładzie normalnym, zatem można powiedzieć, że już na tym etapie jest lipa. Co do skali liniowej vs. log, czasem odbije się na tej pierwszej, a czasem na tej drugiej, najlepiej to było mieć zaimplementowane obydwie, ale to za dużo roboty.
Edytowany: 26 grudnia 2010 14:22

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 26 grudnia 2010 14:38:38
nie calkiem lipa bo mozna zrobic log na cenie, na tym odpalic algorytm a na wynikowych kanalach zrobic exp (tak w uproszczeniu)
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.

blelump
0
Dołączył: 2009-05-11
Wpisów: 160
Wysłane: 26 grudnia 2010 15:11:24
Hmm, to nie zadziała, a bynajmniej u mnie nie działa :-) . Patrz, jest sobie jakiś blackbox, gdzie wrzucasz dane i otrzymujesz jakieś wyniki. Istotnie przed wrzuceniem danych do blackboxa i działając na nie funkcjami log, a potem exp otrzymamy to samo. Jeśli jednak już wrzucić dane do blackboxa, to z kolei wypluje już całkiem inne wyniki i żadne odwracanie exp nic nie da, bo ten log z ceny przepadł podczas ich przetwarzania. Not talking
Edytowany: 26 grudnia 2010 15:12

Zielarz
0
Dołączył: 2009-05-16
Wpisów: 457
Wysłane: 26 grudnia 2010 21:55:03
Ble a sprawdziles to ogole w ami czy masz interpreter AFL'a w glowie ?
wlasnie od niechcenia to sprawdzilem. Zrobilem to co sam napisalem czyli wykonalem log na danych wejsciowych i exp na wyjsciowych.

kod orginalny (nie moj zaznaczam):
Kod:
per = 15; per = Param( "period", 15, 1, 500, 1);

mm = C;

x = Cum(1);
lastx = LastValue(x);
selv = SelectedValue(x);

aaa = LinRegIntercept(mm, per);
bbb = LinRegSlope(mm, per);

daa = SelectedValue(ValueWhen(x, aaa, 1));
dbb = SelectedValue(ValueWhen(x, bbb, 1));

xx = IIf(x > selv - per AND x <= selv, x - (selv - per),Null);

yy = daa + dbb * xx;

dhh = abs(H - yy);
dll = abs(L - yy);
dtt = Max(dhh,dll);

wd = SelectedValue(HHV(dtt,per));

SetChartOptions(0, chartShowDates);
GraphXSpace = 5;

Plot(C,"",colorWhite,64);
Plot(yy, "LinReg", colorBlue );
Plot(yy + wd, "Upper Boundary", colorRed, 4 );
Plot(yy - wd, "Lower Boundary", colorBrightGreen, 4 );


kod zmodyfikowany dla skali log:
Kod:
per = 15; per = Param( "period", 15, 1, 500, 1);

mm = log(C);

x = Cum(1);
lastx = LastValue(x);
selv = SelectedValue(x);

aaa = LinRegIntercept(mm, per);
bbb = LinRegSlope(mm, per);

daa = SelectedValue(ValueWhen(x, aaa, 1));
dbb = SelectedValue(ValueWhen(x, bbb, 1));

xx = IIf(x > selv - per AND x <= selv, x - (selv - per),Null);

yy = daa + dbb * xx;

dhh = abs(log(H) - yy);
dll = abs(log(L) - yy);
dtt = Max(dhh,dll);

wd = SelectedValue(HHV(dtt,per));

SetChartOptions(0, chartShowDates);
GraphXSpace = 5;

Plot(C,"",colorBlack,64);
Plot(exp(yy), "LinReg", colorBlue );
Plot(exp(yy + wd), "Upper Boundary", colorRed, 4 );
Plot(exp(yy - wd), "Lower Boundary", colorBrightGreen, 4 );


oczywiscie ta operacja nie spowoduje ze pojawia sie rozklady normalne ale ze kanal bedzie wyznaczany poprawnie (czy tez na tej samej zasadzie) na skali log. A z tym blackboxem to wlasnie o to chodzi zeby wynik byl inny. Moze zanim zaczniesz pisac ze nie zadziala napiszesz jakis kodzik ?
Oby nigdy więcej drzewa nie przysłoniły mi lasu ...
It’s just money. It’s made up.
Edytowany: 26 grudnia 2010 21:55

blelump
0
Dołączył: 2009-05-11
Wpisów: 160
Wysłane: 26 grudnia 2010 22:17:43
No właśnie napisałem identyczny :-) , a w zasadzie zmodyfikowałem gotowca. Wyszedł jakiś chaszcz, więc to zarzuciłem. Zresztą to nie jest teraz priorytet.

btw. mając kanał trendu jesteśmy o tyle w lepszej sytuacji w stosunku do zwykłych średnich, że mamy właśnie ten kanał i jego górne i dolne ograniczenie. Dodatkowo znając współczynnik kierunkowy prostej regresji można sobie wyznaczyć nachylenie wzgl. OX. Zatem może i ogólnopanujący trend jest znany, ale wejście i wyjście z papiera wcale nie staje się dużo łatwiejsze.
Jak będziesz robił backtesty i zastosujesz tę gotową metodę z liniami regresji, to do określenia sygnałów buy/sell trzeba sporo ten kod przeorać.
Edytowany: 26 grudnia 2010 22:22

Użytkownicy przeglądający ten wątek Gość


1 2 3

Na silniku Yet Another Forum.net wer. 1.9.1.8 (NET v2.0) - 2008-03-29
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.
Czas generowania strony: 0,478 sek.

wbbhylxe
ujxdnxrf
cjmpbifz
Portfel StockWatch
Data startu Różnica Wartość
Portfel 4 fazy rynku
01-01-2017 +75 454,67 zł +377,27% 95 454,67 zł
Portfel Dywidendowy
03-04-2020 +60 637,62 zł 254,44% 125 556,00 zł
Portfel ETF
01-12-2023 +4 212,35 zł 20,98% 24 333,09 zł
fezurndt
durvzzjg
cookie-monstah

Serwis wykorzystuje ciasteczka w celu ułatwienia korzystania i realizacji niektórych funkcjonalności takich jak automatyczne logowanie powracającego użytkownika czy odbieranie statystycznych o oglądalności. Użytkownik może wyłączyć w swojej przeglądarce internetowej opcję przyjmowania ciasteczek, lub dostosować ich ustawienia.

Dostosuj   Ukryj komunikat