63 - Zvláštnosti vývoje algoritmického automatu
MP3•Головна епізоду
Manage episode 317998366 series 110804
Вміст надано Kafemlejnek.TV. Весь вміст подкастів, включаючи епізоди, графіку та описи подкастів, завантажується та надається безпосередньо компанією Kafemlejnek.TV або його партнером по платформі подкастів. Якщо ви вважаєте, що хтось використовує ваш захищений авторським правом твір без вашого дозволу, ви можете виконати процедуру, описану тут https://uk.player.fm/legal.
V tomto dílu se s Františkem soustředíme především na zásadní rozdíly v přístupu k vývoji aplikace pro algoritmické obchodování a běžnými enterprise aplikacemi, které pravděpodobně vytváří řada z nás. Františkova předchozí kariéra se odehrávala především v bankovním sektoru v oblasti elektronického bankovnictví. Vývoj podobných webových aplikací si každý z nás v dnešní době už asi umí představit, v případě bankovnictví je práce okořeněná navíc jen větším důrazem na kvalitu výstupu a bezpečnost. Co je tedy tak odlišného při psaní obchodovacího automatu?! Jednou ze zajímavostí je to, že pokud optimalizujete obchodovací algoritmus na rychlost (latenci), vyplatí se v tomto segmentu znovu vynalézat kolo. Vymýšlení vlastních optimalizovaných řešení, místo použití generických knihoven, může ve svém výsledku přinést v kritických momentech několik mikrosekund náskoku, který umožní algoritmu vyhrát v konkurenci ostatních. František také bez uzardění přiznává, že teprve při psaní algotradingové aplikace se naučil reálně programovat. Teprve tady si skutečně sáhnul na vlastní implementaci B-stromů a řadu dalších low-level datových struktur a algoritmů, které my ostatní používáme zaobalené do high-level knihoven aniž bychom o tom leckdy sami věděli. Další z překvapivých momentů je ten, že chyba aplikace s potenciální finanční ztrátou, může být pro zadavatele – obchodníky bez problémů akceptovatelná. Pokud na druhé straně dostanou novou verzi aplikace s úpravami, které jim umožní obchodovat s náskokem oproti ostatním a potenciálně vydělat násobně víc. Dozvíme se, že na první pohled složité optimalizace nemusí v Javě ve výsledku až tak bolet. Jednou formou zpomalení v aplikacích obecně jsou systémová volání kernelu (context switch). Při psaní aplikací, které vyžadují nekompromisní výkon (jakými jsou např. i databáze) se doporučuje minimalizovat počet systémových volání kernelu a co lze si spravovat aplikačně sami. František zmiňuje existenci síťových karet, které si umí samy generovat časový otisk (dotaz na aktuální čas totiž obvykle vyžaduje právě systémové volání) a možnost vyjmout síťovou kartou ze správy kernelem a spravovat si ji nativně aplikací přes C knihovnu implementující TCP/IP stack. Tímto způsobem je možné se dostat i na řádově lepší rychlosti. Věříme, že tento druhý díl, pohladí na duši všechny tech-geeky mezi našimi posluchači. Tento díl vám přináší Luhačovická pražírna kávy. Kávové předplatné můžete spolu s Feršem a Novojem vychutnávat společně. Při zadání slevového kódu “kafemlejnek” v košíku dostanou naši posluchači exklusivní slevu 15%.
…
continue reading
69 епізодів