Pracovní skupina poskytovaná tradery pro tradery. Naleznete v ní odpovědi na své technické otázky týkající se programů Amibroker, Python, InteractiveBrokers TWS a TradeStation Global.
Aktualizovaná výkonnost strategií dashboardu k 6.7.2025:
Na účtu se mi v týdnu nedařilo zejména short mean reversion (živě obchoduji MR3000S), což se dá pochopit s ohledem na to, že trhy nyní rostly. Za zmínku stojí rozdíl ve ztrátě v systémech MR3000S vs SMR USA Short, které se liší délkou držení pozice. MR3000S drží pozici maximálně 2 dny, SMR USA Short 5 dnů. Obecně to potvrzuje můj pohled na swingové shorty, kdy se snažím pozici vždy ukončovat co nejdříve (sám ukončuji MR3000S druhý den na close - tedy pokud mezitím nebyla ukončena pozice na jiném výstupu).
Má živá equity křivka intradenního breakoutu z IB:
Týden jsem měl volatilnější, ale equity se stále snaží o vytvoření nového maxima. Hlavním tahounem je v portfoliu micro Bitcoin Futures. Takto vypadá jeho samostatná výkonnost:
Jde o mé reálné výnosy - tedy po skluzech a poplatcích. MBT obchoduji zatím v Interactive Brokers skz jednoduchý bracket vstup, pro jehož vytváření jsem zde sdílel příslušný skript (sám nemám v IB zatím implementováný trailing stop-loss).
Děkuji za zpětnou vazbu.
Moje aktuální zkušenost je taková, že je lepší se držet workflow, které jsem nastínil v prvním videu. Tedy vytvářet postupně s AI dílčí funkce a ty testovat.
V posledním příspěvku https://www.financnik.cz/forum/topic/5320-ai-workflow-pro-vytvareni-obchodnich-systemu/#findComment-323233 jsem nechal Claude Code pracovat dost samostatně (od A do Z), což má za následek, že defacto celý vývoj už je pak možný dělat jen přes prompty. Reálně není možné kód procházet a nějak jej ručně kontrolovat/ladit. A tady jsem se po několika dnech dostal do fáze, kdy Claude Code není reálně schopna odladit poslední detaily, které potřebuji. Je to proto, že prompt zadávám nikoliv jako přesný příkaz (tj. oprav ve funkci A to a to), ale třeba jako zadání vycházející z grafu - například vstup by neměl být na dané úsečce, ale o pět úseček dříve. A tady už se prostě nedokážeme domluvit. Claude sice chápe zadání, ale výstup mu neodpovídá. Důsledkem je, že u vyvinuté strategie vlastně přesně netuším jestli je 100% korektní nebo nikoliv. V principu mi přijde vše správně, ale občas zahlédnu drobnou nuanci v obchodu, která by měla být jiná. Pokud s Claude situaci testuji, nedoberu se k žádné jednoznačné chybě. Ale současně tedy nemám něco, čemu bych úplně důvěřoval.
Sám se tedy trochu vrátím k tomu, že nenechám AI vytvářet příliš velké bloky kódu. Ale spíše samostatné třídy a funkce, které budu schopen pochopit a otestovat.
Petře to je úžasný pracovní proces ( a výsledky).
Za sebe jsem zatím došel do stavu, kdy s pomocí chatGPT dokončuju (Python) "pracovní prostředí" pro backtesting strategií vč zobrazení křivek a reportu výkonnosti. Jsem naprosto spokojen se zvýšením produktivity, ručním kódováním bych postupoval mnohem pomaleji. Navázal jsem tím na minikurz datové analýzy a směřuju k testování rotačních strategií. Samozřejmě i s těmito nástroji, pokud člověk postupuje důsledně, vše zabere nějaký čas.
Doufám, že se časem dokážu posunout k podobnému využití možností AI.
S využitím AI získávám čím dál více obchodovatelné systémy.
Jednoznačně je to cesta, která vypadá velmi perspektivně.
Zde je shrnutí toho, co mi funguje:
1. Začínám v ChatGPT (model o3).
Používám vlastní bio, kde zrekapituji, jak zkušený trader jsem. Tím se GPT přepne do „expertního módu“ a výstupem jsou úplně jiné odpovědi, než když se ptáte coby náhodní příchozí.
Bio může být vymyšlené a mělo by být zaměřeno na oblast, ve které hledáme expertní odpověď. Pokud uvedete, že máte zkušenosti s machine learningem, budou odpovědi směřované do této oblasti. Pokud chceme, aby vytvářené systémy byly postaveny například na minutových datech a nikoliv orderflow, je potřeba začít už od představení. Používám například promt typu:
Osobně komunikuji s LLM anglicky. Podle mých zkušeností to dává lepší výsledky.
S chatGPT sdílím současně s "mým" představením obrázek z reálné obchodní seance a popíšu kontext, co bych rád zobchodoval. V případě popisovaného systému jsem chatGPT nastínil myšlenku obchodování z "intradenních "boxů" - buď mean reversion nebo breakout.
ChatGPT vysvětlím jaká mám data a jakou výkonnost (po započtení skluzů a poplatků) bych si realisticky představoval.
Pak GPT požádám, aby vygeneroval a seřadil strategie podle:
- obtížnosti implementace
- pravděpodobnosti, že budou fungovat v reálném obchodování
2.
Tohle zadání obvykle přinese překvapivě dobré nápady.
Například jsem získal přehled:
S chatGPT lze dál konverzovat, například jsem jej nechal odhadnout sharpe ratio jednotlivých přístupů. Všimněte si, jakou odborností se mnou komunikuje - to je přesně to co chceme. Nemusíme všemu rozumět - vždy je možné kdykoliv požádat o vysvětlení pojmů atd. Podstatné je ale chatGPT udržovat v odborné rovině, protože jinak nás odbyde nějakou jednoduchou odpovědí a upozorněním, že trading je riskantní a sharpe ratio >1 získáme jen velmi obtížně.
A nakonec jsem nechal chatGPT vybrat systém. Například promptem:
"select the best and easiest edge for first implementation. I will be testing using python. I have one minute data for QQQ and SPY.
At the end i want slower system, minimal trade duration minutes."
Potom GPT požádám, aby:
- sepsal kompletní a detailní obchodní plán
- vytvořil krok za krokem instrukce pro programátora k implementaci do backtesteru
3/
Instrukce pošlu do Claude Code (můj programovací agent - to je to co jsem ukazoval v prvním videu).
Claude vezme logiku a převede ji do Pythonu.
Kód spustím, ale pouze na striktně In-Sample datech.
První verze většinou není dokonalá – ale to nevadí.
4/
Pak Claude požádám, aby:
- vytvořil screenshoty posledních 10 obchodů
- zakresloval vstupy a výstupy
Konkrétně v tomto případě jsem dostával screenshoty tohoto typu:
Což byl přesně ten typ obchodů, který jsem hledal.
Nicméně už mezi screenshoty bylo zřejmé, že některé obchody nedávaly smysl.
Pak používám v Claude výrazy jako „think deeply“ nebo „audit the logic, find any biases“, kterými se ve vývoji s Claude postupně dostáváme kupředu.
Po několika iteracích ji požádám o shrnutí implementované logiky v jednoduché angličtině.
To je klíčové pro další krok.
5/
Shrnutou logiku vložím zpět do ChatGPT.
GPT často odhalí chyby, hraniční situace nebo logické díry.
Jeho zpětná vazbu vracím Claude pro úpravy kódu.
6/
Když se blížíme k finální verzi, požádám Claude o kompletní audit se zaměřením na:
- vstupy
- výstupy
- stop lossy
- velikost pozice
- indikátory
Tento audit dělám jednotlivě - tj. samostatný audit vstupů, samostatný audit výstupů atd.
Proč? LLM jsou mnohem přesnější při malých, cílených úlohách.
7/
Jakmile je kód finální, testuju ho Out-of-Sample a na jiných trzích.
Equity křivka, kterou sdílím, je z QQQ na celé historii dat – Claude měl přístup jen k pár rokům SPY.
To je důležitá pojistka proti overfittingu.
takto třeba vypadá equity křivka na IWM:
Snažím se najít trhy, na kterých logika nefunguje tak dobře - protože tím získávám další potvrzení, že by systém mohl být validní (protože jen svatý grál funguje všude).
Takto třeba vypadá systém na zlatě (GLD):
Zde je vidět, že strategie je v současnosti v hlubším drawdownu, což vnímám jako pozitivum že logika systému může být věrohodná. Jen těžko budeme mít systém, který bude všude fungovat naprosto dokonale.
8/
Byť to vše může vypadat jednoduše, není to tak triviální.
Celý proces vývoje tohoto systému mi zabral skoro den - neustále instruování LLM modelů, analyzování výsledků atd.
Navíc je možné, že systém stále bude mít nějakou skrytou chybu, kdy se ukáže, že výsledky jsou dobré jen v testu, ale nikoliv v živém obchodování. To je normální a očekávám to.
Jde ale o to, že každou iterací se posouvám dál - jakmile objevím chybu, hned ji zapíšu do seznamu toho, co nechat LLM otestovat příště. A díky tomuto se příští model opět posune dál.
Například aktuálně vytvořený systém bych před pár týdny podobným worfklow ještě dohromady nedal - vše je o praxi.
Závěr?
Síla podobného workflow je neuvěřitelná.
Věci nejsou dokonalé, ale je to ten nejsilnější nástroj, se kterým jsem kdy pracoval.
LLM obsahují "všechny informace světa" a současně je umí přepracovat do praktických nástrojů. Nejsou dokonalé, občas vytvářejí šílené věci, které by školák zvládl lépe.
Při stavbě systému je potřeba používat kritické myšlení. Každý nápad a implementaci neustále zpochybňovat.
Není možné se nadchnout z první hezké equity křivky.
Osobně jsem kritický i k systému, který zde popisuji.
Nicméně nyní stačí již jen jedno - nechat Claude vytvořit autotrader, se kterým budu systém papertradovat. Pak srovnávat backtest s papertradingem a zde se již reálně ukáže, jestli je backtest realistický nebo obsahuje nějakou špatnou implementaci.
Je to podobné, jako když člověk vytváří systémy ručně. I zde se dělají chyby. Zásadní rozdíl je v tom, že LLM přichází s nápady, které bychom sami neměli a že celý proces vytváření systému výrazně urychluje.
Jaké jsou vaše zkušenosti? Začal někdo používat podobné workflow?
Toto je skutečně neuvěřitelně silná oblast, která se navíc rychle vyvíjí. Rád si zde budu vyměňovat zkušenosti.
Zdravím,
kód je tentokrát trochu záludný Pohledově to vypadá uprostřed na dvě stejná písmena, ale ve skutečnosti je první malé L a druhé velké I. Je lepší podobné kódy raději kopírovat než přepisovat.
B.
Zhodnocení je výsledkem risku, který jsme ochotni podstupovat a našeho edge.
Risk je něco co můžeme do velké míry ovlivňovat position sizingem. Osobně obchoduji přibližně tak, aby 2% ztráta na účtu odpovídala přibližně 3 směrodatné odchylce. Moje cílená anualizovaná volatilita je tedy (2%/3)xodmocnina z 252 = cca 10,6%
Edge vyjadřuji skrz sharpe ratio. Reálně mám ve svém portfoliu potenciál sharpe ratio cca 1-1,3 v živém obchodování.
Výnos pak můžeme přibližně očekávat jako risk x edge. Tedy:
CAGR lze přibližně odvodit jako anualizovaná volatilita x sharpe ratio.
V mém případě je to pak při pozitivní hranici sharpe 1,3 cca 13,78%, což tak odpovídá tomu, co vnímám jako svůj aktuální potenciál výnosů při riziku, které jsem ochotný akceptovat.
Letos jsem zatím pod tímto cílem. Hlavně proto, že systémy mi teď obchodují spíše méně = mám nižší volatilitu a nemohu tak mít příliš vysoký zisk. Zhodnocení mám zatím jednociferné. Oproti celkovému trhu ale obchoduji s podstatně nižší volatilitou.
Ta čísla ale nejsou statická a dobře ukazují, jak se můžeme posouvat dále = zejména přidáváním nekorelujících systémů. To zvyšuje sharpe ratio a současně snižuje volatilitu. Můžeme pak obchodovat agresivněji = dosahovat vyšších cílů. Což je cesta, kterou se pomalu, ale jistě ubírám.
Mým cílem je obchodovat s volatilitou cca 15% při sharpe ratio cca 1,5-2
Dobře, rozumím. Trochu tedy upravím můj předešlý dotaz. Ani mi tak nejde o porovnání ale spíše tedy ze zvědavosti, v jakých číslech se pohybujete? Myslím, že by to zajímalo zde určitě i více obchodníků. Je mi jasné, že výnos jedno procento z mnoha milionového účtu jsou úplně jiné peníze ... takže vaše cíle jsou jinde.
Šlo by to aspoň přibližně? Procentuálně si to vlastně porovnat přece můžeme.
T.
Jde o překlep - jde o Publicly Traded Partnership společnosti, na které jste se ptal v předchozím příspěvku. Filtruji je na základě dat od Norgate, kde jsou tyto společnosti jako PTP označeny.
Dobrý den, děkuji za odpověď. V popisu strategie SMO NDX je uvedeno, že z obchodování jsou vyloučeny PLP společnosti. O jaké společnosti jde a jakým způsobem je mohu při vyhodnocování/filtrování signálů vyloučit?
Já na svém vlastní účtu obchoduji i další strategie, plus obchoduji s jiným volatility targetingem, než bude obchodovat většina z vás - cílím na nižší zhodnocení a nižší drawdowny. Tj. toto srovnávat nelze.
Kontinuální backtest je "out of sample" tj. je velmi blízký realitě. Samozřejmě záleží na velikosti obchodovaného kapitálu - to má pak souvislost se skluzy. Největší rozdíl bude u short strategií, kde ne vždy jsou k dispozici akcie pro shortování. Ale to by mělo být právě to, od čeho se člověk v trading room a podobném startu od prvních backtestů odrazí - porovnávat živé obchody s backtesty, vyhodnocovat, kde je prostor a tam se posouvat.
Zdravím Petře,
dá se někde zjistit jaké máte výsledky ve vašem fondu, kde spravujete externí kapitál? Výsledky backtestu jsou sice fajn, ale nevím jak jsou moc vzdálené od reality.
Díky za případné sdílení.
Tomáš
Dobrý den Petře,
děkuji za podrobnou odpověď, omlouvám se za to, že se občas neorientuji. Podrobně to prostuduju a doufám, že se mi to podaří rozchodit. Díky moc za Vaši práci a její sdílení.
Přeji úspěšné obchodování, Radek
Aktualizovaná výkonnost strategií dashboardu k 30.6.2025:
Solidně pozitivní týden. Lehce rostlo prakticky vše, co obchoduji.
V dashboardu aktuálně prochází nejvíce drawdownem short mean reversion. Ta je ovšem v dashboardu sledována s výstupy další den na open. Osobně všechny mean reversion strategie ukončuji na konci dne (nenechávám je otevřené přes noc do otevření následující dne), což zejména v aktuální době hodně pomáhá.
Na svém živém účtu jsem měl v týdnu nové absolutní maximum.
Pomalu se blíží k novému maximu také v intradenním breakoutu. Mé živé obchody z IBKR:
(černá linka je moje PnL intradenní breakout strategie, zelenkavá pro porovnání buy and hold v SPY.
Radku, v Trading Room není třeba žádné programování, i ID breakout je již hotový.
V dashboardu jsou signály generovány pouze pro swingové strategie. Tedy strategie ID breakout long: https://tradingroom.financnik.cz/system/55 a ID breakout short: https://tradingroom.financnik.cz/system/54 jsou v dashoardu jen pro dokumentaci obchodů.
Aby se intradenní strategie daly exekuovat, musí mít intradenní data, které pak vyhodnocuje nějaký nástroj v době intradenního zadávání příkazů. Skriptů zde máme hned několik podle toho, kde chcete obchodovat. Viz https://www.financnik.cz/clanky/zakulisni-orientace/intradenni-breakout/ a sekce autotrading. Pokud hledáte nástroj pro zadávání bracket příkazů pro Interactive Brokers, tak ten je nalinkován zde: https://www.financnik.cz/clanky/zakulisni-orientace/intradenni-breakout/#autotrading-etf-futures-u-interactive-brokers (odkaz jsem v přehledu aktualizoval, nebylo to úplně přehledné).
Na linku je ukázka, jak to funguje plus soubory:
V konfiguraci stačí vyplnit své parametry breakoutu a obchodované trhy. A tento skript spustit po otevření trhů - vygeneruje příkazy které vedou ke strategii publikované v dashboardu. Jen místo ETF zobrazovaných v dasbhoardu obchodujeme vesměs micro futures.
Samotný skript stačí spustit v Pythonu, pokud byste nevěděl jak na to, tak se ptejte.
Dobrý den
Prosím o radu,
Po změně hesla mi downloader přestal stahovat data. Píše mi chyba behem stazení souboru.
Nejde stahovat ani přes soubor exe ani přes python skript
Downloader jsem přeinstaloval, napsal heslo, cesty k databázi a výsledek je stejný.
Poradíte mi, jak mám postupovat dále?
Děkuji Mirek
Server od roku 2003 vydává
Centrum finančního vzdělávání, s.r.o. info@financnik.cz
Upozornění: Všechny informace poskytované na Financnik.cz jsou určeny výhradně ke studijním účelům témat týkajících se obchodování na burze a neslouží v žádném případě coby konkrétní investiční či obchodní doporučení. Provozovatel serveru ani jednotliví autoři nejsou registrovanými brokery či investičním poradcem ani makléřem. Jsou-li na stránkách zmiňovány konkrétní finanční produkty, komodity, akcie, forex či opce, vždy a pouze za účelem studia obchodování na burze. Vydavatel serveru není zodpovědný za konkrétní rozhodnutí jednotlivých uživatelů. Burzovní obchodování a investování s finančními instrumenty (a komoditami obzvláště) je vysoce rizikové. Rozhodnutí obchodovat komodity a akcie je odpovědností každého jednotlivce a jedině on sám nese za svá rozhodnutí plnou odpovědnost. Nikdy se nepouštějte do obchodů, jejichž podstatě plně nerozumíte. Pamatujte, že burza má svá pravidla, kterým je třeba porozumět, než začnu riskovat své vlastní peníze!