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:
sigComparisonparaSMA50maior queSMA200;sigThresholdcomcrossdefinido comoFALSEparaDVO_2_126menor que 20;sigFormulapara combiná-los e definircrosscomoTRUE;sigCrossovercomSMA50menor queSMA200; esigThresholdcomcrossdefinido comoTRUEparaDVO_2_126maior 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
Instruções do exercício
- Use applyStrategy() para aplicar sua estratégia (
strategy.st) ao seu portfólio (portfolio.st). Salve isso no objetoout. - Execute as funções necessárias para registrar os resultados da sua estratégia, incluindo
updatePortf()e a definição dodaterange, além deupdateAcct()eupdateEndEq(). - 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(___)