ÎncepețiÎncepe gratuit

Utilizarea sigCrossover

Un filtru lung este necesar, dar nu și suficient pentru a intra într-o tranzacție în cadrul acestei strategii. Totuși, în momentul în care condiția nu mai este îndeplinită, strategia nu ar trebui să mențină nicio poziție. În acest exercițiu, vei implementa opusul regulii definite anterior, folosind funcția sigCrossover().

Spre deosebire de sigComparison(), care indică în permanență dacă o condiție este îndeplinită sau nu, sigCrossover() generează un semnal pozitiv doar în momentul în care condiția se îndeplinește pentru prima dată, și nu ulterior. Acest lucru este util pentru semnalele care inițiază o tranzacție, deoarece, în cele mai multe cazuri, vrei ca tranzacția să fie declanșată o singură dată, nu repetat.

În acest caz, vei implementa funcția sigCrossover() specificând că SMA50 traversează în jos SMA200. Vei eticheta acest semnal filterexit, deoarece va ieși din poziție atunci când filtrul mediei mobile indică faptul că mediul nu este favorabil menținerii unei poziții.

Acest exercițiu face parte din cursul

Tranzacționare financiară în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește add.signal() pentru a adăuga un semnal sigCrossover care să specifice că SMA50 traversează în jos SMA200.
  • Etichetează acest semnal filterexit.

Exercițiu interactiv practic

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

# 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 = "___")
Editează și rulează codul