Friday, October 14, 2016

Contratos De Futuros Continuos Para Backtesting Propósitos

Contratos de Futuros continuos para Backtesting Propósitos Por Michael Salas-Moore el 29 de enero 2014 En un artículo anterior sobre QuantStart investigamos cómo descargar los datos de futuros gratuitas de Quandl. En este artículo vamos a discutir las características de los contratos de futuros que presentan un desafío de datos desde un punto de vista backtesting. En particular, la noción de "contrato continuo" y "retornos rollo". Vamos a describir las principales dificultades del futuro y proporcionar una implementación en Python con pandas que pueden aliviar en parte los problemas. Breve descripción de los Contratos de Futuros Los futuros son una forma de contrato establecido entre dos partes para la compra o venta de una cantidad de un activo subyacente en una fecha determinada en el futuro. Esta fecha se conoce como la entrega o caducidad. Cuando se llega a esta fecha el comprador debe entregar la física subyacente (o equivalente en efectivo) al vendedor por el precio acordado en la fecha de la formación del contrato. En la práctica, los futuros se negocian en las bolsas (en lugar de en el mostrador - comercio OTC) para cantidades estandarizadas y cualidades del subyacente. Los precios están marcados en el mercado todos los días. Los futuros son muy líquido y se utilizan en gran medida con fines especulativos. Mientras que los futuros se utilizan a menudo para cubrir los precios de los productos agrícolas o industriales, un contrato de futuros se puede formar en cualquier material o inmaterial subyacente, como los índices bursátiles, tipos de interés de los valores en moneda extranjera. Una lista detallada de todos los códigos de símbolos utilizados para los contratos de futuros a través de diversos intercambios se puede encontrar en el sitio CSI datos: Factsheet Futures. La principal diferencia entre un contrato de futuros y de participación en el capital es el hecho de que un contrato de futuros tiene una ventana limitada de disponibilidad en virtud de la fecha de caducidad. En cualquier instante habrá una variedad de contratos de futuros sobre el mismo subyacentes todos con fechas variables de caducidad. El contrato con la fecha más próxima de caducidad es conocido como el contrato de próximo. El problema que enfrentamos como comerciantes cuantitativos es que en cualquier momento en el tiempo que tenemos una selección de varios contratos con los que comerciar. Por lo tanto se trata de un conjunto de la superposición de las series de tiempo en lugar de una corriente continua como en el caso de la renta variable o divisas. El objetivo de este artículo es esbozar varios enfoques para la construcción de un flujo continuo de los contratos de este conjunto de múltiples series y poner de relieve las ventajas y desventajas asociadas con cada técnica. La formación de un Contrato de Futuro continuo La principal dificultad en tratar de generar un contrato continuo de los contratos subyacentes con diferentes entregas es que los contratos no suelen comerciar a los mismos precios. Por lo tanto se presentan situaciones en las que no proporcionan un empalme suave de una a la siguiente. Esto es debido a contango y backwardation efectos. Existen varios enfoques para hacer frente a este problema, que ahora se discute. Enfoques Comunes Desafortunadamente, no hay un único método "estándar" para la unión de los contratos de futuros juntos en la industria financiera. En última instancia el método elegido dependerá en gran medida de la estrategia de empleo de los contratos y el método de ejecución. A pesar de que no existe un método único que hay algunos enfoques comunes: Ajuste Atrás / Adelante ("Panamá") Este método alivia la "brecha" entre varios contratos desplazando cada contrato de manera que las entregas individuales se unen de una manera suave de los contratos adyacentes. Así, la apertura / cierre a través de los contratos anteriores al vencimiento coincide. El problema clave con el método de Panamá incluye la introducción de un sesgo de tendencia, que introducirá una gran desviación de los precios. Esto puede conducir a los datos negativos de los contratos suficientemente históricos. Además hay una pérdida de las diferencias de precios relativos debido a un cambio absoluto en valores. Esto significa que los retornos son complicados de calcular (o simplemente incorrecta). Ajuste Proporcional El enfoque de proporcionalidad ajuste es similar a la metodología de ajuste de manejar división de acciones en acciones. En lugar de tomar un cambio absoluto en los contratos sucesivos, la relación entre el settle mayor (cerrar) el precio al precio de apertura más reciente se utiliza para ajustar proporcionalmente los precios de los contratos históricos. Esto permite que una corriente continua sin interrupción del cálculo de los rendimientos porcentuales. El principal problema con ajuste proporcional es que cualesquiera estrategias de negociación que dependen de un nivel de precios absoluta también tendrán que ajustarse de manera similar con el fin de ejecutar la señal correcta. Este es un proceso problemático y propenso a errores. Por lo tanto este tipo de corriente continua es a menudo sólo es útil para el análisis estadístico resumen, en contraposición a la investigación backtesting directa. Rollover / Serie Perpetuo La esencia de este enfoque es crear un contrato continuo de contratos sucesivos mediante la adopción de una proporción ponderada linealmente de cada contrato durante un número de días para asegurar una transición suave entre cada uno. Por ejemplo, consideremos cinco días de suavizado. El precio en el día 1, $ P_1 $, es igual al 80% del precio del contrato ahora ($ F_1 $) y el 20% del precio del contrato cercano ($ N_1 $). Del mismo modo, el día 2 el precio es de $ P_2 = 0,6 \ épocas F_2 + 0,4 \ veces N_2 $. Por día 5 tenemos $ P_5 = 0,0 \ veces F_5 + 1,0 \ veces N_5 = N_5 $ y el contrato a continuación, sólo se convierte en una continuación del precio cercano. Así, después de cinco días el contrato sin problemas la transición desde el momento de la cerca. El problema con el método de vuelco es que requiere negociación en los cinco días, que pueden aumentar los costos de transacción. Hay otros métodos menos comunes para el problema, pero vamos a evitarlos aquí. Formación Roll-retorno en Python y pandas El resto del artículo se centrará en la realización del procedimiento serie perpetua, ya que es el más apropiado para backtesting. Es una forma útil para llevar a cabo la investigación de tuberías estrategia. Vamos a hilvanar el Petróleo Crudo WTI "cerca" y "lejos" contrato de futuros (símbolo CL) con el fin de generar una serie de precios continua. En el momento de escribir (enero de 2014), el contrato de cerca es CLF2014 (enero) y el contrato ahora se CLG2014 (febrero). Con el fin de llevar a cabo la descarga de datos de futuros que he hecho uso del plugin Quandl. Asegúrese de establecer el entorno correcto virtual de Python en su sistema e instalar el paquete Quandl escribiendo lo siguiente en el terminal: Ahora que el paquete Quandl se intalled, tenemos que hacer uso de NumPy y pandas con el fin de llevar a cabo la construcción roll-retornos. Si usted no ha conseguido NumPy o pandas instalada, por favor, siga mi tutorial aquí. Crear un nuevo archivo y entrar en las declaraciones de importación siguientes: El trabajo principal se lleva a cabo en la función futures_rollover_weights. Se requiere una fecha de inicio (la primera fecha del contrato de cerca), un diccionario de fechas de liquidación del contrato (expiry_dates), los símbolos de los contratos y el número de días para rodar el contrato sobre (el impago a cinco). Los comentarios a continuación explican el código: Ahora que la matriz de ponderación se ha producido, es posible aplicar esto a la serie de tiempo individual. La función principal de las descargas de los contratos cercanos y lejanos, crea una única trama de datos para ambos, construye la matriz de ponderación de vuelco y, finalmente, produce una serie continua de ambos precios, pondera adecuadamente: La salida es la siguiente: Se puede observar que la serie ahora es continua a través de los dos contratos. El siguiente paso es llevar esto a cabo para múltiples entregas a través de una variedad de años, dependiendo de sus necesidades de backtesting. Referencias Si desea más detalles en la formación de serie continua de los precios de futuros, por favor, eche un vistazo a los siguientes enlaces: Michael Salas-Moore Mike es el fundador de QuantStart y ha estado involucrado en la industria de las finanzas cuantitativas en los últimos cinco años, principalmente como desarrollador quant y luego como consultora comerciante quant para los hedge funds.


No comments:

Post a Comment