¿Cómo se puede hacer un backtesting adecuado y visualizar su estrategia utilizando sus señales de trading y los precios históricos donde las señales de trading son 1 para largo, 0 para sin posición -1 para corto?
Obviamente, el resultado final debe ser algo así, este visual se origina a partir de una simple estrategia de media móvil de "Python for Finance"
Mi estrategia no es la misma, sin embargo, ya que las señales de comercio son sólo 1s y -1s esperaría ser capaz de obtener un resultado similar, sin embargo, cuando trato de usar el siguiente código, obtengo el siguiente gráfico, y no tengo absolutamente ninguna idea de por qué.
data['XONRETURNS'] = np.log(data['XON'] / data['XON'].shift(1))
data['XONSTRATEGY'] = (data['POSITIONXON'].shift(1)) * (data['XONRETURNS'])
ax = data[['XONRETURNS', 'XONSTRATEGY']].cumsum().apply(np.exp).plot(figsize=(10, 6))
XON es simplemente los datos de precios en bruto y la estrategia XON está utilizando las señales de negociación, es decir, POSITIONXON.
Mi sospecha es que los retornos o algo relacionado con la toma del registro (o no) está causando este problema?
Las respuestas generales sobre el backtesting de las señales de trading también serán muy útiles para poder empezar desde cero si es necesario.
Muchas gracias.