Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Archiv článků Psychologie obchodování Jak na obchodní plán Mé obchodní strategie
  • Bezplatný Quandl a jeho nasazení do „workflow“ hledání korelací

    Většina algoritmických obchodníků se snaží využívat co největší množství dat a hledat souvislosti zapadající do jejich obchodních přístupů. V tomto článku bych proto rád upozornil na server Quandl nabízející bezplatně ohromné množství databází, které coby obchodníci můžeme využít.

    Dnes je k dispozici množství informací a dat, která můžeme jako obchodníci využívat do svých algoritmů, skutečně veliké. Pochopitelně, že existuje řada placených zdrojů, ale i mnoho cest, jak dostat data zdarma. V druhé jmenované kategorii doporučuji nepřehlédnout www.quandl.com nabízející množství bezplatných databází extrémně snadno zakomponovatelných do našich „workflow“ a analytických nástrojů.

    Quandl prakticky agreguje data z různých zdrojů a poskytuje k nim jednotný přístup. Pokud analyzujete data například v Excelu, tak nemusíte řešit, jak změnit kódy pro přístup k datům futures a měnám například poté, co jste doanalyzovali akciová data z yahoo a podobně. Quandl vám poskytne jednoduché, stále stejně volané rozhraní. Přičemž s veřejnými databázemi lze pracovat zdarma, navíc systém nabízí i komerční databáze. Přehled všech databází naleznete na této adrese: https://www.quandl.com/browse

    Jak jsem na Finančníkovi již několikrát psal, sám jsem přešel z analýzy dat v Excelu na Python. A v souvislosti s daty z Quandl mi přijde příhodné ukázat, jak snadno se v těchto bezplatných nástrojích analyzují data a že z mého pohledu stojí zato jim věnovat pozornost. Tedy myšleno směrem k těm traderům, kteří jsou stejně jako já neprogramátoři. Právě nám, neprogramátorům, zprostředkovávají podobné nástroje možnosti, jak stále velmi efektivně pracovat s daty (a programátorům samozřejmě cesty, jak provádět datové analýzy velmi komplexně). Byť pochopitelně je třeba nastudovat základy syntaxe práce v daném prostředí – bez toho nelze pracovat ani v Excelu.

    Pojďme se podívat, jak třeba získat odpověď na jednoduchou otázku – které akcie spolu vysoce korelují v některém z běžných akciových indexů? Tedy v zásadě rutinní výpočty nezbytné pro přístupy vycházející z intermarket analýzy.

    Pro zjednodušení použiji index Dow Jones neobsahující příliš akcií. Přehled tickerů a jejich označení v Quandlu mohu získat například na této adrese: https://www.quandl.com/blog/useful-lists. Konkrétně zde je seznam akcií z indexu Dow Jones (k 11.11.2015), ale jak vidíte na výše linkované stránce, lze stejným způsobem použít výpočet na indexy typu S&P 500, Nasdaq, FTSE 100 a pochopitelně i další trhy (kdy u některých si přehled tickerů musím vytvořit sám).

    Co tedy nyní potřebuji v Pythonu pro to, abych zjistil korelace mezi akciemi? Dopředu se omlouvám zkušeným programátorům za uveřejněný kód – je mi jasné, že to jde určitě i výrazně jednodušeji. Smyslem článku je ale ukázat, že k řešení se může snadno dostat právě i „poučený uživatel“/neprogramátor.

    V Pythonu na začátku načtu moduly, které jsou bezplatně k dispozici a které připravili zkušení programátoři. Například modul pandas slouží k analýze finančních dat. „quandl.ApiConfig.api_key“ slouží k identifikaci do Quandlu (a získáte jej zdarma při registraci):

    quandl1.jpg

    Ze stránek Quandlu jsem si stáhl csv obsahující tickery, které chci zkoumat. Načtení celého csv tak, abych s ním mohl pracovat v Pythonu, je otázka jednoho příkazu:

    quandl2.jpg

    Nepatrně složitější smyčka, kdy vezmu tickery z načteného souboru a přes funkci quandl.get stáhnu data v uvedeném testovaném rozsahu z quandlu:

    quandl3.jpg

    A jsem prakticky na konci. Stačí vypočíst korelaci mezi trhy. Na vše jsou funkce, takže jen zavolám funkci corr na proměnnou data, do které jsem si uložil data stažená z Quandlu:

    quandl4.jpg

    Nyní mám korelace spočítané v proměnné corr. Mohu si je zobrazit jako číselnou matici, nebo třeba jednoduše jako heatmapu:

    quandl5.jpg

    Teď ještě vybrat kombinace, které mají například korelaci vyšší než 0,9 a zároveň se nejedná o pár složený na obou stranách ze stejné akcie. Na to stačí dva řádky kódu:

    quandl6.jpg

    V proměnné vyber mám pak vybrané trhy, které mezi sebou mají korelaci podle zadaných kritérií:

    quandl7.jpg

    Tedy například MMM a CVX, MMM a DD, CVX a DD atd.

    Pochopitelně, že pokud toto člověk studuje poprvé, tak některé syntaxe vypadají nesrozumitelně. Stejně, jako když se poprvé budeme snažit vytvořit nějaký kód v Excelovém VBA. Nicméně na uvedeném příkladu je zřejmé, že podobné datové analýzy jsou s uvedenými nástroji poměrně jednoduché a dají se naučit (sám jsem toho důkazem…). Ano, na řadu věcí lze používat části komerčních programů, ale za sebe si myslím, že základy analýzy dat patří mezi povinné učivo všech, kteří na nich chtějí vydělávat.

    15.5.2016

    Petr Podhajský

    Fulltime obchodník věnující se tradingu více než 20 let. Specializace na systematické strategie obchodované na futures a akciích. Oblíbený styl obchodování: stavba automatizovaných portfolio systémů, které využívá i při správě většího externího kapitálu.


    Sdílíme, co nám samotným funguje.
    7 výukových lekcí.

    Jak reálně uspět v tradingu?

    Naučte se vydělávat na své sny (naše metody na Finančník.cz)

    Praktický návod, jak v trzích získat šanci vydělávat stovky tisíc až miliony dolarů ročně bez vlastního kapitálu a nutností trávit denně hodiny před počítači (bez práce to ale nepůjde).

    >> Získat kurz zdarma <<

    Další články na toto téma

    Alpha Vantage – zajímavý zdroj bezplatných dat (včetně intradenních)

    Situace s daty nebyla nikdy úplně jednoduchá. Burzy si je chránily a bylo jen velmi málo zdrojů, kde byla data k dispozici. Bohužel často jen v denních timeframe. Poslední roky se situace naštěstí výrazně mění. Jedním z bezplatných zdrojů dat, které v současné době využívám, je Alpha Vantage.
    Alpha Vantage naleznete na https://www.alphavantage.co. Jde o službu nabízející skrz své API různá bezplatná data. Z mého pohledu jsou nejzajímavější data akcií, které se zde nabízejí i v intradenních a nezpožděných formátech. Dále na Alpha Vantage naleznete fx data, kryptoměny a předpočítané indikátory.
    Data jsou k dispozici zdarma v rozsahu 5 dotazů za minutu nebo 500 dotazů za den. S tím se dá už solidně pracovat. Případně je možné si připlatit za prémiové plány umožňující stahovat více dat.
    Alpha Vantage je příkladem služby, která je zajímavá a nabízí zdarma až překvapivě rozsáhlé a kvalitní služby. Na druhou stranu o ní naleznete minimum informací, a tak je třeba počítat i s tím, že podobná služba může jednou rychle skončit nebo se nějak transformovat (na druhou stranu funguje již několik let).
    To však nevnímám jako příliš zásadní, protože data jsou čerpána přes API a pokud přestanou fungovat, je možné se rychle přeorientovat na jinou službu.
    API znamená programové rozhraní aplikace. Tedy určité popsané rozhraní, na které můžeme posílat své dotazy a systém vrací odpovědi (v našem případě data).
    Jak tedy dostat data například z Alpha Vantage řekněme do Amibrokeru nebo jiného programu? Pokud výrobce nepřidá konkrétní službu do svého programu (jako že třeba Amibroker nativně Alpha Vantage nepodporuje), musíme si pomoci sami. A není to příliš složité.
    Sám na tyto účely používám programovací jazyk Python. Pro ten existuje již hotový wrapper: https://github.com/RomelTorres/alpha_vantage
    A jelikož dnes již řada obchodníků na Finančníkovi také s Pythonem pracuje, zde je krátký postup, jak data získávat. Nejprve si nainstalujte alpha vantage wrapper příkazem:
    pip install alpha_vantage Zaregistrujte se na stránce Alpha Vantage a se získaným klíčem můžete například takto stáhnout dvacetiletou historii dat trhu SPY do txt souboru:
    from alpha_vantage.timeseries import TimeSeries ts = TimeSeries(key='VAS_API_KLIC', output_format="pandas") data, meta_data = ts.get_daily_adjusted(symbol='SPY', outputsize='full') data.to_csv('spy.txt') V datech jsou také informace o dividendách a splitech:

    Textový soubor pak jednoduše naimportujete do Amibrokeru přes File > Import ASCII
    Pochopitelně, že python soubor lze spouštět automaticky například přes plánovač úloh. Stahovat lze také najednou více tickerů (stačí do souboru udělat jednoduchou smyčku).  A soubory do Amibrokeru je také možné importovat automaticky přes zabudovaný plánovač.
    Nebo lze data používat pro rychlé prototypování nápadů v Jupyter Notebooku (na to je nejvíce používám sám). Toto funguje spolehlivě a především opravdu extrémně jednoduše.
×
×
  • Vytvořit...