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

Použití sigCrossover

Splnění podmínky dlouhého filtru je sice nutné, ale nestačí k otevření pozice v této strategii. Jakmile ale tato podmínka přestane platit, strategie by neměla držet žádnou pozici. V tomto cvičení implementuješ opak výše uvedeného pravidla pomocí funkce sigCrossover().

Na rozdíl od sigComparison(), která průběžně vyhodnocuje, zda podmínka platí či nikoli, sigCrossover() vrátí kladný signál pouze v okamžiku, kdy podmínka poprvé nastane – a poté už ne. To se hodí pro signály, které spouštějí transakci: ve většině případů chceš jednu transakci, ne sérii opakovaných příkazů.

V tomto případě implementuješ funkci sigCrossover() tak, aby zachytila moment, kdy SMA50 klesne pod SMA200. Signál pojmenuješ filterexit, protože ukončí tvoji pozici ve chvíli, kdy filtr klouzavého průměru indikuje, že podmínky pro držení pozice nejsou příznivé.

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

Finanční obchodování v R

Zobrazit kurz

Pokyny k cvičení

  • Pomocí add.signal() přidej signál sigCrossover, který zachytí moment, kdy SMA50 klesne pod SMA200.
  • Pojmenuj tento signál filterexit.

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

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

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