Jump to content
Co nového? Mé kurzy
Komunita:
Diskuze Sledované příspěvky Žebříčky

Doporučené příspěvky

Odesláno

Davidoff, obe metódy pracujú inak, ale časť úloh ktoré môžu riešiť sú totožné, hoci záber NN je širší.
Ako c#-pák možno poznáte programátorský web CodeProject.
Linky nižšie odkazujú na aplikáciu GA a NN na tie isté úlohy - aproximácia, time series prediction, Traveling Salesman Problem.
A v zásade je otázkou času, kedy sa NN viac rozšíria aj do tradingu.
www.codeproject.com/KB/recipes/aforge_neuro.aspx
www.codeproject.com/KB/recipes/aforge_genetic.aspx

Ak som linkami niečo porušil sa ospravedlňujem, ale NIE SÚ tradingové ani komerčné linky, ale linky k teórii a praxi GA a NN.

Ten blackbox som myslel vo význame, že trader bude sotva skúmať a analyzovať aplikovaný algoritmus GA ale proste ho vezme - vloží do neho vstupy a "s dôverou" vyberie výstupy.

  • Odpovědí 79
  • Vytvořeno
  • Poslední

Nejaktivnější diskutující

Nejaktivnější diskutující

Publikované obrázky

Odesláno

Fubu,

GA které využívám já, jsou postavena tak, aby hledala zásadně a jen mezi globálními optimy. Pokud okolní blízké hodnoty daného řešení stále nedrží vysoký fitness, GA vyhodnotí parametry jako možná lokální optima, nikoliv globální - a celková fitness takové kombinace výrazně klesne. Opravdu si neumím představit, jak něčeho takového docílit v brute force (snad jenom s použitím 3D optimalizačních grafů a to skutečně jen do omezené míry, nemluvě o časové náročnosti). Brute force metoda je silně náchylná k lokálním optimům.
Nic méně, nechci tady opravdu ztrácet čas teoretizováním a akademickými debatami. Praxe je to, co teprve každému ukáže, jak dané řešení může vyhovovat jeho cílům. Někomu vyhovují GA, někomu brute force. Já jsem v GA našel dost praktických výhod, kvůli kterým již o brute force nejevím sebemenší zájem (časové hledisko je jedno z nich). Budu rád, pokud se v této diskuzi objeví i případní ryze praktický uživatelé a budou ochotni vyměnit si zkušenosti na praktické úrovni.

Odesláno

BobSk,

zajímavé čtení, díky.

Ale OPĚT - je rozdíl mezi teorií a praxí. Před rokem a půl jsem strávil poměrně dost času hledáním traderů, kteří úspěšně využívají NN a GA. Po poměrně usilovném pátrání se mně nepodařilo najít nikoho, kdo by úspěšně využíval NN (četl jsem i story velkých firem, která vložili nemalé prostředky do researche NN v tradingu a po 2-3 letech vše ukončili, neboť nenašli cestu, jak NN v tradingu robustně využít), zato jsem našel komunitu lidí, kteří GA využívají úspěšně již několik let - mimo jiné se systémy vyvinutými s pomocí GA řídí nemalé fondy (a nutno říci, že jsem měl štěstí, neboť jsem se od těchto lidí mnoho naučil).

Mezi teorií a praxí vždy existuje značný rozdíl. Já se snažím příliš neteorizovat (i když občas ano), ale raději hledat praktická využití. Docela zajímavé je přečíst si například knihu My life as Quant, kde je patrné, jak rozdílná může být teorie vs praxe i v tak velkých firmách, jako Goldman Sach. Mimo jiné autor zajímavě popisuje vznik a vývoj modelu Black-Scholes, kdy uvádí, jak prvotní modely velké instituce úspěšně využívali, přitom později zjistili, že je v modelu zásadní chyba (model nepočítal s option smile), takže teoreticky závěry z modelu, které tradeři celou dobu používali, výrazně zvyšovaly risk. Přitom v praxi se děl pravý opak - tradeři s modelem, byť nedokonalým, risk úspěšně managovali.

Já samozřejmě respektuji teoretické studie, velmi rád je čtu a studuji. Ale ve finále mě zajímá jediné - praktický dopad na můj trading. Proto i s prominutím nerad trávím čas zbytečným teoretizováním. Za svůj život jsem potkal mnoho velmi inteligentních lidí, kteří dokázali úspěšně teoretizovat úplně o všem, ale nikdy nevydělali ani dolar. Pak jsem ale také potkal lidi, které více zajímalo, jak prakticky využít věci ve svůj prospěch a byli úspěšní - i když moc inteligence nepobrali. Nezřídka se stávalo, že úspěšně využívali ve svůj prospěch něco, o čem teoretici říkali, že to nelze - že to není možné. Já určitě patřím do druhé kategorie lidí. Tím nechci jakkoliv znevažovat teoretiky a teoretických prací si velmi vážím, i z nich nezřídka čerpám. Ale teoretické diskuze není nic, čim bych chtěl ztrácet čas. Daleko raději bych byl, pokud by tu bylo více ryze praktických uživatelů GA.

Odesláno

tomnes,
mam dojem, ze hlavny problem bude v rozdielom chapani pojmov globalne a lokalne optimum.

Mozem hladat ako globalne maximum tak aj minimum (proste extrem). V tom sa zhodneme. Pre priklad zoberme, ze hladame globalne maximum. Globalne maximum znamena, ze som nasiel take nastavenia parametrov modelu, ze ziadne ine nastavanie neda vysledok s vyssou vystupnou hodnotou. Mozem dostat ine nastavenie, ktore dava rovnaku hodnotou v pripade ak mame viac globalnych maxim. To ako sa dany model sprava pre okolite vstupy nie je vobec podstane v tom, ci ide o globalne alebo lokale maximum.

Je velmi tazke urcit ci sa jedna o globalne alebo lokalne optimum ak sa k nemu nevieme dostat priamo analyticky alebo pomocou brute force (vyskusaj vsetky moznosti). Takze veta, ze hladate len medzi globalnymi optimami znie rozporuplno (v mojom vysvetleni globalneho extremu a to nie je len moje). Pri pouziti GA si nemozete byt vobec isty ci najdete globalne alebo lokalne maximum. Existuju metody pre GA, ktore nam aspon z casti potvrdia ktory extrem sme nasli.

No a teraz co sa da a neda s brute-force. Jasne, brute-force sa neda pouzit ak mam vela parametrov, ktore maju naviac velky rozsah. No v praxy sa casto stava, ze tento prehladavany priestor viem zo znacnej casti obmedzit. TAk ako mi GA najde par zaujimavych nastaveni pre ktore skontrolujem okolie a mozem vyhodnotit ako sa system sprava pre podobne nastavenia. To iste mozem spravit pre vysledky z brute-force, tak isto dostanem mnozinu zaujimavych nastaveni. Naviac ich 'okolie' nemusim doratavat lebo ich mam uz vyratane.

Moj nazor je taky, ze cim vyssi TF, tym horsia moznost predikcie trhov. Spravy nedokaze predikovat ziadny model. Cital som vacsie mnozstvo clankov o NN, GA, SVM a vsetkom moznom, co sa vobec na predikciu da pouzit. Vysledok je, ze vacsina prezentuje preoptimalizovane modely a druha, ze poplatky zozeru vsetok zisk (ak uvazujeme o retail podmienkach).

Je neskutocne, co vsetko stihate obchodovat. kolko roznych instrumentov, strategii a vobec celkovych pristupov.

Odesláno

Fubu,

to je asi ten hlavní rozdíl: Zatím co vy jste jenom o přístupech a GA četl, já s GA nástroji už rok a půl trávím reálný, praktický čas (a není ho málo). Za tu dobu jsem se v praxi naučil hodně (i díky traderům, které jsem v oblasti GA potkal), abych sám začal vidět rozdíly proti tomu, když člověk jenom čte. Samozřejmě rozdíly na obě strany. Tj. i to, že GA rozhodně nejsou žádný svatý grál a stále vyžadují hodně času a praktického experimentování, aby člověk byl schopen nastavit pravidla a procedury celkového workflow snižující pravděpodobnost přeoptimalizace. Nic méně, dělat si závěry na základě něčeho, co jsem jenom četl, ale nikdy si nevyzkoušel a nepokusil se jít po praktické stránky více do hloubky, to skutečně není můj styl.

To, že obchoduji řadu přístupů a zabývám se řadou věcí, není nic neskutečného. Tradingu se věnuji nějakých cca 8 let a to fulltime. Je to má hlavní náplň práce i můj koníček. Není žádné umění věnovat se různým směrům a přístupům, pokud na to máte dostatek času a baví vás to. Praktická exekuce tradingových signálů vyžaduje minimum času a pozornosti, zbytek času rád a se zvědavostí věnuji novým věcem. Navíc trading je dynamické odvětví a považuji za správné snažit se být neustále v obraze a pracovat na nových metodách, které ideálně kombinovat do širšího portfolia. Diversifikace přístupů je také diversifikace. Z tohoto pohledu se vždy těším i na budoucnost - co za další nové směry a idei se objeví a nakolik budou nebo nebudou prakticky uchopitelné v praxi.

Odesláno

Mě to přijde zajímavé. Tomáše jsem podle jeho dávných slov vnímal jako obchodníka, který má rád jednoduchost - 1 notebook, 1 graf a princip obchodování "kouknu a vidím"... Poslední dobou jakoby otočil, ale proč ne. Lenost (optimalizace) je prý matkou pokroku.
OK, jaké jsou praktické výsledky strategií, které byly nalezeny pomocí GA? Zajímalo by mě jak se řeší managování takové strategie v reálném obchodování.
1. její uvedení v reálný život (umí třeba SW, který najde vhodnou strategii také obchodovat - napojit se na "mého" brokera? Nebo je třeba externích programátorských dovedností k uvedení strategie do reálného života?)
2. Jak poznám, že strategie přestala fungovat?
3. Kdy nastane čas na její reoptimalizaci?
4. Jaké podmínky jsou pro strategii nejlepší - jak poznám kdy strategii nasadit a kdy vysadit?

Hledání strategií je méně jisté, než tahání černých a bílých míčků z osudí. Pokud budu mít 7 bílých a 3 černé, tak v mozku člověka nastane průšvih, když vytáhnu 20 míčků stejné barvy v řadě za sebou - přičemž ve velkém vzorku dat to může znamenat jenom malé odchýlení od průměru...
Pokud se počítači podaří vygenerovat 100 nebo 1000 sérií náhodných dat, které "se mi hodí", tak to stále nemusí nic znamenat. GA je fajn, ale jako všechny ostatní přístupy se musí brát jen jako malá berla za poměrně velký náklady.

Myslím, že co se týká strategií a principů v obchodování, bylo toho nalezeno hodně a není třeba hledat svaté grály. Sám obchoduji již existující patterny. Nedávno jsem si myslel, že jsem něco vymyslel, ale pak mi bylo řečeno, že takhle to už dělá spousta jiných obchodníků... Dle mě je důležitější výzva - trader sám - co chci, na co (ne)mám(trpělivost, disciplína, sebekontrola, problémy, brzdy, motivace, zodpovědnost...), kolik mám, kolik můžu ztratit za určitý čas, kolik jsem ochotný ztratit, kolik jsem ochotný vydělat, zda chci vůbec vydělat, jak se monitorovat a zlepšovat,.......
Pak jsou berličky, jak skloubit tradera, strategii, kapitál, risk, RRR, drawdowns, position sizing, frekvence obchodů, abych dosáhnul svého cíle.
O tom všem se píšou články, knihy a bůh ví co ještě, ale málokdo si napíše ten svůj článek o sobě a svém přístupu. Trading, přestože obchoduji v principu asi to, co obchodují tisíce jiných, je neuvěřitelně individuální záležitost.
Ať se daří s GA i bez nich, přeje Lukáš.

Odesláno

Zdá se mi, že se v této diskusi míchá a neodlišuje problematika GA a problematika obchodování AOS obecně, a díky tomu dochází k nedorozuměním. Například ze čtyř otázek, které klade user lll, se přinejmenším tři týkají obecníé problematiky automatizovaného obchodování a s GA nemají nic společného. Podobně jako když na první stránce Hugos řešil možnost programátorských chyb.

Tomáš to prezentuje opravdu realisticky a někteří v tom hledají pořád něco navíc. Genetické algoritmy jsou optimalizační metoda, která celkem efektivně vyzkouší veliké množství možností, které jí předhodíme, a pravděpodobně mezi nimi najde některé z těch lepších. Je to nástroj, něco jako vrtačka, počítač, nebo MS Excel. Člověk musí vědět, jak ho použít. Je potřeba vědět něco o trzích a mít nápad, jakou situaci chci zobchodovat. Podle toho pak nadefinuju šablonu řešení a GA pak pomůžou najít, jestli to bude líp fungovat na 15min nebo hodinovém grafu, a jestli pro určení trendu radši použít EMA nebo MACD.

Do jaké míry můžu věřit, že dané řešení bude fungovat i v budoucnosti, to je obecný problém mechanických systémů, ať už jsme na ně přišli jakoukoli metodou, a musí se řešit zvlášť pro každou konkrétní situaci. V odpovědi na tuto otázku může pomoct např nedávno zde recenzovaná kniha Evidence Based Technical Analysis. www.amazon.com/Evidence-Based-Technical-Analysis-Scientific-Statistical/dp/0470008741

A jaké je riziko programátorských chyb a jak eliminovat jejich důsledky, to už je úplně jiná otázka, která souvisí s platformou, na kterou systém vykonáváme, a povahou systému (timeframe, vstupní a výstupní techniky, použitá data). Počítám, že známé renomované systémy jako TradeStation asi moc chybové nebodou, jinak by už ty firmy dávno zkrachovaly.

A nebo, když je někdo (bývalý) programátor, a je skeptický, může si napsat vlastní engine a přesně vědět, co se dějě a mít vše pod kontrolou. Vždyť se tím předtím léta živil a v těch programech co psal, šlo zákazníkům o peníze, stejně jako teď jemu, tak by měl vědět, jak na to. Například já jsem se touto cestou vydal, zabralo to pár týdnů práce napsat první funkční verzi, pak prvních pár měsíců živého provozu jsem nad tím seděl a sledoval, jestli to dělá, co chci, vychytal drobné mouchy a zabudoval tam pojistky proti nestandardním situacím, a teď to nechávám (už přes rok) bez obav i několik dní bez dozoru obchodovat s vše funguje k mojí plné spokojenosti.

Odesláno

Naprosty souhlas s tim, co napsal jaaan. Opravdu je potreba rozlisovat technicke detaily stavby obchodniho systemu - tj. obchodnich pravidel (treba pomoci GA, to je jedno) - a detaily, ktere se tykaji implementace a provozovani AOS. Co se tyce stability, tak bych k tomu rekl pouze to, ze jaky si to clovek udela, takovy to ma. Mne bezi AOS live od unora tohoto roku aniz bych se o to musel starat. Problemy nastaly pouze ve chvili, kdy jsem se v tom vrtal a nasadil jsem do ostreho provozu verzi, ktera nebyla 100% otestovana (vetsinou nasledek testovani "za pochodu"). Ale jinak je uplne jedno, jestli jsem doma nebo treba v Kanade. Bezi to uplne bez problemu (a to se system sklada ze 3 samostatnych aplikaci, ktere spolu nonstop komunikuji).

> tomnes

Tomasi, jeste bych mel jeden dotaz ohledne GA, abych neodbihal od tematu. Poustis nekdy uplne to same vyhledavani vickrat po sobe, aby jsi porovnal, jestli Ti to da vicemene stejne nebo vyrazne jine vysledky? Protoze ten problem nalezeni lokalniho maxima, ktery tu zminoval fubu, mi prijde jako dost "valid point". Z podstaty GA vyplyva, ze ho muze souhra nahod zatahnout do slepe ulicky (nejsilnejsi jedinci z populace zatahnou GA jinym smerem, nez kde se nachazi jeste silnejsi jedinci - o kterych ale GA v tu chvili ani nevi). A tak je teoreticky mozne, ze pri opakovanem spusteni vyhledavani pomoci GA z toho vypadnou jine vysledky. Zajimalo by me, jestli toto nejak resis.

Odesláno

Gizmo,

ano, spouštím. V podstatě během optimalizace parametrů 10x resetuji, tj. 10x začínám znovu od začátku (v mém programu je k tomu funkce nazvaná GAseeds).

Je také důležité si uvědomit, že v komplexnějších záležitostech neexistuje jediné řešení. Existuje často více řešení, v rámci ohromného množství kombinací by bylo špatné, kdyby existovalo pouze jedno - a takové bych určitě live nenasadil, pak bych se opravdu bál přeoptimalizace.

Pro mě je nejdůležitější vidět, v jak veliké škále a rozsahu fungují různé parametry a jejich kombinace. Příklad: když optimalizuji například parametry na strategii TomNess_Boss, kterou postavily GA, pak vidím, že Parametry 1-3 dávají stále velmi vysoké fitness v tomto rozsahu:

parametr 1: 80-130
parametr2: 20-40
parametr3: 2.8 - 3.8

Samozřejmě, v tomto rozsahu existuje stále velmi mnoho kombinací a já nevím, jak fungují všechny. Ale pokud například nechám běžet 20.000 iretací (40 Population x 50 Generations x 10 GA seeds) a vidím pak, že opravdu obrovské množství různých variant produkuje stabilní equity a to IS i OOS (mám k dispozici editor, který mně umožní v rychlosti projet všechny equity), vím, že mám v ruce opravdu robustní strategii. Pokud naopak vidím, že stabilní equity produkuje pouze prvních pár nejvyšší fitness a po chvilce už se equity "rozpadají", pak vím, že strategie není moc stabilní a riziko přeoptimalizace je skutečně vysoké - takové strategie nikdy nenasadím. Prostě potřebuji vidět, že pokud optimalizační parametry posunu o 10-15% nahoru nebo dolů, tak mám stále velmi dobré výsledky - pak mohu hovořit o globálních optimech, tj. že celkový set parametrů pracuje v rámci jednoho "obrovského kopce", kde je velké území profitu, nikoliv v rámci špičky jediného úzkého vysokého kopce, kde kolem už žádný prostor k profitu zjevně není.

Odesláno

III, odpovědi na vaše dotazy:

1. její uvedení v reálný život (umí třeba SW, který najde vhodnou strategii také obchodovat - napojit se na "mého" brokera? Nebo je třeba externích programátorských dovedností k uvedení strategie do reálného života?)

Já předám hotový kód svému brokerovi, který kód u sebe nasadí v TradeStation a více už se o to nestarám. Uvedení v reálný život je otázka pár minut. To je to nejmenší ze všeho.

2. Jak poznám, že strategie přestala fungovat?

Že strategie už nevydělává peníze.

3. Kdy nastane čas na její reoptimalizaci?

Existují různé sofistikované metody, jak statisticky vyhodnocovat ideální optimalizační okna. Nic méně jedná se již o hodně pokročilou věc, kterou tady zatím rozepisovat nebudu, možná až někdy později, až tu bude dost praktických uživatelů GA (nejenom teoretici neustále vysvětlující, proč něco nemůže fungovat). Je ale nutné si uvědomit, že reoptimalizace je jen jedna z cest. Já například drtivou většinu strategií nereoptimalizuji. Pokud přestane strategie fungovat, tak zkrátka je nezřídka jednodušší strategii vypnout a využít GA k hledání nové, náhradní strategie. To je další výhoda GA - nahrazování celých strategií je nyní jednodušší a časově dostupné (i když stále dost pracné a bez zkušeností ne úplně lehké). Nic méně, při troše snahy a štěstí máte novou strategii za 2-3 týdny. Mám známé, kteří v podstatě nechávají běžet počítače nonstop, GA jim tak neustále vytvářejí kandidáty na možné strategie (přitom nemusíte u toho počítače po většinu času vůbec sedět) a když některá strategie selže, mají výměnu do pár dnů. Jsou to ale také lidé, kteří jedou ve velkém a řídí fondy s mnoha penězi. U malých traderů jako jsme my není takový extrém zapotřebí.

4. Jaké podmínky jsou pro strategii nejlepší - jak poznám kdy strategii nasadit a kdy vysadit?

Nejlepší podmínky pro strategii jsou ty, ve kterých strategie kontinuelně vydělává.

Musíte si vytvořit risk-profil své strategie. Určit si parametry, které budete sledovat a pokud se takové vychýlí od běžných měřítek, tak strategii vysadit. Existuje mnoho způsobů. Od sledování drawdownu, standardní odchylky DD, až po jednoduchou trendovou čáru zakreslenou do equity a vypnutí strategie pokud dojde prolomení směrem dolů, nebo takzvané equity crossover. Sofistikované metody pak existují v kombinaci s výpočtem optimálních reoptimalizačních oken - to je ale něco, co je opravdu už pokročilá (byť velmi silná technika) a o tom možná až někdy později, jak už jsem psal.

Odesláno

tomnes,
skutocne nema zmysel si vykrikovat, co kto len cital, co kto 1,5 r. klikal, kto ma aky background a skusenosti s roznymi modelmi od vymyslu sveta aj v inych realnych problemoch okrem predikcie trhov.

Odesláno

Zdravim,
Suhlasim, ze geneticke algoritmy umoznia setrit cas.

Nechcem sa pustat do zbytocnych debat o tom co je lepsie a vykonnejsie alebo praktickejsie.
Pre kazdeho je asi vhodne nieco comu najlepsie rozumie a v com vie najst vyhody, ktore zuzitkuje pre vlastny osoh.

Tomnes:
Zaujima ma hlavne jeden aspekt a to robustnost.
Skusali ste uvedenu strategiu na iny timeframe? Napriklad na 10 min, alebo 5 min, alebo 30-60min atd.
Zaujimalo by ma ake vysledky ste dosiahli.

Osobne som GA vyuzival uz od 2006 a sem tam ich vyuzijem i teraz (privatny SW).
Avsak strategiu pokladam za robustnu az vtedy ked vidim, ze pracuje na viacerych podobnych TF. Samozrejme ze neocakavam, ze to co pracuje na 1 min bude pracovat aj na 60 -120min grafoch a naopak. Musia to byt aspon pribuzne TF, kde su podobne patterny.

Vidim, ze vy ste si postavili strategiu, ktora ma slusny avg.trade.profit , ale na moj vkus nema prilis velky pocet obchodov. Ale pokial bude bez problemov fungovat aj na inych timeframoch teoreticky moze byt robustna. Viac dovery mam v strategie kde vidim tisicky obchodov a nevadi, ze su na nizsich TimeFramoch alebo ze maju nizsi avg.trade.profit.

Pre priklad vam v dalsom prispevku uvediem aspon zopar screenov z dnesnej prvej obchodnej hodiny.

Odesláno

Kedze mi tu nejdu editovat vlastne pripevky, k vyssie uvedenmu malo byt napisane:

Ta ista strategia pouzita na roznych Timeframoch, bez akejkolvek upravy.
Na vsetkych TF vidite ziskove obchody. Napr 3 min graf ma zisk cca 880 USD na kontrakt co predstavuje asi 17 ES bodov. Dnes je vsak slusny pohyb na trhu, nie vzdy to tak musi byt.
Ale davam to sem za inym ucelom. Bavime sa o robustnosti systemov a ako priklad uvadzam velmi robustny system, ktory dokaze generovat velmi profitabilne obchody na viacerych timeframoch a v roznych obmenach vstupnych podmienok bez akychkolvek zasahov do logiky systemu. Viem systemu nadtsavit aby cakal 1 a viac tickov nad signal atd. Suystem je stale vysoko ziskovy. Profitabilita cca 62% win/loss cca 0.75 - 0.9 samozrejme za viacrocne obdobia.
Zaujima ma ci viete so svojim systemom vygenerovanym cez GA, ktory hodlate obchodovat live spravit podobne testy robustnosti.

3 min graf 2min graf 10min graf

Odesláno

Kedze mi nejde editovat vlastne prispevky ku grafom hore malo byt napisane:

Ta ista strategia pouzita na roznych Timeframoch, bez akejkolvek upravy.
Na vsetkych TF vidite ziskove obchody. Napr 3 min graf ma zisk cca 880 USD na kontrakt co predstavuje asi 17 ES bodov. Dnes je vsak slusny pohyb na trhu, nie vzdy to tak musi byt.
Ale davam to sem za inym ucelom. Bavime sa o robustnosti systemov a ako priklad uvadzam velmi robustny system, ktory dokaze generovat velmi profitabilne obchody na viacerych timeframoch a v roznych obmenach vstupnych podmienok bez akychkolvek zasahov do logiky systemu. Viem systemu nadtsavit aby cakal 1 a viac tickov nad signal atd. Suystem je stale vysoko ziskovy. Profitabilita cca 62% win/loss cca 0.75 - 0.9 samozrejme za viacrocne obdobia.
Zaujima ma ci viete so svojim systemom vygenerovanym cez GA, ktory hodlate obchodovat live spravit podobne testy robustnosti.

3 min graf 2min graf 10min graf


×
×
  • Vytvořit...