6 votos

Escribir un Backtester de Estrategia de Opciones

He estado indagando un poco y esta pregunta se ha planteado muchas veces de diversas formas a lo largo de los años

En particular, estoy interesado en el comercio de spreads. Por lo que he visto, el backtesting de estas estrategias está bastante relegado a las herramientas comerciales, o a los profesionales que escriben las suyas propias. Entiendo la idea básica del backtesting, y me gustaría hacer el mío propio. En parte porque ahora mismo soy un simple aficionado que todavía no tiene el capital para permitirse una herramienta realmente buena, y en parte porque me gustaría aprender exactamente cómo funciona desde dentro.

Un post menciona que un backtester de opciones no es muy diferente de un backtester de acciones. Es posible que esto sea cierto, pero no entiendo cómo. Para el backtesting de opciones, necesitaríamos datos históricos de las opciones (para obtener el bid/ask, strike, expiración, delta, imp. vol., etc), y también datos históricos del contrato subyacente para generar señales. También tendríamos que expirar adecuadamente las opciones. Tal vez lo esté complicando demasiado.

¿Existe algún recurso que realmente profundice en cómo se hizo su backtester? Algunos de los documentos en el cuarto enlace entran un poco en la sección de metodología, pero me pareció que no había mucho que masticar en la mayoría de ellos. Probablemente porque la discusión del backtester en sí es tangencial al documento real.

3voto

torial Puntos 9883

Muy bien, esta es una buena pregunta. Ya he pasado por eso. Como has dicho, el backtesting de opciones será casi igual que el de acciones, pero con más datos para jugar (griegas, volatilidad, precios teóricos, etc)

Lo más importante aquí serán sus datos históricos. Su fuente de datos. Para hacer un backtest de opciones, normalmente se necesita tener toda la cadena histórica de opciones.

No encontrarás esto en Internet de forma gratuita (ni siquiera lo intentes) Sin embargo, hay algunas empresas que ofrecen esto, y déjame decirte que no es nada barato.

Personalmente, terminé escribiendo otro software que periódicamente explorará todo el mercado de opciones, recogiendo los datos de las cadenas. Se trata de una "enorme" base de datos que mantengo para mis proyectos de backtesting.

Así que te sugiero que hagas lo mismo. Primero céntrate en los datos.

Buena suerte

0 votos

¿De dónde extrae los datos de sus opciones?

0 votos

Creo que los pandas pueden hacerlo pandas.pydata.org/pandas-docs/stable/

1 votos

Hay muchos sitios donde se pueden raspar opciones. Ivolatility.com es el que yo uso

3voto

JeremyReimer Puntos 225

Para quien tropiece con esto, como yo lo hice.

La dimensionalidad del problema es mucho mayor. Si alguien te dice que hacer backtesting de opciones es lo mismo que hacer backtesting de acciones o de cualquier subyacente delta-1, no está entendiendo nada.

  1. Datos: los datos de las opciones son caros. El mayor favor que puede hacerse a sí mismo es empezar a recopilar datos lo antes posible. Hay varias formas de hacerlo, ya sea como estudiante o como profesional, o ambas cosas. Raspe, obtenga datos de proveedores para rellenar o simplemente sea paciente.
  2. Lee libros sobre cómo pensar en las opciones. Las opciones tienen una mentalidad y una dinámica diferentes a las de los subyacentes (delta-1).
  3. Empiece realizando un backtest sobre una estructura sencilla (spread, etc.). Encuentra formas de explicarte a ti mismo tu PnL en el backtest (se debe a delta, gamma, theta, etc.). ¿Tienen sentido sus cálculos? ¿Puede convencerse de que está en lo cierto?
  4. Construye una estructura más complicada y repite el paso 3.
  5. Construir formas de probar cualquier estructura arbitrariamente compleja y encontrar maneras de determinar qué predicts el resultado de su estructura. Cuándo se sale, cuándo se rueda, etc. Esto, la parte 5, es increíblemente difícil y requiere mucho tiempo y cuidado.

Creo que se trata de un problema desgraciadamente muy difícil.

Para facilitar algunas de las cosas anteriores mayo quieren utilizar soluciones de código abierto como quantlib, pero ni siquiera eso es gratis (tiempo y curva de aprendizaje, etc.).

Todos estos son problemas bastante difíciles que pueden llevarte meses resolver.

Estaré encantado de seguir debatiendo este tema si responde a esta respuesta.

2voto

Boyan Puntos 1610

Esto se basa en mi experiencia con Chase y puede no ser aplicable a otros bancos. Como mencionaste a Chase como uno de los bancos con los que haces negocios, espero que esto te sea útil.

El dinero sale inmediatamente de su cuenta. Si el cheque no se cobra en un plazo determinado, el cheque caduca y el dinero se acredita de nuevo en su cuenta.

Una vez que haya realizado el pago de una factura en línea, puede comprobar el estado de su cheque consultando su actividad de pago, buscando el pago en cuestión y siguiendo el enlace "prueba de pago". Allí se le proporcionará información sobre su pago que puede presentar a su beneficiario para demostrar cuándo envió el pago, y que éste puede utilizar para verificar con el banco que realmente envió el pago como afirmó. Una vez cobrado el cheque, esta página también contendrá imágenes del anverso y el reverso del cheque cobrado, para que pueda demostrar que el beneficiario realmente lo cobró. Puede ver en esta información que el cheque está siendo financiado desde un número de cuenta diferente al suyo, lo cual es bueno por razones de seguridad ya que ( por Knuth, 2008 ) dar a otra persona su número de ruta bancaria y el número de cuenta que se encuentra en sus cheques personales básicamente les proporciona todo lo que necesitan para (fraudulentamente, por supuesto) limpiar su cuenta.

1voto

Andy E Puntos 322

Recientemente abierto de origen un backtester de opciones escrito en Python. Puede proporcionar lo que estás buscando.

0 votos

Oye, ¿tu código base está actualizado? ¿Ha habido algún cambio?

0 votos

Sí. Hoy añadiré un CL adicional con algunos grandes fijos.

0voto

rsteckly Puntos 153

Tengo un proyecto en mi github aquí pruebo esto para el mercado de valores brasileño, los datos son públicos disponibles. Es todo un reto los datos son crudos, tienes que ajustar los precios, lidiar con los precios de las opciones no negociadas en ese día, ejercer opciones ... unfortunaly escribí el código en portugués perphaps un día traduzco al Inglés.

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