Vytvorte súbor [priezvisko]-7.R a naprogramujte v ňom nasledovné (použite dáta pre Vami vybraný menový kurz):
1a) Naprogramujte funkciu calcTrends(ohlc, extr, nbarsSwing=3), ktorá pre každú sviečku zistí, či je v nejakom trende alebo nie; jej výsledkom bude factor s možnými hodnotami "up", "down", "none". Funkciu zaimplementujte nasledovne:
- zavolajte postupne funkcie calcTrendSwings(), calcTrendStarts(), calcTrendEnds(), analogicky ako v kóde z poslednej prednášky;
- pripravte si premennú result typu factor, s dĺžkou nohlc (nohlc je počet riadkov v ohlc), nastavenú všade na "none";
- v cykle cez jednotlivé k (od 1 po počet swingových extrémov): ak ide o up-trend, vyplňte result hodnotou "up" na indexoch od starts[k] po ends[k] (vrátane); analogicky ak ide o down-trend.
1b) Naprogramujte funkciu plotTrends(trends), ktorá pre každú sviečku v up-trende nakreslí modrú šípku nahor v dolnej časti obrázka, a pre každú sviečku v down-trende nakreslí červenú šípku nadol v hornej časti obrázka (podobne, ako je to v súbore s kódom z prednášky).
1c) Naprogramujte funkciu calcProfit(ohlc, trends, detail=FALSE), ktorá spočíta celkový zisk nasledujúcej obchodnej stratégie:
- ak je daná sviečka v up-trende, pri otváracej cene vstúpime do long pozície a vystúpime z nej pri close cene (tým zrealizujeme zisk rovný rozdielu close-cena mínus open-cena);
- opačne ak je sviečka v down-trende;
- ak sviečka nie je ani v up-trende ani v down-trende, nedržíme žiadnu pozíciu (zisk za danú sviečku je teda 0).
Pritom ak parameter detail je TRUE, funkcia vráti celkový zisk; ak parameter detail je FALSE, funkcia vráti zisky za každú sviečku zvlášť (tj. vráti číselný vektor s dĺžkou rovnou počtu sviečok).
2a) Pre štvrťročné dáta Vášho kurzu zobrazte ohlc-graf a vyznačte v ňom up-trendy a down-trendy (funkciou z (1b)). Spočítajte zisky stratégie z (1c); vypíšte celkový zisk, ale aj podrobne - vo forme data-frame, kde riadky zodpovedajú jednotlivým sviečkam a stĺpce sú trend (factor up/down/none) a zisk. Obrázok uložte a dáta zapíšte do R-súboru vo forme komentára.
2b) Zopakujte (2a) pre mesačné dáta.
3a) Zopakujte (2a) pre týždenné dáta, ale už bez podrobného výpisu ziskov. Pritom nevytvorte jeden ohlc-graf, ale vytvorte viac grafov; každý graf by mal obsahovať maximálne 200-250 sviečok; využite pritom parameter xlim funkcie plotOhlc(). Všetky tieto grafy uložte do spoločného pdf (to dosiahnete tak, že na začiatku zavoláte funkciu pdf(), vykreslíte všetky grafy a až nakoniec zavoláte dev.off()).
3b) Zopakujte (3a) pre denné dáta.
Všetky výsledky uložte do R-súboru vo forme komentára, hneď za príslušným R-kódom. Pri riešení nepoužite žiadnu z externých R-knižníc; využiť môžete funkcie zo súboru r1-functions-v11.R, prípadne kód z prednášky.
R-súbor spolu s PDF-súbormi obrázkov zazipujte do súboru s názvom [priezvisko]-7.zip a pošlite na email vladimir.spitalsky (doména umb.sk) do 28.4.2019.