1 votos

Cálculo de los beneficios de una estrategia de negociación sencilla (Backtest)

He desarrollado un algoritmo de trading, sorprendentemente simple en su naturaleza (comencé con grandes planes de aplicar Machine Learning a este problema ya que soy un científico de datos de profesión).

Colocaría el código aquí, pero me gustaría hacer algún backtesting apropiado antes de lanzarlo para la revisión por pares. En cualquier caso, estoy viendo precisiones de predicted_trading_signal en comparación con perfect_insight de $+80\%$ a través de muchos del grupo russell 2000, que como un científico de datos, y una persona racional parece demasiado bueno para ser verdad. Para ello, me gustaría saber si esto es una prueba adecuada

Aquí hay un pseudocódigo:

# generate trading signal up onto data[i]
predicted_trading_signal = some_algo(data[:i])

# generate perfect insight signal
perfect_insight = another_algo(data[i], data[i+1])
# where data[i+1] is say the next day
if some_statistical_property_of_data > lambda:
    if  predicted_trading_signal == perfect_insight:
        correct+=1
    else:
        incorrect+=1

# after running over all windows of interest for a particular stock 
accuracy = 100.0* correct /float(correct + incorrect)

¡Ojalá pudiera ser más concreto con el código!

  • ¿Es este un enfoque válido para la precisión de los cálculos?
  • es condicionar la información hasta la fecha de hoy y utilizar el precio del día siguiente típico en las estrategias de prueba sin fuga de datos (un problema sutil para una persona ingenua como yo en el comercio)
  • ¿Existe un enfoque mejor?

Mi última pregunta (espero que se considere parte de la pregunta más grande - odio las preguntas múltiples en un post en mathstackexchange)

¿Puedo determinar el cálculo de pérdidas y ganancias como $$ P_i = \text{trading_signal}_{i-1}\left(S_{i} - S_{i-1}\right)\cdot C_{i-i} $$

Aquí

  • $C_{i-1}$ es el capital inicial invertido.
  • $S_i$ precio de las acciones
  • $\text{trading_signal}_{i-1}$ es la señal comercial inicial

2voto

Rehan Puntos 89

Para empezar, estoy asumiendo que su estrategia de negociación da salida a algo del tipo - Comprar, Vender, Neutral

Aunque a primera vista, su cálculo parece correcto, aquí hay algunas cosas que puede mirar

  • ¿Por qué la visión perfecta sólo contempla el cambio incremental? Muchas ideas de negociación dependen de la trayectoria, así que vuelva a comprobar si su acción más adecuada habría cambiado si añadiera el historial.
  • El parámetro de precisión, según tengo entendido, es el porcentaje de victorias en las operaciones de la estrategia. El término más usado para esto es "proporción de aciertos". Sin embargo, el porcentaje de aciertos es un número engañoso. El porcentaje de aciertos siempre debe mirarse en conjunto con el número de "Promedio de Operaciones Ganadoras / Promedio de Operaciones Perdedoras". Sólo entonces se puede llegar a los valores esperados. Lo que puede ocurrir es que usted tenga una estrategia que tenga un 80% de porcentaje de aciertos, pero su promedio de ganancias/pérdidas sea de 0,1, lo que significaría que, en general, la estrategia está generando rendimientos negativos.
  • Veo que está utilizando una condición estadística en los datos - espero que esto tenga en cuenta los costos de transacción - como en, el comercio se llama una victoria sólo si es lo suficientemente mayor que el precio de entrada.

En cuanto a su pregunta sobre el cálculo de los beneficios, ha omitido el factor de división.

$P_i=trading\_signal_{i−1}.\frac{(S_i−S_{i−1})}{S_{i−1}}⋅C_{i−i}$

0 votos

Gracias por responderme. Ah, gracias por poner algunos términos reales a las métricas que estoy usando. ¿Qué quieres decir con "path dependent"? Ya que mi único conocimiento de esto proviene de las metodologías de valoración de opciones. Por último, el statistical property es una condición basada en la distancia del valor anterior, por lo que codifica los costes de transacción de compra-venta (más o menos).

0 votos

Fue un gran acierto incluir la avg_winning_trade/avg_losing_trade y definitivamente bajó el rendimiento en un 40% de las acciones que estoy mirando. Si pudiera editar con alguna referencia al análisis dependiente de la trayectoria, se lo agradecería. Saludos

0 votos

Es su decisión si el camino afecta a su estrategia. Por ejemplo, hay estrategias de comercio de patrones (ejemplo muy simplista), donde el comercio (y la visión perfecta), no sólo depende de la rentabilidad del día actual, pero la historia también (el patrón se forma a lo largo de un número de días, por lo que mirando sólo los datos incrementales solo, es decir, (datos [i], datos [i + 1]) no le dará mucha información, en lugar, usted tendría que mirar a los datos[:i + 1] Echa un vistazo si su estrategia se ve afectada por la ruta, y si es así, ajustar el parámetro de visión perfecta en consecuencia.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X