Aan de slagGa gratis aan de slag

sigCrossover gebruiken

Een longfilter is nodig, maar niet genoeg om in deze strategie een trade te openen. Op het moment dat de voorwaarde niet meer geldt, mag de strategie echter helemaal geen positie meer aanhouden. In deze oefening implementeer je de omgekeerde regel van hierboven met de functie sigCrossover().

In tegenstelling tot sigComparison(), dat altijd aangeeft of een voorwaarde geldt of niet, geeft sigCrossover() alleen een positief signaal op het moment dat het signaal voor het eerst optreedt, en daarna niet opnieuw. Dat is handig voor een signaal dat een transactie moet starten, omdat je in de meeste gevallen slechts één transactie wilt, in plaats van dat transacties steeds opnieuw worden getriggerd.

In dit geval implementeer je de functie sigCrossover() met de specificatie dat de SMA50 onder de SMA200 kruist. Je geeft dit signaal het label filterexit, omdat het je positie sluit wanneer het voortschrijdend-gemiddeldefilter aangeeft dat de marktomgeving ongunstig is om een positie aan te houden.

Deze oefening maakt deel uit van de cursus

Financieel traden in R

Cursus bekijken

Oefeninstructies

  • Gebruik add.signal() om een sigCrossover toe te voegen waarin je specificeert dat de SMA50 onder de SMA200 kruist.
  • Geef dit signaal het label filterexit.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
           
           # We're interested in the relationship between the SMA50 and the SMA200
           arguments = list(columns = c("___", "___"),
                            
                            # The relationship is that the SMA50 crosses under the SMA200
                            relationship = "___"),
           
           # Label it filterexit
           label = "___")
Code bewerken en uitvoeren