Necesito un paquete rápido para backtesting en R. Voy a optimizar mucho, así que estaré ejecutando mis estrategias muchas millones de veces. Conozco paquetes como quantstrat
o SIT
pero son terriblemente lentos para mis propósitos, tengo una estrategia, no voy a modelar 20 carteras al mismo tiempo y cosas así. ¿Qué paquete puedes recomendar?
ACTUALIZACIÓN=========
Sí, implementé algo muy simple como
signals <- sample(c(-1,0,1),30,replace = T)
-1
abrir venta
1
abrir compra
0
no hacer nada y cerrar cualquier posición
prices <- cumsum(rnorm(30))+100
count_balance <- function(prices,signals){
p <- c(0,diff(prices))
s <- c(0,signals[-length(signals)])
return( cumsum(p*s) )
}
count_balance(p = prices,sig = signals)
o equivalente en Rcpp
aún más rápido 30 veces
#include
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector count_balance_cpp(NumericVector prices, NumericVector signals) {
int n = prices.size();
NumericVector result(n);
result[0] = 0;
for (int i = 1; i < n; ++i) {
result[i] = result[i-1] + signals[i-1] * (prices[i] - prices[i-1]);
}
return result;
}
Pero me gustaría un poco más
- tomar en cuenta la comisión
- tener un registro de operaciones para saber la proporción de operaciones rentables y perdedoras
En principio, también puedo implementar esto, pero no estaré completamente seguro de haberlo hecho correctamente, ya que soy un programador muy malo. Ni siquiera estoy seguro de las funciones que publiqué arriba)
Por eso estaba buscando una biblioteca simple, rápida, lista y, lo más importante, comprobada
0 votos
Hola: Hasta donde sé, no hay un backtester generalizado disponible en R. Podría estar equivocado, por supuesto, porque ha pasado un tiempo desde que busqué. Espero estar equivocado. Al mismo tiempo, sugiero escribir el tuyo propio porque así no es una caja negra.