Ejecutar tu estrategia
¡Enhorabuena por crear una estrategia en quantstrat! Para repasar: tu estrategia usa tres indicadores y cinco señales. La estrategia requiere que el umbral del indicador DVO_2_126 esté por debajo de 20 y que la SMA50 sea mayor que la SMA200. La estrategia vende cuando DVO_2_126 cruza por encima de 80, o cuando la SMA50 cruza por debajo de la SMA200.
Para que esta estrategia funcione correctamente, has especificado cinco señales:
sigComparisonparaSMA50mayor queSMA200;sigThresholdconcrossenFALSEparaDVO_2_126menor que 20;sigFormulapara combinarlas y establecercrossenTRUE;sigCrossoverconSMA50menor queSMA200; ysigThresholdconcrossenTRUEparaDVO_2_126mayor que 80.
La estrategia invierte 100.000 $ (tu initeq) en cada operación y puede hacer un pequeño promedio del coste en dólares si DVO_2_126 oscila alrededor de 20 (aunque el efecto es en gran parte despreciable frente a la asignación inicial).
En este último capítulo aprenderás a ver los resultados reales de tu porfolio. Pero antes, para generar los resultados, necesitas ejecutar tu estrategia y completar algo de código base adicional para asegurarte de que quantstrat lo registre todo. El código de este ejercicio es código que tendrás que copiar y pegar en el futuro.
Este ejercicio forma parte del curso
Trading financiero en R
Instrucciones del ejercicio
- Usa applyStrategy() para aplicar tu estrategia (
strategy.st) a tu porfolio (portfolio.st). Guarda el resultado en el objetoout. - Ejecuta las funciones necesarias para registrar los resultados de tu estrategia, incluyendo
updatePortf()y establecer eldaterange, así comoupdateAcct()yupdateEndEq(). - Con esta información, intenta encontrar la fecha de la última operación.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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(___)