ÎncepețiÎncepe gratuit

Creează propriul indicator - I

Până acum, ai folosit indicatori complet pre-scrisi, prin intermediul funcției add.indicator(). Acum e momentul să scrii și să aplici propriul tău indicator.

Funcția ta indicator va calcula media aritmetică a doi indicatori diferiți, pentru a crea un RSI de 3,5. Iată cum funcționează:

  • Primești o serie de prețuri.
  • Calculezi RSI 3.
  • Calculezi RSI 4.
  • Returnezi media lui RSI 3 și RSI 4.

Acest RSI poate fi considerat un RSI 3,5, deoarece este mai lung decât un RSI 3 și mai scurt decât un RSI 4. Prin mediere, indicatorul ia în calcul impactul zilei de acum patru zile, rămânând totodată mai rapid decât un simplu RSI 4 și eliminând zgomotul specific atât RSI 3, cât și RSI 4.

În acest exercițiu, vei crea o funcție pentru acest indicator numită calc_RSI_avg() și o vei adăuga la strategia ta strategy.st. Toate pachetele necesare sunt deja încărcate.

Acest exercițiu face parte din cursul

Tranzacționare financiară în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează și denumește o funcție calc_RSI_avg cu trei argumente: price, n1 și n2, în această ordine.
  • Calculează un RSI cu lookback n1, pe care îl vei numi RSI_1.
  • Calculează un RSI cu lookback n2, pe care îl vei numi RSI_2.
  • Calculează media lui RSI_1 și RSI_2. Numește rezultatul RSI_avg.
  • Setează numele coloanei din RSI_avg la RSI_avg folosind colnames(), apoi returnează RSI_avg.
  • Adaugă acest indicator la strategia ta folosind valorile n1 = 3 și n2 = 4. Etichetează indicatorul cu RSI_3_4.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Write the calc_RSI_avg function
calc_RSI_avg <- function(price, n1, n2) {
  
  # RSI 1 takes an input of the price and n1
  RSI_1 <- RSI(price = price, n = ___)
  
  # RSI 2 takes an input of the price and n2
  RSI_2 <- RSI(price = price, n = ___)
  
  # RSI_avg is the average of RSI_1 and RSI_2
  RSI_avg <- (___ + ___)/2
  
  # Your output of RSI_avg needs a column name of RSI_avg
  colnames(RSI_avg) <- "___"
  return(___)
}

# Add this function as RSI_3_4 to your strategy with n1 = 3 and n2 = 4
add.indicator(strategy.st, name = ___, arguments = list(price = quote(Cl(mktdata)), n1 = ___, n2 = ___), label = ___)
Editează și rulează codul