¿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.
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
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.
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.
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.
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.
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.
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.
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.
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.
La estrategia de futuros CTA es rentable principalmente debido a los siguientes puntos:
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
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.
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.
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.
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.
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.
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.
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
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.
Entonces, a continuación, veamos lo que dicen las reglas comerciales de Tortuga.
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.
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
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.
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.
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.
George Soros planteó una importante proposición en
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
La lógica de la estrategia
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.
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.
var chart = {}
var ObjChart = Chart ( chart )
var bars = []
var oldTime = 0
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
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;
}
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;
}
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
}
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;
}
}
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
}
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);
}
}
}
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