1. Learn
  2. /
  3. Cursuri
  4. /
  5. Tranzacționare financiară în R

Connected

exercițiu

Creează-ți propriul indicator - II

Deși RSI este un indicator decent, este oarecum depășit în peisajul actual al indicatorilor. În acest exercițiu, vei implementa de la zero o versiune simplificată a unui alt indicator. Acesta se numește David Varadi Oscillator (DVO) și a fost creat de David Varadi, director de cercetare cantitativă.

Scopul acestui oscilator este similar cu cel al RSI: încearcă să identifice oportunități de cumpărare la scăderi temporare și de vânzare în tendințe ascendente temporare. Pe lângă datele de piață obligatorii, funcția oscilatorului primește două perioade de retrospectivă.

În primul rând, funcția calculează un raport între prețul de închidere și media prețurilor maxim și minim. Apoi aplică o SMA asupra acestei valori pentru a reduce zgomotul, de obicei pe un interval de timp foarte scurt, cum ar fi două zile. În final, folosește funcția runPercentRank() pentru a calcula rangul procentual rulant al acestui raport mediu și înmulțește rezultatul cu 100, obținând o valoare între 0 și 100.

Gândește-te la modul în care studenții primesc scoruri percentilice după un test standardizat (de exemplu, dacă un student obține 800 la secțiunea de matematică, s-ar putea afla în percentila 95 la nivel național). runPercentRank() face același lucru, dar în timp. Acest indicator oferă rangul celei mai recente observații în raport cu o perioadă trecută specificată de utilizator. De exemplu, dacă o valoare are un runPercentRank de 0,90 cu o perioadă de retrospectivă de 126, înseamnă că se află în percentila 90 față de ea însăși și față de cele 125 de observații anterioare.

Sarcina ta este să implementezi acest indicator și să îl salvezi ca DVO. O parte din codul necesar este deja furnizat, iar pachetele quantstrat, TTR și quantmod sunt încărcate în spațiul tău de lucru.

Instrucțiuni

100 XP
  • Creează și denumește o funcție, DVO, pentru indicatorul descris mai sus. Cele trei argumente ale funcției vor fi HLC, navg (implicit 2) și percentlookback (implicit 126).
  • Raportul dintre prețul de închidere (Cl()) al HLC și media prețurilor maxim (Hi()) și minim (Lo()) este deja calculat pentru tine.
  • Folosește SMA() pentru a implementa o medie mobilă a acestui raport, parametrizată prin argumentul navg. Salvează rezultatul ca avgratio.
  • Folosește runPercentRank() pentru a implementa un sistem de clasificare procentuală pentru avgratio.