ComeçarComece de graça

Executando sua estratégia

Parabéns por criar uma estratégia no quantstrat! Relembrando: sua estratégia usa três indicadores e cinco sinais separados. A estratégia exige que o limiar do indicador DVO_2_126 esteja abaixo de 20 e que a SMA50 seja maior que a SMA200. A estratégia vende quando o DVO_2_126 cruza acima de 80, ou quando a SMA50 cruza abaixo da SMA200.

Para que essa estratégia funcione corretamente, você definiu cinco sinais:

  1. sigComparison para SMA50 maior que SMA200;
  2. sigThreshold com cross definido como FALSE para DVO_2_126 menor que 20;
  3. sigFormula para combiná-los e definir cross como TRUE;
  4. sigCrossover com SMA50 menor que SMA200; e
  5. sigThreshold com cross definido como TRUE para DVO_2_126 maior que 80.

A estratégia investe US$ 100.000 (seu initeq) em cada operação, e pode haver um pequeno price averaging em dólares se o DVO_2_126 oscilar em torno de 20 (embora o efeito seja em grande parte desprezível em comparação com a alocação inicial).

Neste último capítulo, você vai aprender como visualizar os resultados reais do seu portfólio. Mas antes, para gerar os resultados, você precisa executar sua estratégia e preencher mais um pouco de código padrão para garantir que o quantstrat registre tudo. O código deste exercício é algo que você terá que copiar e colar no futuro.

Este exercício faz parte do curso

Negociação financeira em R

Ver curso

Instruções do exercício

  • Use applyStrategy() para aplicar sua estratégia (strategy.st) ao seu portfólio (portfolio.st). Salve isso no objeto out.
  • Execute as funções necessárias para registrar os resultados da sua estratégia, incluindo updatePortf() e a definição do daterange, além de updateAcct() e updateEndEq().
  • Com base nessas informações, veja se você consegue encontrar a data da última operação.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Use applyStrategy() to apply your strategy. Save this to out
out <- applyStrategy(strategy = ___, portfolios = ___)

# Update your portfolio (portfolio.st)
updatePortf(___)
daterange <- time(getPortfolio(___)$summary)[-1]

# Update your account (account.st)
updateAcct(___, daterange)
updateEndEq(___)
Editar e executar o código