Začněte nyníZačněte zdarma

Vytvoř vlastní indikátor – I

Dosud jsi pracoval/a s indikátory, které byly celé předpřipravené a stačilo je přidat pomocí funkce add.indicator(). Teď přišel čas napsat a nasadit vlastní indikátor.

Tvoje funkce indikátoru vypočítá průměr dvou různých indikátorů a vytvoří tak RSI o hodnotě 3,5. Postup je následující:

  • Přijmi sérii cen.
  • Vypočítej RSI 3.
  • Vypočítej RSI 4.
  • Vrať průměr RSI 3 a RSI 4.

Tento RSI si lze představit jako RSI 3,5 – je delší než RSI 3 a kratší než RSI 4. Průměrováním tento indikátor zohledňuje dopad před čtyřmi dny a zároveň zůstává rychlejší než jednoduché RSI 4. Navíc potlačuje šum přítomný v obou hodnotách – RSI 3 i RSI 4.

V tomto cvičení vytvoříš funkci pro tento indikátor s názvem calc_RSI_avg() a přidáš ji do strategie strategy.st. Všechny potřebné balíčky jsou už načteny.

Toto cvičení je součástí kurzu

Finanční obchodování v R

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř a pojmenuj funkci calc_RSI_avg se třemi argumenty price, n1 a n2 v tomto pořadí.
  • Vypočítej RSI se zpětným pohledem n1 a pojmenuj ho RSI_1.
  • Vypočítej RSI se zpětným pohledem n2 a pojmenuj ho RSI_2.
  • Vypočítej průměr RSI_1 a RSI_2 a ulož ho jako RSI_avg.
  • Nastav název sloupce RSI_avg na RSI_avg pomocí colnames() a vrať RSI_avg.
  • Přidej tento indikátor do své strategie s hodnotami n1 = 3 a n2 = 4. Jako popisek indikátoru použij RSI_3_4.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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 = ___)
Upravit a spustit kód