Jednoduché tipy ako začať s Pythonom pre Algoritmické Obchodovanie

Jednoduché tipy ako začať s Pythonom

Tento úvodný článok je opisom mojej cesty k programovaniu v Pythone, a verím tomu, preto verím, že tu nájdeš užitočné tipy. Ak si sa už rozhodol ísť cestou algoritmického obchodovania, alebo ťa len zaujíma dátová veda pre zlepšenie tvojho tradingu, naučiť sa základy Pythonu sa ti určite zíde.

CZ-illustration-python-small.

Dovolím si pridať poznámku, že toto nie je návod na inštaláciu Pythonu, respektíve, opis čo je to Python, ako ho používať alebo prečo ho používať. 

 

V našich článkoch píšeme o témach, ktoré sa ťažko hľadajú na Google, pretože sa snažíme, aby mali pre teba pridanú hodnotu. Ide hlavne o články so zameraním na financie, užitočné pre kvantitatívnych analytikov alebo traderov. 

 

Najrýchlejšou a najzábavnejšiou cestou je učiť sa cez riešenie problémov. Neboj sa ak si úplný začiatočník, prejdeme veľa užitočných tém, akurát sa priprav veľa googliť. Náš web je momentálne anglicko-český (slovenský), takže veľa článkov bude dvojjazyčne. Chcem však v tomto úvodnom článku upozorniť, že pre pokročilejší Python sa s česko-slovenčinou už nezaobídeme a väčšina článkov bude teda len v angličtine.

Veľa googli!

Musím priznať, že moje programatorske začiatky neboli z úplne inej oblasti – študoval som aplikovanú matematiku, takže som mal niekoľko hodín v Jave, avšak iba 2 semestre. 

S Pythonom som mal nulové skúsenosti. Stiahol som ho, tri dni som čítal nejaké základy, pozeral tutoriály a začal programovať. Áno, je to tak jednoduché, stačí len začať. Všetko čo potrebuješ k úplným základom Pythonu je voľne dostupné na Google. Každý programátor môže mať zaslúžene druhý titul a to “profesionálny googlič”.

Ak si si teda niekedy kládol otázku, či je normálne toľko googliť, tak moja odpoveď je áno, je to úplne normálne.

Rob každú úlohu v pythone

Potom, čo si sa naučil nejake základy ako syntax, základné funkcie a pod., je načase začať robiť všetky úlohy v Pythone. Aj jednoduché úlohy budú trvať zo začiatku dlhšie, ale rýchlo zistíš, koľko veľa si sa toho naučil len skúšaním.

 

Neučíš sa totižto len programovací jazyk, ale aj ako riešiť problémy, ako programovať. Python je len typ cudzieho jazyka, ako angličtina alebo španielčina (také C++ je niečo ako čínština – je to ťažšie avšak dokáže to vytvoriť všetko čo si vieš predstaviť). Ak nie si študent, ale študoval si niečo s technickým zameraním, používal nejaký software, tak si pozri svoje staré poznámky a pokús sa to, čomu rozumieš, resp. kedysi dávno si rozumel, preprogramovať do Pythonu. 

 

Nemusíš sa inšpirovať len štúdiom, ale aj prácou. Ak je tvoje zameranie úplné ine, netechnické, bez aspoň základnej matematiky, tak začni s matematikou, budeš ju pre obchodovanie potrebovať (základná matematika, pravdepodobnosť a štatistika).

 

Teraz sa možno pýtaš:

"Musím mať matematický základ?"

Záleží na tom čomu sa chceš venovať – ak chceš napríklad robiť strojové učenie pre algoritmické obchodovanie a nevieš matematiku, optimalizáciu, algebru, kalkulus, štatistiku a programovať, tak to potrvá roky. Ak máš solídny matematický základ ako ja, tak pochopenie väčšiny metodológií strojového učenia bude pre teba príjemné večerné čítanie.

Tu sa zastavím, pretože táto téma je veľmi pokročilá a zároveň sa nepovažujem za vhodnú osobu, ktorá by ťa mala učiť ako začať so strojovým učením. Avšak nepotrebuješ strojové učenie aby si bol úspešný algo-obchodník (so strojovým učením prichádza mnoho problémov, ako obrovské množstvo vysoko kvalitných dát, spolu s alternatívnymi dátami sa treba pripraviť na veľké náklady). 

Najlepšie fungujúce algoritmy a aj najúspešnejšie sú jednoduché a majú nejakú fundamentálnu logiku. Čím sú jednoduchšie, majú menej vstupných parametrov, menej problémov s biasom, pretrénovaním (overfitting) a podobne. 

 

Hovorim z vlastnej skúsenosti na konkrétnej obchodnej stratégií – využil som pokročilé dáta, vytvoril veľmi kvalitný model strojového učenia, bez biasov s využitím všetkých mojich skúseností, a stále to neporáža model s jednoduchou logikou, na ktorý som nepotreboval vedieť pokročilo programovať. 

 

Nájsť jednoduchú, dobre fungujúcu logiku je však ťažšie než vytvoriť nejaké algoritmy strojového učenia.

 

V našich článkoch nájdeš veľa pokročilých oblastí, avšak namiesto podrobného vysvetľovania teórie sa na ne pozrieme prakticky. Ak to bude pre teba veľmi pokročilé, avšak si odhodlaný naučiť sa to, tak to problém nebude.

Nežiadaj o pomoc

Vec, ktorá mne osobne najviac pomohla a fungovala pre mňa, bola nežiadať o pomoc a vysvetlenie pokročilejších, ale urobiť to sám. Túto metódu som nikde nevidel a nečítal o nej, no fungovala pre mňa najlepšie, a preto sa chcem s tebou o ňu podeliť. 

Moja prvá úloha mi trvala tak 3 hodiny namiesto 10 minút, druhá už len 2 a pol a tretia už len hodinu. Chápeš kam tým mierim? Väčšinu som sa naučil popri tom ako som hľadal riešenie na čiastočné problémy v úlohe, keď ti to však niekto povie tak sa ukrátiš o to aby si sa to naozaj naučil. Čím skôr sa naučís správne googliť, tým skôr sa naučíš programovať. 

Moja záverečná rada, resp. tip z tohto článku je: hľadaj odpovede všade kde to je možné, avšak rob to sám.

Leave a comment