TechLab nové minikurzy – zvládněte základy Pythonu a automatizaci obchodování
Hlavním směrem obchodování na Finančníkovi jsou systematické strategie, jejichž fungování je možné automatizovat, a tudíž provádět s minimální časovou náročností i při práci s širšími diverzifikovanými portfolii (která považujeme za hlavní svatý grál retailového obchodníka).
Systematizace obchodování s sebou nese potřebu osvojit si technické nástroje a postupy, které nám v tradingu následně šetří čas a zvyšují efektivitu. Podle toho, z jakého zázemí obchodník přichází (sám nejsem programátor, ani jsem dříve příliš technice nerozuměl), je pak přirozené, že technické výzvy mohou vyvolávat mnoho průběžných dotazů a nejistot. Proto na Finančníkovi vznikla skupina TechLab, jejímž cílem je všem pomoci překonat technické problémy a inspirovat se, jak situace řeší v tradingu ostatní. Ve skupině je dnes mj. přes 5 000 příspěvků, množství video tutoriálů a dokonce kompletní hotové Python řešení pro automatizované obchodování.
V TechLabu naleznete technickou podporu, průběžně publikované nové technické tutoriály, ve kterých ukazujeme, jak v praxi zvládáme klíčová témata spojená se systematickým obchodováním a také celé minikurzy, jejichž cílem je předávat vzdělávání v komplexnější podobě.
Minikurzy jsou aktivně vedeny lektorem, který s vámi bude vyhodnocovat zadávané domácí úkoly a pochopitelně odpovídat na všechny otázky. Nabízí tak reálnou cestu, jak si osvojit technické oblasti, které v systematickém obchodování považujeme za klíčové.
Na léto a podzim máme v uzavřené skupině TechLab připravené dva nové běhy minikurzů – praktické začátky s Pythonem a API komunikace se systémem Interactive Brokers. Pro účastníky TechLabu jsou minikurzy zdarma.
Výuku pythonu začínáme 2.6.2023. Jde o klíčový minikurz, který vás naučí pracovat se skriptovacím jazykem tvořícím dnes pilíř technické stránky našeho tradingu (Python používáme pro řízení automatizace, práci s daty, nejrůznější podpůrné skripty atd.). Minikurz opakujeme jednou za cca 18 měsíců, proto tento aktivně lektorovaný termín nezmeškejte.
Minikurz Základy zvládnutí Pythonu je určen především neprogramátorům a obsahuje následující lekce (lekce jsou publikovány jednou za týden):
Lekce 1 – Úvod do Pandas. Hned od první lekce se pustíme do práce s poskytnutými datasety. Po úvodním představení kurzu a shrnutí přípravy prostředí se naučíme do Pandas načíst data z csv souboru. Dále si ukážeme funkce pro omezení záznamů a řekneme si, jak následně provedené změny uložit.
Lekce 2 – Datové typy. V lekci si vysvětlíme, co to jsou základní datové typy. Ukážeme si funkce pro zjištění, s jakými datovými typy v jednotlivých sloupcích tabulky pracujeme a také se naučíme techniky převodu dat, které nám umožní předcházet případným chybám vycházejícím z nesouladu datových typů.
Lekce 3 – Seznámení s DataFrame. V této lekci se podíváme trochu komplexněji na datové typy, představíme si nejběžnější složené datové typy. Také si řekneme, co je to dataframe a naučíme se základní operace napříč tabulkou.
Lekce 4 – Získáváme první data. V této lekci si vysvětlíme, jak pracovat s osami v rámci dataframe, dále se naučíme postupy pro ošetření prázdných hodnot v načtených datech a také si ukážeme, jak aplikovat na datech základní statistické operace.
Lekce 5 – Práce s indexy. Lekce zaměřená na práci s indexy, vysvětlíme si, jak s indexy pracovat a naučíme se, jak můžeme díky indexu efektivně získávat z dataframe požadované hodnoty a také, jak pomocí stejných principů nahrazovat hodnoty za jiné.
Lekce 6 – Seskupování dat. Pokud bude dataset obsahovat záznamy více systémů, pak nás kromě pohledu na celkový stav portfolia budou zajímat také dílčí výsledky jednotlivých strategií. Vysvětlíme si principy seskupování dat, které nám umožní právě tyto dílčí výsledky získávat rychleji a efektivněji.
Lekce 7 – Spojování tabulek. V lekci se naučíme spojovat tabulky, vysvětlíme, jak řešit dva nejčastější důvody spojování tabulek, kterými jsou přidávání dalších řádků ke stávajícím záznamům a také rozšíření tabulky o další sloupce. Současně připojíme další dva datasety. První obsahuje data našeho pracovního portfolia za delší období, druhý pak doplňující informace o průběhu jednotlivých obchodů.
Lekce 8 – Smyčky. Zaměřeno na smyčky, které patří mezi nejčastěji používané techniky v programování a setkáme se s nimi v téměř každém Python skriptu. V našem minikurzu si podrobněji vysvětlíme, jak funguje smyčka for...in, která nám umožní procházet záznamy v dataframe poměrně jednoduchou a srozumitelnou syntaxí.
Lekce 9 – Vizualizace dat. V závěrečné lekci minikurzu se naučíme data vykreslovat do grafů. Vysvětlíme si základní principy použití funkce plot a předvedeme, jak zobrazit průběh equity celého portfolia i jednotlivých strategií.
Po minikurzu Pythonu bude v TechLabu následovat několik samostatných video tutoriálů ukazujících tipy, které mě s Bogdanem pomáhají v trading praxi.
Následně spustíme nový minikurz, ve kterém se naučíme komunikovat se systémem Interactive Brokers pomocí rozhraní API. Použijeme k tomu právě Python a knihovnu ib_insync. V průběhu výuky postupně vysvětlíme principy, které umožňují získávat z TWS požadované informace o prováděných obchodech, ale také si ukážeme postupy, které mohou tvořit základ pro stavbu vlastního řešení automatizovaného obchodování, tzv. autotraderu.
Obsah minikurzu:
Lekce 1 - Obecné seznámení s knihovnou ib_insync. Naučíme se otevřít komunikační kanál a také získávat z IB informace o cenách vybraného trhu.
Lekce 2 - Ze systému IB načteme informace o obchodním účtu a obsahu portfolia.
Lekce 3 - Ukážeme si, jakým způsobem odesílat příkazy do trhu. Vysvětlíme si, jak vytvořit objednávku a rozdíl mezi zadáním MKT a LMT příkazu.
Lekce 4 - V této lekci se budeme věnovat sledování otevřených pozic a čekajících příkazů.
Lekce 5 - Na závěr minikurzu spojíme všechny získané informace a vytvoříme si jednoduchý autotrader, který odešle do IB příkazy na základě signálů připravených v csv souboru.
Pro zapojení do minikurzů se stačí přihlásit do skupiny TechLab.
Podrobnosti o TechLabu a možnostech přihlášení naleznete na stránce https://tri.financnik.cz/techlab
Dva nové minikurzy v TechLabu – zvládnutí Pythonu a Amibrokeru
V uzavřené skupině TechLab máme připravené dva nové běhy minikurzů – praktické začátky s Pythonem a základy Amibrokeru. Minikurzy představují systematické vzdělávání plné moderované diskuze a řešení domácích úkolů. Pro účastníky TechLabu jsou zdarma. Začínáme v pátek 27.5.2022.
Hlavním směrem obchodování na Finančníkovi jsou systematické strategie, jejichž fungování je možné automatizovat, a tudíž provádět s minimální časovou náročností i při práci s širšími diverzifikovanými portfolii (která považujeme za hlavní svatý grál retailového obchodníka).
Systematizace obchodování s sebou nese potřebu osvojit si technické nástroje a postupy, které nám v tradingu následně šetří čas a zvyšují efektivitu. Podle toho, z jakého zázemí obchodník přichází (sám nejsem programátor, ani jsem dříve příliš technice nerozuměl), je pak přirozené, že technické výzvy mohou vyvolávat mnoho průběžných dotazů a nejistot. Proto na Finančníkovi vznikla skupina TechLab, jejímž cílem je všem pomoci překonat technické problémy a inspirovat se, jak situace řeší v tradingu ostatní. Ve skupině je dnes mj. přes 5 000 příspěvků a 117 videotutoriálů o délce přibližně 1 800 minut.
Aby se v tématech dobře orientovalo i těm, kteří se zrovna pouští do práce se zvládnutím technikálií, je naším plánem připravovat v TechLabu průběžně minikurzy zaměřené na určitou složitější problematiku.
Zde je plán TechLabu na nejbližší období.
Minikurz Základy zvládnutí Pythonu
Od 27.5.2022 máte možnost zapojit se do minikurzu Základy zvládnutí Pythonu – od nuly k práci s daty. Výuka je určena neprogramátorům. Zaměřena bude na nejdůležitější nástroje, které z Pythonu pro trading používáme – zejména knihovnu Pandas. Těšit se můžete na následující výukové bloky:
27.5.2022 Lekce 1 – Úvod do Pandas. Hned od první lekce se pustíme do práce s poskytnutými datasety. Po úvodním představení kurzu a shrnutí přípravy prostředí se naučíme do Pandas načíst data z csv souboru. Dále si ukážeme funkce pro omezení záznamů a řekneme si, jak následně provedené změny uložit.
3.6.2022 Lekce 2 – Datové typy. V lekci si vysvětlíme, co to jsou základní datové typy, ukážeme si funkce pro zjištění, s jakými datovými typy v jednotlivých sloupcích tabulky pracujeme a také se naučíme techniky převodu dat, které nám umožní předcházet případným chybám vycházejícím z nesouladu datových typů.
10.6.2022 Lekce 3 – Seznámení s DataFrame. V této lekci se podíváme trochu komplexněji na datové typy, představíme si nejběžnější složené datové typy, také si řekneme, co je to dataframe a naučíme se základní operace napříč tabulkou.
17.6.2022 Lekce 4 – Získáváme první data. V této lekci si vysvětlíme, jak pracovat s osami v rámci dataframe, dále se naučíme postupy pro ošetření prázdných hodnot v načtených datech a také si ukážeme, jak aplikovat na datech základní statistické operace.
24.6.2022 Lekce 5 – Práce s indexy. Lekce zaměřená na práci s indexy, vysvětlíme si, jak s indexy pracovat a naučíme se, jak můžeme díky indexu efektivně získávat z dataframe požadované hodnoty a také, jak pomocí stejných principů nahrazovat hodnoty za jiné.
1.7.2022 Lekce 6 – Seskupování dat. Pokud bude dataset obsahovat záznamy více systémů, pak nás kromě pohledu na celkový stav portfolia budou zajímat také dílčí výsledky jednotlivých strategií. Dnes si vysvětlíme principy seskupování dat, které nám umožní právě tyto dílčí výsledky získávat rychleji a efektivněji.
8.7.2022 Lekce 7 – Spojování tabulek. V lekci se naučíme spojovat tabulky, vysvětlíme, jak řešit dva nejčastější důvody spojování tabulek, kterými jsou přidávání dalších řádků ke stávajícím záznamům a také rozšíření tabulky o další sloupce. Současně připojíme další dva datasety. První obsahuje data našeho pracovního portfolia za delší období, druhý pak doplňující informace o průběhu jednotlivých obchodů.
15.7.2022 Lekce 8 – Smyčky. Zaměřeno na smyčky, které patří mezi nejčastěji používané techniky v programování a setkáme se s nimi v téměř každém Python skriptu. V našem minikurzu si podrobněji vysvětlíme, jak funguje smyčka for...in, která nám umožní procházet záznamy v dataframe poměrně jednoduchou a srozumitelnou syntaxí.
22.7.2022 Lekce 9 – Vizualizace dat. V závěrečné lekci minikurzu se naučíme data vykreslovat do grafů. Vysvětlíme si základní principy použití funkce plot a předvedeme, jak zobrazit průběh equity celého portfolia i jednotlivých strategií.
Videotutoriály z praxe
Mezi plánovanými minikurzy budou v TechLabu publikované nové tutoriály pokrývající naši aktuální praxi se systematickými strategiemi.
Minikurz Základy Amibrokeru
Od září se můžete zapojit do nového minikurzu, který vás naučí pracovat s Amibrokerem – doslova od nuly k prvním strategiím. Harmonogram bude následující:
2.9.2022 Lekce 1 – Úvod do AFL. V první lekci si Amibroker podrobněji představíme, vysvětlíme si možnosti AFL editoru a základy skriptování.
9.9.2022 Lekce 2 – Vytváření první strategie. V této lekci se naučíme formulovat strategie a převádět je do základní podoby skriptů. Vytvoříme si základní AFL kód první konkrétní obchodní strategie.
16.9.2022 Lekce 3 – Optimalizace a vyhodnocování výsledků. Ukážeme si, jak je vhodné se dívat na práci s proměnnými a jak rozumně používat optimalizaci. Současně se zaměříme na interpretaci výsledků, které máme v Amibrokeru k dispozici.
23.9.2022 Lekce 4 – Zobrazení grafů. Amibroker je velmi silný ve vizuálním zobrazování jakýchkoliv informací.
30.9.2022 Lekce 5 – Práce v různých časových rámcích. Ze strategie pracující na denních datech připravíme strategii využívající vyšší timeframe.
7.10.2022 Lekce 6 – Obchodování více trhů najednou. Ukážeme si, jak v Amibrokeru aplikovat strategii na více trhů najednou. Vytvoříme si jednoduchý mean reversion portfolio systém.
14.10.2022 Lekce 7 – Skener a Explorer. Důležité nástroje, s jejichž pomocí můžeme skripty debugovat, sledovat aktuální trhy nebo vytvářet signály pro další automatizaci.
21.10.2022 Lekce 8 – Debugování skriptů. Abychom historickým testům mohli důvěřovat, musíme mít důvěru ve správnost samotných skriptů. K tomu nám mohou pomoci taktiky pro debugování.
28.10.2022 Lekce 9 – Testování futures trhů. Ukážeme si, jak v Amibrokeru importovat data futures trhů a jak na těchto datech testovat strategie .
Další tutoriály a minikurzy
Na připravené minikurzy budou navazovat další tutoriály a minikurzy. Veškerý obsah, včetně průběžné diskuze a technické podpory, je přístupný všem účastníkům TechLabu za cenu od 500 Kč + DPH /měsíčně.
Hledáte-li cesty, jak technické výzvy v oblasti systematického obchodování zvládnout, pak je TechLab jednoznačně pro vás. Zaregistrovat se do něj můžete zde.
TechLab – poslední možnost zapojení se za startovací cenu
TechLab vznikl na Finančníkovi v létě 2019 s cílem poskytovat technickou podporu obchodníkům, kteří v trzích používají pro své analýzy a obchodování systematické nebo plně automatizované strategie. Spuštění pracovní skupiny bylo vlastně přirozenou reakcí na skutečnost, že v návaznosti na swingový workshop již na Finančníkovi hodně traderů systematické strategie, a jejich klony, živě a profitabilně obchoduje. A tak vznikala potřeba a chuť mnoha z vás posouvat se dále. Vylepšovat stávající strategie, pracovat na nových, organizovat obchodování do portfolií, posouvat se v automatizaci, ale také získávat motivaci na čem a jak pracovat.
A tyto potřeby TechLab adresuje. Jde o prémiovou službu postavenou tak, abychom měli kapacitu a čas odpovídat na všechny otázky, které nám zde kladete (a na které známe odpověď). Současně jsou v TechLabu každý týden publikované nové tutoriály, které ukazují, na čem a jak sami pracujeme.
O TechLab se starám já s Bogdanem Waclawikem. Traderem, kterého řada z vás zná mj. jako autora Autotraderu.
Pro koho je tedy TechLab určen? Pro všechny obchodníky, kteří se chtějí v systematickém obchodování posouvat vpřed. Tedy v obchodování s využitím moderních technologií – sami používáme Python, Amibroker a pro obchodování API Interactive Brokers.
V TechLabu nejsou vyučovány obchodní strategie, ale v tutoriálech naleznete inspirace, jak se do jejich stavby pustit nebo rozvíjet stávající. A především, pokud narazíte při své práci na nějakou otázku, víte, že v TechLabu se vám na ní pokusíme odpovědět (dnes TechLab obsahuje počet příspěvků blížící se číslu 1 000).
TechLab byl od začátku stavěn jako placená skupina. A to z důvodu, že aktivní odpovídání na dotazy a příprava tutoriálů zabírá svůj čas. Podobnou službu nejde trvale dělat na vysoké úrovni zdarma. Nicméně cena přístupu byla na začátku stanovena opravdu velmi dostupně – 125 Kč plus DPH/týden, placené vždy na tři měsíce. Tato cena bude ale od 1.7.2020 pro prvotní vstup do skupiny navýšena o 100 %, protože po registraci již noví členové získají okamžitý přístup k již vytvořenému obsahu. Využijte tak poslední možnost zapojit se do skupiny za startovací cenu.
A jaký obsah, kromě samotné technické podpory, zapojením do skupiny získáte?
20 tutoriálů věnovaných zejména základům Pythonu. V nich si na praktických příkladech vysvětlujeme, co to jsou proměnné, jak fungují podmínky, smyčky a výjimky. Ukázali jsme si, jak pracovat s textovými soubory a také princip logování, tedy sběru informací o výsledcích jednotlivých kroků našeho skriptu. Python dnes představuje hlavní komunikační prostředek ve světě financí a burzy. S jeho znalostí můžete dělat jak nejrůznější pokročilé analýzy svého obchodování, tak třeba obsluhovat pokročilé bezplatné platformy typu Quantopian (mj. jeden z tutoriálu obsahuje i kompletní systém právě pro Quantopian).
Věnovali jsme se také bezplatnému prostředí Jupyter Notebooku, který je ideální pro seznámení s Pythonem. Popsali jsme instalaci a následně celé prostředí pro snazší orientaci během práce se skripty. V několika tutoriálech popisujeme, jak používáme Jupyter Notebooky pro portfolio analýzu výsledků backtestů z Amibrokeru. Včetně publikování potřebných kódů, které pro toto využíváme.
Tutoriály jsou zaměřené i na další oblasti obchodování. U platformy TWS jsme si ukázali možnosti nastavení grafického rozhraní a také, jak automatizovat stažení reportů o provedených obchodech.
V TechLabu se pochopitelně hodně věnujeme Amibrokeru. Vysvětlili jsme si, na jakém principu funguje OLE Automation, tedy ovládání programu pomocí Python skriptu a také popsali, jak začít pracovat s Custom Backtester z pozice úplného začátečníka. Ukazujeme si postupně různé vychytávky z praxe – jak vizualizovat v Amibrokeru zajímavé situace a úrovně, jak testovat intradenní strategie, jak pracovat na taktikách řízení risku, jak sledovat korelace nebo jak vyhodnocovat metriky, které běžně v Amibrokeru dostupné nejsou.
Současně jsme publikovali tutoriály popisující nové funkce a pracovní postupy Autotraderu – skriptu, který používáme pro automatizaci zadávání příkazů do obchodní platformy. Samotný skript není v TechLabu ke stažení (vytváříme jej ve workshopu automatizace), ale i bez skriptu se můžete inspirovat, jak na automatizaci nahlížíme. Pro uživatele Autotraderu pak tutoriály představují další vysvětlení, jak jednotlivé části skriptu fungují a jak se skriptem pracovat (a upravovat si jej). Současně se mohou spolehnout, že mají k dispozici vždy rady autora skriptů i po skončení workshopu automatizace.
Jedno z vláken je věnováno oblasti virtuálních serverů (VPS). Podařilo se zde vytvořit seriál článků popisujících jednotlivé kroky k založení vlastního serveru. Příspěvky zde obsahují veškeré nastavení doložené sérií praktických ukázek a screenů.
Techlab zároveň poskytuje prostor i pro kódy ostatních traderů, kteří se zde mohou podělit s ostatními o zajímavé skripty usnadňující obchodování. Jeden z uživatelů zde publikoval vlastní doplněk k Autotraderu, který sleduje obchodní dny a zároveň automatizuje skenování signálů v závislosti na periodě obchodování konkrétní strategie. Jedná se o povedený skript, díky kterému nemusíme manuálně sledovat, zda se daný den mají možnost zadané příkazy zobchodovat a zároveň umožňuje obchodovat v rámci jednoho běhu Autotraderu strategie s různou časovou periodou. Můžeme tak v plně automatizovaném režimu, tedy bez našeho zásahu, obchodovat strategie pracující na denní, týdenní nebo měsíční bázi, a dokonce si můžeme definovat i konkrétní den spuštění v dané periodě.
V TechLabu jsme také vytvořili pracovní vlákno, jehož cílem je praktická ukázka práce s Python skriptem. Výsledkem by měl být obchodní deník, který automaticky načítá z platformy IB provedené obchody a umožní následné vyhodnocení jednotlivých pozic. Na vývoji skriptu se může podílet každý z účastníků skupiny, bez ohledu na úroveň znalosti programování. Aktuálně skript umí načíst provedené obchody, upravit záznamy do definovaného formátu a následně je uložit do databáze. V chystaném pokračování se pustíme do práce na vyhodnocení provedených obchodů a obchodních pozic.
TechLab toho tedy nabízí dnes již opravdu hodně. Každý týden se navíc můžete těšit na novou dávku tradingové inspirace a být s námi v průběžném kontaktu.
Jelikož každý nový účastník získá okamžitý přístup ke kompletnímu archivu tutoriálů, bude se cena přístupu postupně zvyšovat.
Pouze do 30.6.2020 máte možnost se do skupiny zapojit za startovací částku 125 Kč/týden + DPH (placeno vždy na tři měsíce). Tuto výši předplatného pak budete mít garantovou po celou dobu vašeho zapojení (i když ostatní budou postupně platit více). Od 1.7.2020 bude cena za prvotní zapojení do skupiny zvýšena o 100 %. Předplatné přístupu můžete pochopitelně kdykoliv ukončit. Určitě tak doporučujeme skupinu minimálně vyzkoušet.
Pro přihlášení použijte tuto registrační stránku.