De la negociación cuantitativa a la gestión de activos - Desarrollo de la estrategia de CTA para el rendimiento absoluto

El autor:- ¿ Por qué?, Creado: 2023-02-07 09:58:41, Actualizado: 2023-09-18 20:25:11

img

De la negociación cuantitativa a la gestión de activos - Desarrollo de la estrategia de CTA para el rendimiento absoluto

Prefacio

¿Por qué debo tomar este curso?

¿Qué se gana al tomar este curso? En primer lugar, este curso se basa en lenguajes de programación JavaScript y Python. El lenguaje es sólo una tecnología. Finalmente, debemos aplicar esta tecnología en una industria. El comercio cuantitativo es una industria emergente, que actualmente se encuentra en una etapa de rápido desarrollo y tiene una gran demanda de talentos.

A través del aprendizaje sistemático de este curso, puede tener una comprensión más profunda del campo del comercio cuantitativo. Si usted es un estudiante que se prepara para ingresar al campo del comercio cuantitativo, también lo ayudará. Si usted es un entusiasta de la inversión de acciones o futuros, entonces el comercio cuantitativo puede ayudar a su comercio subjetivo. Al desarrollar estrategias comerciales, puede obtener ganancias en el mercado financiero, y también ampliar los canales y plataformas para su inversión y gestión financiera.

Antes de eso, permítanme hablar sobre mi experiencia personal de trading. No soy una especialista en finanzas, estudié estadística. Al principio, comencé a operar acciones de manera subjetiva en mis días de escuela. Más tarde, me convertí en un profesional de trading cuantitativo de fondos de capital privado domésticos, principalmente dedicado a la investigación y desarrollo de estrategias.

He estado negociando en este círculo durante más de diez años, y he desarrollado varios tipos de estrategias. Mi filosofía de inversión es: el control de riesgos está por encima de todo y se centra en los rendimientos absolutos.

1. Estrategia de CTA de futuros lógica para ganar dinero

1.1 Comprender el CTA de los futuros

Alguien puede preguntar qué es el CTA? ¿Qué es exactamente el CTA? El CTA se llama asesores de comercio de materias primas en países extranjeros y gerente de inversiones en China. El CTA tradicional es recoger los fondos de la mayoría de los inversores, luego confiarlos a instituciones de inversión profesionales, y finalmente invertir en futuros de índices de valores, futuros de materias primas y futuros de bonos del Tesoro a través de asesores comerciales (es decir, CTA).

Pero de hecho, con el continuo desarrollo y expansión del mercado global de futuros, el concepto de CTA también se está expandiendo, y su alcance está mucho más allá de los futuros tradicionales. Puede invertir no solo en el mercado de futuros, sino también en el mercado de tasas de interés, el mercado de valores, el mercado de divisas y el mercado de opciones. Siempre que haya una cierta cantidad de datos históricos para esta variedad, puede desarrollar estrategias CTA correspondientes basadas en estos datos históricos.

Ya en la década de 1980, la tecnología de negociación electrónica no estaba madura. En ese momento, la mayoría de los comerciantes juzgaban la tendencia futura de los futuros de materias primas dibujando indicadores técnicos manualmente, como el índice William, KDJ, RSI, MACD, CCI, etc. Más tarde, los comerciantes establecieron un fondo especial de CTA para ayudar a los clientes a administrar activos.

Cambios en el tamaño de la gestión de los fondos de la CTA

img

En miles de millones de dólares

En particular, con el aumento del comercio cuantitativo, la escala de los fondos globales de CTA ha aumentado de US $ 130.600 millones en 2005 a más de US $ 300 mil millones en 2015.

El índice Barclay CTA es un punto de referencia representativo de la industria para los asesores de comercio de materias primas globales. Desde finales de 1979 hasta finales de 2016, el rendimiento acumulado del índice Barclay CTA Fund fue de hasta 28.95 veces, el rendimiento anualizado fue de 9.59%, la relación Sharp fue de 0.37, y el retiro máximo fue de 15.66%.

Como se muestra en el círculo rojo a continuación, durante el mercado global de valores bajista de 2000 a 2002 y la crisis mundial de subprimes en 2008, el índice de fondos Barclay CTA no solo no cayó sino que también logró rendimientos positivos. Cuando el mercado de valores y el mercado de bonos estaban en crisis, CTA podía proporcionar fuertes rendimientos. Además, podemos ver que el nivel de ganancia del índice CTA de Barclay Commodity desde 1980 ha sido más fuerte que el S&P 500, y la retirada también es mucho menor que el S&P 500.

img

El desarrollo de CTA en China ha sido sólo en los últimos diez años, pero el impulso es muy fuerte. Esto se debe principalmente al entorno comercial relativamente abierto de futuros de materias primas nacionales, el bajo umbral de los fondos de negociación, el uso del sistema de margen para operar en posiciones largas y cortas, los bajos costos de transacción, la estructura técnica más avanzada del intercambio en comparación con las acciones y el sistema de negociación más fácil.

Desde 2010, los fondos de CTA han existido principalmente en forma de fondos privados. Con la apertura gradual del alcance de inversión de la cuenta especial del fondo en las políticas nacionales, los fondos de CTA comenzaron a existir en forma de cuenta especial del fondo.

Las estrategias de CTA también son más adecuadas para los comerciantes individuales que otras estrategias comerciales en términos de facilidad de entrada, umbral de capital, ejecución de estrategias comerciales y conectividad API. Los contratos de futuros nacionales son muy pequeños. Por ejemplo, el maíz o la harina de soja se pueden negociar por miles de yuanes, y casi no hay umbral de capital. Además, debido a que algunas estrategias de CTA provienen del análisis técnico tradicional, es relativamente fácil en comparación con otras estrategias.

El proceso de diseño de la estrategia CTA también es relativamente simple. Primero, los datos históricos se procesan inicialmente, y luego se ingresan al modelo cuantitativo. El modelo cuantitativo incluye la estrategia de negociación formada por modelado matemático, diseño de programación y otras herramientas, y la señal de negociación se genera calculando y analizando estos datos. Por supuesto, en el desarrollo real, no es tan simple como el gráfico anterior. Aquí solo le damos un concepto general.

1.2 Tipo de estrategia de CTA de futuros

Desde la perspectiva de la estrategia de negociación, la estrategia CTA también es diversificada: puede ser una estrategia de tendencia o una estrategia de arbitraje; Puede ser una estrategia a largo plazo a mediano y largo plazo, o una estrategia a corto plazo intradiario; La lógica de la estrategia puede basarse en el análisis técnico o el análisis fundamental; Puede ser una transacción subjetiva o una transacción del sistema.

La estrategia de CTA tiene diferentes métodos de clasificación. De acuerdo con el método de transacción, se puede dividir en transacción subjetiva y transacción de sistema. El desarrollo de la estrategia de CTA extranjera está relativamente avanzado, y la estrategia de CTA de transacción de sistema ha estado cerca del 100%. De acuerdo con el método de análisis, se puede dividir en análisis básico y análisis técnico. De acuerdo con la fuente de ingresos, se puede dividir en comercio de tendencia y comercio oscilante.

En general, la estrategia CTA representa aproximadamente el 70% del mercado de operaciones totales, la estrategia de tendencia representa aproximadamente el 25% y la estrategia de contratrend o inversión de tendencia representa aproximadamente el 5%. Entre ellos, la estrategia de tendencia con la mayor proporción se puede dividir en operaciones de alta frecuencia, operaciones intradiarias, operaciones a corto y medio plazo y operaciones a medio y largo plazo según el período de posición.

Estrategia de creación de mercado de alta frecuencia

En la actualidad, hay dos estrategias de negociación de alta frecuencia principales en el mercado: una es la estrategia de creación de mercado de alta frecuencia, la otra es la estrategia de arbitraje de alta frecuencia. La estrategia de creación de mercado es proporcionar liquidez en el mercado de negociación. Es decir, en el mercado de negociación con un creador de mercado, si alguien quiere comerciar, el creador de mercado debe garantizar que su orden pueda ser negociada. Si no hay suficiente liquidez en el mercado y la orden no se puede negociar, el creador de mercado debe comprar o vender la orden de la contraparte.

Estrategia de arbitraje de alta frecuencia

El arbitraje de alta frecuencia se refiere a la negociación de dos acciones altamente correlacionadas o ETF y cartera de ETF. De acuerdo con el método de cálculo de ETF, el precio esperado de un ETF se puede calcular de la misma manera. El precio del índice ETF puede restar el precio esperado del ETF para obtener una diferencia de precio. Por lo general, la diferencia de precio se ejecutará en un canal de precios. Si la diferencia de precio se rompe a través de los canales superior e inferior, puede negociar la diferencia de precio, esperar el retorno de la diferencia de precio y obtener ingresos de ella.

Estrategia intradiaria

En el sentido literal, siempre y cuando no haya posición durante la noche, se puede llamar estrategia de negociación intradiaria. Debido al corto período de retención de la negociación intradiaria, generalmente es imposible obtener ganancias inmediatamente después de ingresar al mercado y luego salir del mercado rápidamente. Por lo tanto, este modo de negociación tiene un bajo riesgo de mercado. Sin embargo, debido a que el mercado cambia rápidamente en un corto período de tiempo, la estrategia intradiaria generalmente tiene requisitos más altos para los operadores.

Estrategia a medio y largo plazo

En teoría, cuanto mayor sea el período de tenencia, mayor será la capacidad estratégica y menor será la relación riesgo-rendimiento. Especialmente en las transacciones institucionales, debido a la capacidad limitada de las estrategias a corto plazo, los fondos grandes no pueden entrar y salir del mercado en un corto período de tiempo, se asignarán estrategias más a largo plazo.

Datos de la estrategia de la OTC

En términos generales, la estrategia CTA se estudia con datos de minutos, horas y días, que incluyen: precio de apertura, precio más alto, precio más bajo, precio de cierre, volumen de operaciones, etc. Solo unas pocas estrategias CTA utilizarán datos de Tick, como precio de compra, precio de venta, volumen de compra, volumen de venta y otros datos en profundidad en los datos L2.

En cuanto a la idea básica de la estrategia CTA, lo primero que pensamos se basa en indicadores técnicos tradicionales, porque hay muchos materiales de referencia pública en esta área, y la lógica suele ser simple, la mayoría de los cuales se basan en principios estadísticos.

También hay algunos modelos de negociación clásicos en el mercado, que también pueden utilizarse como referencia y mejorar, incluyendo: combinación de promedios móviles múltiples, DualThrust, R-Breaker, método de negociación Turtle, método de negociación en red, etc.

Todos estos son estrategias comerciales basadas en el análisis técnico tradicional. El proceso consiste en extraer factores o condiciones comerciales con ventajas de probabilidad de acuerdo con datos históricos y conceptos comerciales correctos, y asumir que el mercado todavía tendrá tales leyes en el futuro. Finalmente, la estrategia comercial se realiza mediante código y comercio totalmente automático.

La mayor ventaja de la estrategia CTA es que no importa si el mercado actual está subiendo o bajando, puede obtener rendimientos absolutos, especialmente cuando el mercado está cambiando rápidamente, o la tendencia del mercado es obviamente suave, la ventaja de la estrategia es obvia, en resumen, si hay una tendencia, hay una ganancia. Sin embargo, si el mercado está en una situación volátil o la tendencia no es obvia, la estrategia puede comprar en un punto alto y vender en un punto bajo, y detener la pérdida de un lado a otro.

1.3 Principio de beneficio de la estrategia de CTA de futuros

La estrategia de futuros CTA es rentable principalmente debido a los siguientes puntos:

    1. Hay reflexión en la tendencia del precio, que siempre continúa en la forma de la tendencia. Cuando los inversores observan que el precio aumenta, seguirán la tendencia y comprarán, lo que resulta en un mayor aumento del precio. Lo mismo ocurre con la disminución del precio. Debido a que los inversores son más irracionales, a veces podemos ver que el precio sube anormalmente y cae anormalmente.
    1. Cada inversor tiene una tolerancia asimétrica para la relación de ganancias y pérdidas y una tolerancia diferente para el riesgo.
    1. La formación del precio está determinada por la transacción. Es cierto que la transacción es impulsada por las personas, pero la naturaleza humana es difícil de cambiar. Esta es la razón por la cual el patrón fijo se repetirá. La estrategia es efectiva en la prueba de retroceso de datos históricos, lo que indica que también puede ser efectiva en el futuro.

Además, la característica comercial del seguimiento de tendencias es perder una pequeña cantidad de dinero cuando no hay mercado, y hacer una gran fortuna cuando el mercado viene. Sin embargo, las personas que han hecho trading saben que el mercado es volátil la mayor parte del tiempo, y solo en un pequeño período de tiempo es el mercado de tendencias. Por lo tanto, la estrategia de seguimiento de tendencias tiene una baja tasa de ganancia en el comercio, pero la ganancia y pérdida general de cada transacción es relativamente grande.

Debido a que la estrategia de seguimiento de tendencias es inestable en términos de ingresos, muchas instituciones de inversión utilizarán múltiples variedades y estrategias para construir una cartera, que también se configurará con una cierta cantidad de estrategias de reversión.

Correlación entre la CTA y los activos tradicionales

img

Teóricamente, varias estrategias con diferentes estilos o correlación relativamente baja a veces transmitirán las mismas y a veces diferentes señales comerciales al mismo tiempo cuando se enfrentan a varios cambios en los precios del mercado.

Desde el punto de vista anterior, se puede concluir que es mejor desarrollar múltiples subestrategias moderadas que desarrollar una estrategia maestra. ¿Cómo controlar estas estrategias? Aquí podemos aprender del algoritmo de bosque aleatorio en el aprendizaje automático. El bosque aleatorio no es un algoritmo independiente, es un marco de decisión que contiene múltiples árboles de decisión. Es equivalente a la estrategia principal por encima de la subestrategia del árbol de decisión.

A continuación, debemos diseñar una estrategia de base. Podemos evaluar la liquidez, rentabilidad y estabilidad de cada variedad en todo el mercado de futuros de materias primas para seleccionar la cartera de variedades de futuros de materias primas con baja volatilidad de ganancias, y luego realizar una selección neutral de la industria, reducir aún más la volatilidad general a través de la dispersión de la industria de la cartera, y finalmente construir la cartera real de futuros de materias primas de múltiples variedades a través de la coincidencia de valor de mercado para la negociación.

Cada variedad también se puede configurar con estrategias de múltiples parámetros, y puede seleccionar la combinación de parámetros con buen rendimiento en el backtest. Cuando la tendencia del mercado es obvia, las estrategias de múltiples parámetros generalmente funcionarán de manera consistente, lo que equivale a agregar posiciones; Cuando el mercado está en una situación volátil, el rendimiento de varios conjuntos de estrategias de parámetros generalmente será inconsistente, por lo que pueden cubrir los riesgos yendo largo o corto, respectivamente, lo que equivale a reducir posiciones. Esto puede reducir aún más la tasa máxima de backtest de la cartera, manteniendo la tasa general de retorno sin cambios.

2. Ejemplo clásico de estrategia de CTA de futuros

Newton dijo una vez: Si veo más lejos que los demás, es porque estoy sobre los hombros de gigantes.

Las estrategias de CTA disponibles públicamente en el mercado incluyen la estrategia SMA, la estrategia de bandas de Bollinger, las reglas de negociación de tortuga, la estrategia de impulso, la estrategia de arbitraje, etc. Las estrategias de negociación cuantitativas tienen una característica, es decir, que fallarán lentamente una vez que se hagan públicas. Pero esto no nos afecta a aprender de estas estrategias y aprender de la esencia de ellas, para que podamos resolver los problemas que tenemos sobre los hombros de los gigantes.

2.1 Análisis de los fundamentos de los futuros (inventario, diferencia de base, precio)

El análisis fundamental no necesita preocuparse por la tendencia de precios a corto plazo. Se cree que el valor se reflejará en el precio en última instancia. Se trata más de analizar los factores detrás del precio para determinar cuánto vale la variedad.

img

Podemos ver en el gráfico anterior que hay muchos factores que afectan los precios de las materias primas, y estos datos están cambiando constantemente.

De hecho, el análisis fundamental de los futuros de materias primas no es para analizar todos los factores. Sólo necesitamos comprender los elementos centrales del análisis fundamental para descubrir las reglas de la información compleja.

Factores macroeconómicos

Los datos macroeconómicos son complejos y cambiantes. Todos los días, en cada momento, se publican muchos datos económicos, de la política nacional, los bancos centrales, los bancos de inversión, oficiales y no oficiales. Además de la crisis política y económica, el análisis macro es un buen material para charlar, pero no práctico.

Factor de variedad

En el análisis fundamental, el análisis de variedad es principalmente para analizar la prima y el descuento, la relación de oferta y demanda, el inventario de productos básicos, la ganancia industrial, etc. Se puede decir que dominar el análisis de factores de variedad de los futuros de productos básicos puede juzgar la mayor parte de la tendencia del mercado.

Como saben los amigos que han hecho futuros, los futuros de productos básicos nacionales pueden dividirse simplemente en productos industriales y productos agrícolas. Los métodos de análisis de productos industriales y productos agrícolas son diferentes. Vamos a profundizar en los dos aspectos de la oferta y la demanda. En los productos industriales, la oferta es relativamente estable. A menos que haya un gran avance tecnológico, es poco probable que la capacidad de producción cambie significativamente en un corto período de tiempo. Por lo tanto, el principal factor que afecta el precio de los productos industriales es la demanda. La demanda de productos agrícolas es relativamente estable. A largo plazo, la demanda de productos agrícolas cambia, pero a corto plazo, la demanda de productos agrícolas tiende a ser estable, por lo que el principal factor que afecta el precio de los productos agrícolas es la oferta.

Por lo tanto, según las leyes de la economía, es la relación entre la oferta y la demanda la que determina el precio de los bienes en última instancia. En teoría, siempre que se puedan obtener los datos de la oferta y la demanda, se puede determinar el precio futuro de los bienes. Para los productos industriales, los datos de la oferta son fáciles de obtener, pero es difícil obtener los datos de la demanda.

De hecho, podemos restar más. El resultado mutuo de la oferta y la demanda en el mercado económico es el inventario. Podemos juzgar la fuerza de la relación entre la oferta y la demanda del mercado a través de los datos del inventario. Si el inventario de un producto es muy alto, significa que la oferta del mercado es mayor que la demanda, y el precio del producto disminuirá en la premisa de que las condiciones externas permanezcan sin cambios. Si el inventario de un producto es muy bajo, significa que la demanda del mercado es mayor que la oferta, y el precio del producto aumentará en la premisa de que las condiciones externas permanezcan sin cambios.

Además de analizar el inventario de productos básicos, también necesitamos analizar la diferencia de precio entre el mercado al contado y el mercado de futuros, que también se llama diferencia de base. Si el precio de los futuros es mayor que el precio al contado, lo llamamos prima de futuros; Si el precio de los futuros es menor que el precio al contado, lo llamamos descuento de futuros. De acuerdo con el sistema de entrega de futuros, en la fecha de entrega de futuros, el precio de los futuros debe ser igual al precio al contado.

Independientemente de la prima o el descuento, debido a las limitaciones del sistema de entrega de futuros, el precio de los futuros en la fecha de entrega debería ser igual al precio al contado en teoría.

De acuerdo con el principio anterior, podemos usar el inventario y la diferencia de base para determinar los precios futuros al mismo tiempo. Si el inventario de un producto es bajo, y si el precio de los futuros es mucho menor que el precio al contado, podemos juzgar que la demanda del mercado al contado es mayor que la oferta, y la probabilidad de que el precio al contado aumente en el futuro es grande; también debido al sistema de entrega de futuros, a medida que se acerca la fecha de entrega, el precio de los futuros aumentará, y será igual al precio al contado. La probabilidad de que el precio de los futuros aumente es mayor en el futuro.

Finalmente, juzgamos la dirección probable del precio futuro a través de la diferencia de inventario y base, pero no hay un punto preciso de compra y venta, por lo que necesitamos cooperar con el análisis técnico para dar una señal clara de entrada y salida.

2.2 Normas para el comercio de tortugas

Cuando se trata de estrategias comerciales, tenemos que hablar de las reglas de comercio de tortugas representativas. La regla de comercio de tortugas proviene del experimento más famoso en la historia del comercio. Richard Dennis, un especulador de materias primas, quiere saber si los grandes comerciantes nacen o se entrenan. Con este fin, en 1983, reclutó a 13 personas y les enseñó los conceptos básicos de comercio de futuros, así como sus propios métodos y principios de comercio. Estos estudiantes fueron llamados turtles.

En los siguientes cuatro años, las tortugas lograron un interés compuesto anual promedio del 80%. Dennis demostró que con un sistema y reglas simples, las personas con poca o ninguna experiencia comercial pueden convertirse en excelentes comerciantes. Sin embargo, algunas tortugas venden reglas de comercio de tortugas en el sitio web para obtener ganancias.

Después de que la verdad salió a la luz, la gente descubrió que las reglas de negociación de Tortuga adoptaron el canal Donchian optimizado y utilizaron indicadores ATR para la gestión de posiciones.

Principios básicos de la tortuga

  • Dominar las ventajas: encontrar una estrategia comercial con expectativas positivas, porque a largo plazo, puede crear rendimientos positivos.
  • Gestionar el riesgo: controlar el riesgo y mantener su posición, de lo contrario no puede esperar un día para obtener ganancias.
  • Perseverancia: Sólo aplicando firmemente su estrategia, puede realmente lograr resultados sistemáticos.
  • Simple y claro: a la larga, los sistemas simples tienen más vitalidad que los sistemas complejos.

Entonces, a continuación, veamos lo que dicen las reglas comerciales de Tortuga.

  1. Mercado - qué comprar y vender, esencialmente en qué mercados comerciar. Las tortugas son comerciantes de futuros. Solo eligen los mercados con un gran volumen de operaciones y alta liquidez. Porque elegir los mercados con operaciones inactivas aumentará el deslizamiento adicional de entrada y salida, y también perderá muchas oportunidades de tendencia.
  2. El tamaño de la posición - cuánto comprar o vender es una parte muy importante de toda la estrategia, que generalmente es ignorada o maltratada por la mayoría de la gente. La regla de negociación de la tortuga adopta ATR, es decir, el índice de volatilidad real promedio, para calcular la posición abierta, aumentar la señal de posición y la señal de stop loss. Este es un diseño muy ingenioso. La intención original es ajustar el tamaño de la posición a través de la volatilidad absoluta del mercado. Cuando la volatilidad del mercado es fuerte, reducir la posición, y cuando la volatilidad del mercado es débil, aumentar la posición. Primero define una unidad cuya fórmula es: (activos totales * 1%) / ATR. La posición inicial es 1 unidad. Incluso si la disminución de la variedad en ese día alcanza el nivel de ATR, la pérdida en ese día se puede controlar dentro del 1% del activo total. Si el precio de la unidad aumenta en 0,5, la posición larga aumentará sus posiciones en 1 unidad, hasta 4 unidades.
  3. Entrada al mercado - La entrada al mercado de Turtle se basa en el canal Donchian. Cuando el precio se eleva por encima del precio más alto de las primeras líneas de 20 o 55 K, entrará en el mercado para ir largo. Cuando el precio cae por debajo del precio más bajo de las primeras líneas de 20 o 55 K, entrará en el mercado para ir corto. Cuando aparezca la señal, ingrese al mercado para operar, sin esperar el cierre o la próxima línea K.
  4. Stop loss - A largo plazo, las transacciones que no detengan la pérdida no tendrán éxito, pero la mayoría de los comerciantes mantienen posiciones perdedoras y tratan de tomar riesgos para esperar que el mercado se vuelva. Las reglas de tortuga estipulan estrictamente cuándo retirarse de la posición de pérdida. Si mantiene órdenes de posición larga y el precio cae en 2 unidades, la posición larga se cierra con un stop loss. Si mantiene una orden de posición corta y el precio aumenta en 2 unidades, la posición corta se cerrará con un stop loss.
  5. Si actualmente mantiene órdenes de posición larga y el precio cae por debajo de la pista del canal Donchian de diez días, cierre todas las órdenes largas; si mantiene la orden de posición corta actual y el precio sube por encima de la pista del canal Donchian de diez días, cierre todas las posiciones cortas.

Por lo tanto, podemos ver que aunque las reglas de negociación de la tortuga parecen muy simples, en realidad se ha formado un sentido real del prototipo del sistema de negociación. cubre todos los aspectos de un sistema de negociación completo, sin dejar espacio para que los comerciantes tomen decisiones subjetivas imaginativas, lo que sólo hace que las ventajas de la operación programada del juego del sistema, incluyendo: reglas de entrada y salida, gestión de fondos y control de riesgos, etc.

La mayor ventaja del método de trading de tortuga es ayudarnos a establecer un conjunto de métodos de trading efectivos. Es una combinación de apertura de lotes, stop profits dinámicos y stop loss, y la estrategia de seguimiento de tendencia del mercado, especialmente el uso del valor ATR y el concepto de gestión de posiciones, que vale mucho la pena aprender. Por supuesto, también tiene un problema común con la estrategia de seguimiento de tendencias, es decir, ganancias flotantes y retiro. Es probable que todas las ganancias flotantes obtenidas de comprar los ganadores se eliminen debido a la siguiente ola de caídas bruscas. Es muy fuerte en la tendencia general, y no tan buena como se esperaba en el mercado volátil.

3. Desarrollar una estrategia de CTA para el futuro en la práctica

3.1 Desarrollo de una estrategia de tendencias de CTA basada en MyLanguage

A finales del siglo pasado, un método de negociación muy sorprendente comenzó a prevalecer en el campo de la inversión financiera en los Estados Unidos. Después de miles de personas practicando, la gente descubrió que este método tiene efectividad y gran valor práctico. Al mismo tiempo, ha sido reconocido por muchos expertos en inversión y comerciantes profesionales. Hasta ahora, se puede aplicar a casi todos los campos de inversión financiera perfectamente, ya sea divisas, oro, acciones, futuros, petróleo crudo o índice y bonos, que es el método de operación del caos.

La palabra caos se refiere a la descripción del estado caótico del universo originalmente. Su idea es que el resultado es inevitable, pero debido a que el conocimiento existente no puede calcular el resultado, porque el cálculo mismo también está cambiando el resultado, el resultado máximo o mínimo puede aparecer finalmente, pero no hay resultado inevitable. Esto es muy similar al mercado comercial. Los participantes también cambian el mercado cuando analizan el mercado y compran y venden. El mercado tiene variabilidad eterna. Cuando los participantes entienden la nueva forma del mercado, el mercado también entiende que es reconocido por los participantes, por lo que la variación ocurre. Y tenderá a cambiar en la dirección desconocida de los participantes. Tiene suficiente sabiduría para evitar que los participantes capten sus reglas de cambio, es decir, el mercado no es estable, y la comprensión del pasado del mercado no puede representar el futuro.

El método de operación del caos es un conjunto completo de ideas de inversión, estrategias de negociación y señales de entrada y salida, inventado por Bill Williams. Actualmente, muchos inversores en el mundo adoptan la operación del caos para participar en las transacciones de mercado. Debido a que el desarrollo del mercado financiero de China está rezagado, y la teoría del caos también es una idea relativamente nueva, hay pocas personas que estudian los métodos de operación del caos en China.

Como su nombre indica, la base teórica del método de operación del caos es la teoría del caos, que fue propuesta por el meteorólogo Edward Lorenz. Fue uno de los mayores descubrimientos científicos a finales del siglo XX. Propuso el famoso "efecto mariposa". Bill Williams aplicó la teoría del caos al campo de la inversión financiera de manera creativa, combinada con geometría fractal, dinámica no lineal y otras disciplinas, y creó una serie de indicadores de análisis técnico muy efectivos.

Todo el método de operación del Caos está compuesto por cinco dimensiones principales (indicadores técnicos):

  • El cocodrilo

  • El fractal

  • El impulso

  • Aceleración

  • La línea de equilibrio

img

Veamos el gráfico anterior. El Alligator es un conjunto de líneas de equilibrio que utilizan geometría fractal y dinámica no lineal. Su esencia es extender el promedio móvil ponderado exponencialmente, que es una especie de línea media, pero su método de cálculo es un poco más complicado que la línea media ordinaria.

// Parameters
N1:=11;
N2:=21;

// Defining the price median
N3:=N1+N2;
N4:=N2+N3;
HL:=(H+L)/2;

// Alligator
Y^^SMA(REF(HL,N3),N4,1);
R:=SMA(REF(HL,N2),N3,1);
G:=SMA(REF(HL,N1),N2,1);

Primero, definimos 2 parámetros externos N1 y N2, y luego calculamos la media HL del precio más alto y el precio más bajo de acuerdo con los parámetros externos, y luego calculamos la media HL con diferentes parámetros. Para los dientes, es el promedio del período medio de la línea media, y la mandíbula es el promedio del período grande de la línea media. En esta estrategia, usamos la mandíbula.

En el método de operación del caos, un concepto de fractal se define vívidamente. Podemos hacer una analogía: abrir la palma de la mano, con los dedos hacia arriba, el dedo medio es el fractal superior, el dedo meñique izquierdo y el dedo anular, y el dedo índice derecho y el pulgar respectivamente, representan la línea K sin récord de altura. Un fractal básico se compone de estas cinco líneas K. Luego puedes definir el fractal con el siguiente código:

// Fractal
TOP_N:=BARSLAST(REF(H,2)=HHV(H,5))+2;
BOTTOM_N:=BARSLAST(REF(L,2)=LLV(L,5))+2;

TOP:=REF(H,TOP_N);
BOTTOM:=REF(L,BOTTOM_N);

MAX_YRG^^MAX(MAX(Y,R),G); 
MIN_YRG^^MIN(MIN(Y,R),G); 

TOP_FRACTAL^^VALUEWHEN(H>=MAX_YRG,TOP);
BOTTOM_FRACTAL^^VALUEWHEN(L<=MIN_YRG,BOTTOM);

Después de calcular el cocodrilo y el fractal, podemos escribir una estrategia de operación de caos simple basada en estas dos condiciones, y usar un grupo de líneas de promedio móvil ponderadas exponencialmente como el precio de referencia para calcular el índice de cocodrilo y fractal.

// If there are no current long position orders and the closing price rises above the upper fractal and the upper fractal is above the alligator, open a long position.
BKVOL=0 AND C>=TOP_FRACTAL AND TOP_FRACTAL>MAX_YRG,BPK(1);
// If there are no current short position orders and the closing price falls below the lower fractal and the lower fractal is below the alligator, open a short position.
SKVOL=0 AND C<=BOTTOM_FRACTAL AND BOTTOM_FRACTAL<MIN_YRG,SPK(1);

// Long positions are closed if the closing price falls below the jaws of the alligator.
C<Y,SP(BKVOL);
// Short positions are closed if the closing price rises above the jaws of the alligator.
C>Y,BP(SKVOL);

Para facilitar la comprensión, escribí los comentarios detallados en el código directamente.

  • Posición de apertura larga: si no hay órdenes de posición larga en la actualidad, y el precio de cierre sube por debajo del fractal superior, y el fractal superior está por encima del caiman.
  • Posición de apertura corta: si no hay órdenes de posición corta en la actualidad, y el precio de cierre cae por debajo del fractal inferior, y el fractal inferior está por debajo del caiman.
  • Posición de cierre larga: si el precio de cierre cae por debajo de la barbilla del caiman.
  • Posición de cierre corta: si el precio de cierre se eleva por encima de la barbilla del caiman.

A continuación, veamos cómo se ven los resultados de esta simple prueba de retroceso de la estrategia de operación de caos. Para hacer que la prueba de retroceso esté más cerca del entorno real del mercado, la comisión se establece en el doble del tipo de cambio, y las posiciones de apertura y cierre están sujetas a un punto de deslizamiento de dos saltos cada una. El tipo de datos de la prueba de retroceso es el índice de rebar, y el tipo de negociación es la fuerza principal continua de la barra de refuerzo, con una posición de apertura fija de 1 lote.

img

En el caso de los productos de repuesto, la tendencia de la curva de capital y los datos de rendimiento de las pruebas de retroceso muestran que la estrategia tuvo un buen rendimiento y que la curva de capital general fue constantemente al alza.

En una palabra, la esencia del método de operación del caos es encontrar un punto de inflexión, sin preocuparse por cómo va el mercado o si es verdadera o falsa ruptura. Si rompe el fractal, entrará directamente en el mercado. Nunca trate de predecir el mercado, sino sea un observador y seguidor.

3.2 Desarrollo de una estrategia de arbitraje de la CTA basada en el lenguaje JavaScript

George Soros planteó una importante proposición en The Alchemy of Finance escrita en 1987: Creo que los precios del mercado siempre están equivocados en el sentido de que presentan una visión sesgada del futuro. Creía que la hipótesis de la eficiencia del mercado es solo una hipótesis teórica. De hecho, los participantes del mercado no siempre son racionales, y en cada momento, los participantes no pueden obtener completamente e interpretar objetivamente toda la información. Además, incluso si es la misma información, la retroalimentación de todos es diferente. Es decir, el precio en sí mismo ya contiene las expectativas erróneas de los participantes del mercado, por lo que, en esencia, el precio del mercado siempre está equivocado. Esta puede ser la fuente de ganancia de los arbitrajeros.

De acuerdo con los principios anteriores, podemos saber que en un mercado de futuros ineficaz, la razón por la cual el impacto del mercado en los contratos de entrega en diferentes períodos no siempre es sincrónico, y la fijación de precios no es completamente efectiva.

Al igual que los futuros de productos básicos, la moneda digital también tiene una cartera de contratos de arbitraje de período cruzado. Por ejemplo, en el intercambio OKEX, hay: ETC semana actual, ETC próxima semana, ETC trimestre. Por ejemplo, supongamos que la diferencia de precio entre la semana actual de ETC y el trimestre de ETC permanece alrededor de 5 durante mucho tiempo. Si la diferencia de precio alcanza 7 un día, esperamos que la diferencia de precio regrese a 5 en el futuro. Luego podemos vender ETC esa semana y comprar ETC trimestre al mismo tiempo para acortar la diferencia de precio, y viceversa.

Aunque existe esta diferencia de precio, hay muchas incertidumbres en el arbitraje manual debido a las operaciones manuales que consumen tiempo, la poca precisión y el impacto de los cambios de precios.

Este curso le enseñará cómo usar la plataforma de negociación de FMZ Quant y el contrato de futuros ETC en el intercambio OKEX para demostrar cómo capturar las oportunidades de arbitraje instantáneas, aprovechar las ganancias que se pueden ver cada vez y cubrir los riesgos que pueden encontrarse en el comercio de divisas digitales con una estrategia de arbitraje simple.

Crear una estrategia de arbitraje interperíodo para la moneda digitalDificultad: Normal

Medio ambiente de la estrategia

  • Objeto de la transacción: Ether Classic (ETC)
  • Datos de dispersión: semana corriente de ETC - trimestre de ETC (omitir el ensayo de cointegración)
  • Período de la transacción: 5 minutos
  • Período de la transacción: 5 minutos
  • Tipo de transacción: período cruzado del mismo tipo

La lógica de la estrategia

  • Condiciones para abrir posiciones con ir largo la diferencia de precio: si la cuenta corriente no tiene posiciones y la diferencia de precio es menor que el límite inferior de la bola, entonces ir largo la diferencia de precio. es decir, comprar posiciones de apertura ETC para la semana, vender posiciones de apertura ETC para el trimestre.
  • Condiciones para la apertura de posiciones con el cortocircuito de la diferencia de precio: si no hay posición en la cuenta corriente, y la diferencia de precio es mayor que el límite superior de la bola, entonces corta la diferencia de precio.
  • Condiciones para el cierre de posiciones con ir largo la diferencia de precio: si la cuenta corriente mantiene órdenes largas de ETC en la semana en curso y mantiene órdenes cortas de ETC en el trimestre, y la diferencia de precio es mayor que el límite medio de la bola, entonces cierre largo la diferencia de precio. es decir, vender posiciones de cierre ETC para la semana, comprar posiciones de cierre ETC para el trimestre.
  • Condiciones para cerrar posiciones con cierre corto de la diferencia de precio: si la cuenta corriente mantiene órdenes cortas de ETC en la semana en curso, y mantiene órdenes largas de ETC en el trimestre, y la diferencia de precio es menor que el límite medio de la bola, entonces cierre corto de la diferencia de precio. Es decir, comprar posiciones de cierre ETC para la semana, vender posiciones de cierre ETC para el trimestre.

Lo anterior es una simple descripción lógica de la estrategia de arbitraje de período cruzado de la moneda digital.

function Data() {}  // Basic data function
Data.prototype.mp = function () {}  // Position function
Data.prototype.boll = function () {}  // Indicator function
Data.prototype.trade = function () {}  // Order placement function
Data.prototype.cancelOrders = function () {}  // Order withdrawal function
Data.prototype.isEven = function () {}  // Processing single contract function
Data.prototype.drawingChart = function () {}  // Drawing function

function onTick() {
    var data = new Data(tradeTypeA, tradeTypeB);  // Create a basic data object
    var accountStocks = data.accountData.Stocks;  // Account balance
    var boll = data.boll(dataLength, timeCycle);  // Calculate the technical indicators of boll
    data.trade();  // Calculate trading conditions to place an order
    data.cancelOrders();  // Cancel orders
    data.drawingChart(boll);  // Drawing
    data.isEven();  // Processing of holding individual contract
}

//Entry function
function main() {
    while (true) {  // Enter the polling mode
        onTick();  // Execute onTick function
        Sleep(500);  // Sleep for 0.5 seconds
    }
}

Imagínese cómo es nuestro proceso de negociación en el comercio de supervisión. No hay ninguna diferencia esencial en las transacciones del sistema. No es más que adquirir datos, calcular datos, realizar una transacción de pedido y procesar después de realizar un pedido. Lo mismo ocurre en el programa. Primero, el programa ejecutará la función principal en la línea 20, que es una convención. Cuando el programa complete el preprocesamiento de la estrategia de negociación (si lo hay), entrará en el modo de bucle infinito, es decir, el modo de votación. En el modo de votación, la función onTick se ejecutará repetidamente.

Luego, en la función onTick, es nuestro proceso de negociación en la transacción subjetiva: primero, obtener los datos básicos de precios, luego obtener el saldo de la cuenta, luego calcular el índice, luego calcular las condiciones de negociación y realizar el pedido, y finalmente el procesamiento después de realizar el pedido, incluyendo la cancelación del pedido, el dibujo y el procesamiento de un solo contrato.

El marco estratégico puede ser fácilmente establecido de acuerdo con la idea estratégica y el proceso de transacción.

  • Preprocesamiento antes de la transacción.
  • Obtener y calcular datos.
  • Ponga un pedido y trate con él más tarde.

A continuación, debemos rellenar el código de detalle necesario en el marco de la estrategia de acuerdo con el proceso de transacción real y los detalles de la transacción.

I. Preprocesamiento antes de la operación

1. Declare las variables globales necesarias en el ámbito global.

  • Declarar un objeto de gráfico para el gráfico de configuración
var chart = {}
  • Llame a la función de gráfico e inicie el gráfico
var ObjChart = Chart ( chart )
  • Declarar una matriz vacía para almacenar series de diferencia de precio
var bars = []
  • Declarar una variable de marca de tiempo de los datos del historial de registros
var oldTime = 0

2. Configurar los parámetros externos de la estrategia.

var tradeTypeA = "this_week"; // Arbitrage A Contract
var tradeTypeB = "quarter"; // Arbitrage B Contract
var dataLength = 10; // Indicator period length
var timeCycle = 1; // K-line period
var name = "ETC"; // Currencies
var unit = 1; // Order quantity

3. Definir la función de procesamiento de datos

  • Función de datos básicos: Datos Crear un constructor, Datos, y definir sus propiedades internas. Incluyendo: datos de cuenta, datos de posición, timestamp de datos de línea K, precio de compra / venta de contrato de arbitraje A / B y diferencia de precio de arbitraje positivo / negativo.
function Data(tradeTypeA, tradeTypeB) { // Pass in arbitrage A contract and arbitrage B contract
    this.accountData = _C(exchange.GetAccount); // Get account information
    this.positionData = _C(exchange.GetPosition); // Get position information
    var recordsData = _C(exchange.GetRecords); // Get K-line data
    exchange.SetContractType(tradeTypeA); // Subscription arbitrage A contract
    var depthDataA = _C(exchange.GetDepth); // Depth data of arbitrage A contract
    exchange.SetContractType(tradeTypeB); // Subscription arbitrage B contract
    var depthDataB = _C(exchange.GetDepth); // Depth data of arbitrage B contract
    this.time = recordsData[recordsData.length - 1].Time; // Time of obtaining the latest data
    this.askA = depthDataA.Asks[0].Price; // Sell one price of Arbitrage A contract
    this.bidA = depthDataA.Bids[0].Price; // Buy one price of Arbitrage A contract
    this.askB = depthDataB.Asks[0].Price; // Sell one price of Arbitrage B contract
    this.bidB = depthDataB.Bids[0].Price; // Buy one price of Arbitrage B contract
    // Positive arbitrage price differences (Sell one price of contract A - Buy one price of contract B)
    this.basb = depthDataA.Asks[0].Price - depthDataB.Bids[0].Price;
    // Negative arbitrage price differences (Buy one price of contract A - Sell one price of contract B)
    this.sabb = depthDataA.Bids[0].Price - depthDataB.Asks[0].Price;
}
  • Obtener la función de posición: mp ()) Recorre toda la matriz de posiciones y devuelve la cantidad de posición del contrato y la dirección especificados.
Data.prototype.mp = function (tradeType, type) {
    var positionData = this.positionData; // Get position information
    for (var i = 0; i < positionData.length; i++) {
        if (positionData[i].ContractType == tradeType) {
            if (positionData[i].Type == type) {
                if (positionData[i].Amount > 0) {
                    return positionData[i].Amount;
                }
            }
        }
    }
    return false;
}
  • Línea K y función del indicador: boll() Una nueva secuencia de líneas K se sintetiza de acuerdo con los datos de diferencia de precio de arbitraje positivo / arbitraje negativo.
Data.prototype.boll = function (num, timeCycle) {
    var self = {}; // Temporary objects
    // Median value of positive arbitrage price difference and negative arbitrage price difference
    self.Close = (this.basb + this.sabb) / 2;
    if (this.timeA == this.timeB) {
        self.Time = this.time;
    } // Compare two depth data timestamps
    if (this.time - oldTime > timeCycle * 60000) {
        bars.push(self);
        oldTime = this.time;
    } // Pass in the price difference data object into the K-line array according to the specified time period
    if (bars.length > num * 2) {
        bars.shift(); // Control the length of the K-line array
    } else {
        return;
    }
    var boll = TA.BOLL(bars, num, 2); // Call the boll indicator in the talib library
    return {
        up: boll[0][boll[0].length - 1], // boll indicator upper track
        middle: boll[1][boll[1].length - 1], // boll indicator middle track
        down: boll[2][boll[2].length - 1] // boll indicator down track
    } // Return a processed boll indicator data
}
  • Función de las órdenes: comercio Pasar el nombre del contrato de la orden y el tipo de orden, luego colocar el pedido con contraprestación, y devolver el resultado después de colocar el pedido.
Data.prototype.trade = function (tradeType, type) {
    exchange.SetContractType(tradeType); // Resubscribe to a contract before placing an order
    var askPrice, bidPrice;
    if (tradeType == tradeTypeA) { // If the order is placed in contract A
        askPrice = this.askA; // set askPrice
        bidPrice = this.bidA; // set bidPrice
    } else if (tradeType == tradeTypeB) { // If the order is placed in contract B
        askPrice = this.askB; // set askPrice
        bidPrice = this.bidB; // set bidPrice
    }
    switch (type) { // Match order placement mode
        case "buy":
            exchange.SetDirection(type); // Set order placement mode
            return exchange.Buy(askPrice, unit);
        case "sell":
            exchange.SetDirection(type); // Set order placement mode
            return exchange.Sell(bidPrice, unit);
        case "closebuy":
            exchange.SetDirection(type); // Set order placement mode
            return exchange.Sell(bidPrice, unit);
        case "closesell":
            exchange.SetDirection(type); // Set order placement mode
            return exchange.Buy(askPrice, unit);
        default:
            return false;
    }
}
  • Cancelar orden Función: cancelar órdenes() Obtener una matriz de todos los pedidos pendientes y cancelarlos uno por uno. Además, falso se devuelve si hay un pedido sin completar, y verdad se devuelve si no hay un pedido sin completar.
Data.prototype.cancelOrders = function () {
    Sleep(500); // Delay before cancellation, because some exchanges, you know what I mean
    var orders = _C(exchange.GetOrders); // Get an array of unfilled orders
    if (orders.length > 0) { // If there are unfilled orders
        for (var i = 0; i < orders.length; i++) { // Iterate through the array of unfilled orders
            exchange.CancelOrder(orders[i].Id); // Cancel unfilled orders one by one
            Sleep(500); // Delay 0.5 seconds
        }
        return false; // Return false if an unfilled order is cancelled
    }
    return true; // Return true if there are no unfilled orders
}
  • Manejar el mantenimiento de un solo contrato: isEven() En el caso de una sola etapa en la transacción de arbitraje, simplemente cerraremos todas las posiciones.
Data.prototype.isEven = function () {
    var positionData = this.positionData; // Get position information
    var type = null; // Switch position direction
    // If the remaining 2 of the position array length is not equal to 0 or the position array length is not equal to 2
    if (positionData.length % 2 != 0 || positionData.length != 2) {
        for (var i = 0; i < positionData.length; i++) { // Iterate through the position array
            if (positionData[i].Type == 0) { // If it is a long order
                type = 10; // Set order parameters
            } else if (positionData[i].Type == 1) { // If it is a short order
                type = -10; // Set order parameters
            }
            // Close all positions
            this.trade(positionData[i].ContractType, type, positionData[i].Amount);
        }
    }
}
  • Función de dibujo: dibujo gráfico ()) Llame al método ObjChart Add (), dibuje los datos de mercado y los datos de indicadores necesarios en el gráfico: pista superior, pista media, pista inferior, diferencia de precio de arbitraje positivo/negativo.
Data.prototype.drawingChart = function (boll) {
    var nowTime = new Date().getTime();
    ObjChart.add([0, [nowTime, boll.up]]);
    ObjChart.add([1, [nowTime, boll.middle]]);
    ObjChart.add([2, [nowTime, boll.down]]);
    ObjChart.add([3

Relacionados

Más.