Zacznij terazZacznij za darmo

Używanie sigCrossover

Obecność długiego filtra jest warunkiem koniecznym, ale nie wystarczającym, aby strategia zajęła pozycję. W chwili, gdy warunek przestaje być spełniony, strategia powinna natychmiast zamknąć wszelkie otwarte pozycje. W tym ćwiczeniu zaimplementujesz regułę odwrotną do tej określonej powyżej, korzystając z funkcji sigCrossover().

W odróżnieniu od sigComparison(), która na bieżąco informuje o tym, czy dany warunek jest spełniony, sigCrossover() zwraca wartość pozytywną tylko w momencie pierwszego wystąpienia sygnału – i już nie powtarza tego w kolejnych krokach. Jest to przydatne w przypadku sygnałów inicjujących transakcje, gdy chcesz, aby dana transakcja została wykonana tylko raz, a nie wyzwalana wielokrotnie.

W tym przypadku zaimplementujesz funkcję sigCrossover(), określając, że SMA50 schodzi poniżej SMA200. Nadasz temu sygnałowi etykietę filterexit – sygnał ten będzie zamykał pozycję w momencie, gdy filtr oparty na średnich ruchomych wskaże, że warunki rynkowe nie sprzyjają utrzymaniu pozycji.

To ćwiczenie jest częścią kursu

Handel finansowy w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj add.signal(), aby dodać sygnał sigCrossover określający, że SMA50 schodzi poniżej SMA200.
  • Nadaj temu sygnałowi etykietę filterexit.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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 = "___")
Edytuj i uruchom kod