Kom igångKom igång gratis

Koda din egen indikator – I

Hittills har du använt indikatorer som redan är färdigskrivna, via funktionen add.indicator(). Nu är det dags att skriva och tillämpa en egen indikator.

Din indikatorfunktion beräknar medelvärdet av två olika indikatorer för att skapa ett RSI på 3,5. Så här fungerar det:

  • Ta emot en prisserie.
  • Beräkna RSI 3.
  • Beräkna RSI 4.
  • Returnera medelvärdet av RSI 3 och RSI 4.

Detta RSI kan ses som ett RSI 3,5, eftersom det är längre än RSI 3 men kortare än RSI 4. Genom att ta medelvärdet tar indikatorn hänsyn till påverkan från fyra dagar sedan, men reagerar ändå snabbare än ett enkelt RSI 4. Dessutom minskar brus från både RSI 3 och RSI 4.

I den här övningen skapar du en funktion för denna indikator som kallas calc_RSI_avg() och lägger till den i din strategi strategy.st. Alla relevanta paket är redan inlästa åt dig.

Den här övningen är en del av kursen

Finansiell handel i R

Visa kurs

Övningsinstruktioner

  • Skapa och namnge en funktion calc_RSI_avg med tre argument: price, n1 och n2, i den ordningen.
  • Beräkna ett RSI med tillbakablicksperiod n1 och döp det till RSI_1.
  • Beräkna ett RSI med tillbakablicksperiod n2 och döp det till RSI_2.
  • Beräkna medelvärdet av RSI_1 och RSI_2. Kalla detta RSI_avg.
  • Sätt kolumnnamnet för RSI_avg till RSI_avg med hjälp av colnames() och returnera RSI_avg.
  • Lägg till indikatorn i din strategi med indata n1 = 3 och n2 = 4. Ge indikatorn etiketten RSI_3_4.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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 = ___)
Redigera och kör kod